原始的汇编代码.png
/*** 还原if  ***/
//全局变量
int g = 100;// 动态调试得到
void func2 (int a,int b){
//
//__text:00000001000068B4
//__text:00000001000068B4                EXPORT _func
//__text:00000001000068B4 _func                                  ; CODE XREF: _main+24↓p
//__text:00000001000068B4
//__text:00000001000068B4 var_8          = -8
/
/__text:00000001000068B4 var_4          = -4
//__text:00000001000068B4
//__text:00000001000068B4                SUB            SP, SP, #0x10
//__text:00000001000068B8                STR            W0, [SP,#0x10+var_4]
//__text:00000001000068BC                STR            W1, [SP,#0x10+var_8]
int var_4 = a;
int var_8 = b;
//__text:00000001000068C0                LDR            W0, [SP,#0x10+var_4]
//__text:00000001000068C4                LDR            W1, [SP,#0x10+var_8]
int w0 = var_4;
int w1 = var_8;
/
/__text:00000001000068C8                CMP            W0, W1
//__text:00000001000068CC                B.LE            loc_1000068E4
if (a > b) {
//全局变量
//int g = 12;
//__text:00000001000068CC ; [0000001C BYTES: END OF AREA Node #0. PRESS KEYPAD "-" TO COLLAPSE]        //__text:00000001000068D0                ADRP            X8, #_f@PAGE
//__text:00000001000068D4                ADD            X8, X8, #_f@PAGEOFF
//        得到 x8, 也就是全局变量 g
int * x8 = &g; // x8 为地址,* 取值。
//__text:00000001000068D8                LDR            W9, [SP,#0x10+var_4]
switch case判断字符串int w9 = var_4;
//__text:00000001000068DC                STR            W9, [X8]
w9 = *x8;// *x8 取值
//__text:00000001000068E0                B              loc_1000068F4
}else{
//__text:00000001000068E4                ADRP            X8, #_f@PAGE
//__text:00000001000068E8                ADD            X8, X8, #_f@PAGEOFF
//__text:00000001000068EC                LDR            W9, [SP,#0x10+var_8]
int  w9 = var_8;
//__text:00000001000068F0                STR            W9, [X8]  //  [x8] 取值
// x8 = w9; 也就是如下:
g = w9;
}
// 标记标号
//__text:00000001000068E4 ; ---------------------------------------------------------------------------
//__text:00000001000068E4
//__text:00000001000068E4 loc_1000068E4                          ; CODE XREF: _func+18↑j
//__text:00000001000068F4
//__text:00000001000068F4 loc_1000068F4                          ; CODE XREF: _func+2C↑j

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。