ars*_*ada 0 linux x86 assembly
我似乎无法理解x86反汇编中>>>的<<<字符和字符
例如:
CMP BYTE PTR [EAX+33H],0
JE -126CB479H >>> +33
Run Code Online (Sandbox Code Playgroud)
要么
LEA ESI,DWORD PTR [ECX+0CH] <<< +19
Run Code Online (Sandbox Code Playgroud)
我理解这里的基本指示; Jump when Equal这之后,会出现Compare和Load Effective Address,但>>>并<<<混淆了我.任何指导都会有所帮助.谢谢.
它们是跳跃目的地的指标.它是IDA Pro输出的简单形式,类似于许多克隆.
CMP BYTE PTR [EAX+33H],0
JE -126CB479H >>> +33
Run Code Online (Sandbox Code Playgroud)
这表明该JE命令的目标是进一步向下+33字节(>>>去某处...)
LEA ESI,DWORD PTR [ECX+0CH] <<< +19
Run Code Online (Sandbox Code Playgroud)
这表示该指令是跳转/分支/调用的目的地(<<< - 来自),其进一步向下+19字节.19个字节后,内存高19个字节......你明白了......
它们不是任何标准汇编语言的一部分,就个人而言,这些指标应与注释分隔符一起使用.例:
CMP BYTE PTR [EAX+33H],0
JE -126CB479H ; >>> +33
LEA ESI,DWORD PTR [ECX+0CH] ; <<< +19
Run Code Online (Sandbox Code Playgroud)
假装你画线显示逻辑流程......
CMP BYTE PTR [EAX+33H],0
JE -126CB479H ; >>> +33 ---+
|
; many wonderful and varied instructions here |
|
HLT ; <<< -33 ---+
Run Code Online (Sandbox Code Playgroud)
这有帮助吗?