1667272982058

看詹爹的出题文档发现有一堆快捷键不会,找了一会,从官网发现一个比较全的快捷键表 ,只不过都是英文的,尝试翻译一下并一个一个实现。

?表示未实现,用*个数表示主观重要程度,越多越重要(吧大概)🤔

文件操作

* Parse C header file…(分析C头文件):Ctrl + F9

? Create ASM file…(生成ASM文件):Alt + F10

* Save(保存):Ctrl + W

* Exit with Save (退出并保存): Alt + X 或 Alt + F4

导航

** Jump to operand (跳转到操作数):Enter

? Jump in a new window (跳入新窗口):Alt + Enter

*** Jump to previous position( 跳转到上一个位置):Esc

** Jump to next position (跳到下一个位置):Ctrl + Enter

这个操作就相当于是 Esc 的逆操作,好像之前不太常用

** Jump to address…(跳转到地址):G

1667274931984

这win11的圆角真tm傻逼。。。

** Jump by name…(按名称跳转):Ctrl + L

1667275014866

看起来不错

** Jump to function…(跳转到函数):Ctrl + P

1667275068461

同上

*** Jump to pseudocode(跳转到伪代码):Tab

* Jump to segment…(跳转到段):Ctrl + S

1667275173289

* Jump to segment register…(跳转到寄存器):Ctrl + G

1667275228073

* Jump to problem…(跳转到问题):Ctrl + Q

1667275284007

? List cross references to…(列出交叉引用):Ctrl + X *

**** Jump to xref to operand… (跳转到外部参照到操作数):X

1667275414938

极为重要

** Jump to entry point…(跳转到入口点):Ctrl + E

1667275701351

** Mark position…(标记位置):Alt + M

1667275814750

1667275801140

标记以后标记处的代码会变色

*** Jump to marked position…(跳转到标记位置):Ctrl + M

标记了两处,可以直接跳转,我超!好用!🤤

1667275890086

? Error operand (错误操作数):Ctrl + F

搜索

* Next code(下一个代码): Alt + C

就是这里的code应该是指汇编语言的指令,在汇编窗口中按一次跳到下一个

* Next data(下一个数据):Ctrl+ D

在数据窗口中跳转到下一个数据

* Next explored (下一个被发现的数据?不太会翻):Ctrl + A

在伪代码里是全选,在汇编里是找到下一个被发现的指令,在数据栏里是找到下一个知道是个啥的数据(雾

* Next unexplored(下一个未被发现的数据?也不太会翻):Ctrl + U

猜测有一些数据是unk开头,大概就是找这些数据吧

1667312483960

* Immediate value…(立即数):Alt + I

1667312600252

立即数通常是指在立即寻址方式指令中给出的数。可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。

* Next immediate value(下一个立即数):Ctrl + I

* Text…(文本):Alt + T

1667313167196

1667313177599

* Next text(下一个文本):Ctrl + T

? Sequence of bytes…(字节序列):Alt + B

? Next sequence of bytes(下一个字节序列):Ctrl + B

编辑

***** Rename(重命名):N

1667313406523

* Enter repeatable comment…(输入可重复的注释):;

1667313598797

* Enter comment…(输入注释)::

1667313643115

** Begin selection(开始选择):Alt + L

不用按着鼠标然后一直拖了,自动选中功能,很方便

***** code(代码):C

1667313789480

把数据变成代码

***** data(数据):变成数据

极为重要,不解释

** Struct var…(结构体变量):Alt + Q

1667313918273

***** String(字符串):A

极为重要,不解释

***** Array(数组):*

1667314113188

极为重要,其中 Array size 也要关注一下

** Undefine(未定义):U

把数据变成 unk

* Enter anterior lines…(在上方插入注释):Insert

1667314342867

1667314389958

* Enter posterior lines… (在下方插入注释):Shift + Insert

* Offset (data segment) (偏移(数据段)):O

把数据变成 Off

? Offset (current segment)(偏移(当前段)):Ctrl + O

谔谔,好像没发现啥区别

? Offset by (any segment)…(偏移(任意段)):Alt + R

1667314729412

撞快捷键了哈哈

* Offset (user-defined)…(偏移(用户定义)):Ctrl + R

1667314848283

* Offset (struct)…(偏移):T

1667314916027

? Number(default)(数字(默认)):

***** Hexadecimal(16进制):Q

***** Decimal(10进制):H

***** Binary(二进制):B

***** Character(字符):C

*** segment(段):S

***** Enum member(枚举成员):M

*** Stack variable(堆栈变量):K

** Change sign(更改标志):_

就是把你之前改过的数据类型给刷新一次在伪代码界面显示出来,好像还有其他变动,不太清楚捏

* Bitwise negate(按位求反):~

1667315499158

* String literals…(字符串文字):Alt + A

1667315674012

***** Setup data types…(设置数据类型):Alt + D

1667315742411

*** Edit segment(设置段):Alt + S

1667315813575

**Change segment register value…(更改寄存器值):Alt + G

1667315867588

? Select union member…(选择联合成员):Alt + Y

**** Undo (后退):Ctrl + Z

**** Redo(撤销后退):Ctrl + Shift + Z

打开子视图

*Local types(本地类型):Shift + F1

***Functions(函数):Shift + F3

*Names(名字):Shift + F4

*Signatures(签名):Shift + F5

*Segments(段):Shift + F7

*Segments register(段寄存器):Shift + F8

*Structures(结构):Shift + F9

*Enumerations(枚举):Shift + F10

*Type libraries(类型库):Shift + F11

**********Strings(字符串):Shift + F12

不会这个的可以开了吧大概

函数

*****Create function…(创建函数):P

*****Edit function…(编辑函数):Alt + P

****Set function end(设置为函数结尾):E

没用过,感觉比 Alt + P方便?

**Stack variables…(堆栈变量):Ctrl + K

堆栈真不熟。。。。

***Change stack pointer…(更改堆栈指针):Alt + K

1668528775502

**Rename register…(重命名寄存器):V

*****Set type…(设置类型):Y

极为重要,可以编辑伪代码,让其变得更加易读

1668528911036