@liaogang wrote:
在学习逆向的过程中,遇到了一个很感兴趣的app. 查看其中一段函数的时候,发现有花指令干扰。导致ida无法正确的找到函数的结尾。请问如何能使IDA更正?
我下面贴出代码,和我打算实施的做法.__text:00000001032C0B38 ; =============== S U B R O U T I N E ======================================= __text:00000001032C0B38 __text:00000001032C0B38 ; Attributes: bp-based frame __text:00000001032C0B38 __text:00000001032C0B38 sub_1032C0B38 ; CODE XREF: sub_1032D58F4+90↓p 函数开始 __text:00000001032C0B38 __text:00000001032C0B38 var_70 = -0x70 __text:00000001032C0B38 var_60 = -0x60 __text:00000001032C0B38 var_50 = -0x50 __text:00000001032C0B38 var_40 = -0x40 __text:00000001032C0B38 var_30 = -0x30 __text:00000001032C0B38 var_s0 = 0 __text:00000001032C0B38 __text:00000001032C0B38 000 SUB SP, SP, #0x30 __text:00000001032C0B3C 030 STP X29, X30, [SP,#0x20+var_s0] __text:00000001032C0B40 030 ADD X29, SP, #0x20 __text:00000001032C0B44 030 MOV W8, #0x2340 __text:00000001032C0B48 030 MOV W9, #0x3450 __text:00000001032C0B4C 030 MOV W10, #0x4560 __text:00000001032C0B50 030 SUB SP, SP, #0x50 __text:00000001032C0B54 080 STP X29, X30, [SP,#0x70+var_30] __text:00000001032C0B58 080 STP X0, X1, [SP,#0x70+var_70] __text:00000001032C0B5C 080 STP X2, X3, [SP,#0x70+var_60] __text:00000001032C0B60 080 STP X4, X5, [SP,#0x70+var_50] __text:00000001032C0B64 080 STP X6, X7, [SP,#0x70+var_40] __text:00000001032C0B68 080 BL sub_1032C0B78 __text:00000001032C0B6C 080 MOV X1, X0 __text:00000001032C0B70 080 ADD X1, X1, #0x38 __text:00000001032C0B74 080 BR X1 ; 跳到地址00000001032C0BA4 __text:00000001032C0B74 ; End of function sub_1032C0B38 __text:00000001032C0B74 __text:00000001032C0B78 __text:00000001032C0B78 ; =============== S U B R O U T I N E ======================================= __text:00000001032C0B78 __text:00000001032C0B78 __text:00000001032C0B78 sub_1032C0B78 ; CODE XREF: sub_1032C0B38+30↑j 这应该是一个干扰代码段,用汇编写的 __text:00000001032C0B78 __text:00000001032C0B78 var_10 = -0x10 __text:00000001032C0B78 __text:00000001032C0B78 000 SUB SP, SP, #0x10 __text:00000001032C0B7C 000 STP X29, X30, [SP] __text:00000001032C0B80 000 LDR X0, [SP,#8] __text:00000001032C0B84 000 LDP X29, X30, [SP] __text:00000001032C0B88 000 ADD SP, SP, #0x10 __text:00000001032C0B8C 000 RET __text:00000001032C0B90 000 SUB SP, SP, #0x40 __text:00000001032C0B94 040 STP X29, X30, [SP,#0x40+var_10] __text:00000001032C0B98 040 B sub_1032C0B78 __text:00000001032C0B9C 040 SVC 0x80 __text:00000001032C0BA0 040 ADD SP, SP, #0x50 __text:00000001032C0BA0 ; End of function sub_1032C0B78 __text:00000001032C0BA4 ; =============== S U B R O U T I N E ======================================= __text:00000001032C0BA4 __text:00000001032C0BA4 __text:00000001032C0BA4 sub_1032C0BA4 ; CODE XREF: sub_1032C0B78+20↑p __text:00000001032C0BA4 __text:00000001032C0BA4 arg_0 = 0 __text:00000001032C0BA4 arg_8 = 8 __text:00000001032C0BA4 arg_10 = 0x10 __text:00000001032C0BA4 arg_20 = 0x20 __text:00000001032C0BA4 arg_30 = 0x30 __text:00000001032C0BA4 arg_40 = 0x40 __text:00000001032C0BA4 arg_60 = 0x60 __text:00000001032C0BA4 __text:00000001032C0BA4 000 LDP X6, X7, [SP,#arg_30] __text:00000001032C0BA8 000 LDP X4, X5, [SP,#arg_20] __text:00000001032C0BAC 000 LDP X2, X3, [SP,#arg_10] __text:00000001032C0BB0 000 LDP X0, X1, [SP,#arg_0] __text:00000001032C0BB4 000 LDP X29, X30, [SP,#arg_40] __text:00000001032C0BB8 000 ADD SP, SP, #0x50 __text:00000001032C0BBC 000 STR X8, [SP,#arg_8] __text:00000001032C0BC0 -50 ADD X8, X0, X9 __text:00000001032C0BC4 -50 ADD X9, X10, W1,UXTW __text:00000001032C0BC8 -50 ADR X0, sub_1032C27A0 __text:00000001032C0BCC -50 STP X8, X9, [SP,#-0x50+arg_60] __text:00000001032C0BD0 -50 SUB SP, SP, #0x40 __text:00000001032C0BD4 -10 STP X29, X30, [SP,#-0x10+arg_40] __text:00000001032C0BD8 -10 STP X0, X1, [SP,#-0x10+arg_10] __text:00000001032C0BDC -10 STP X3, X2, [SP,#-0x10+arg_20] __text:00000001032C0BE0 -10 STP X7, X6, [SP,#-0x10+arg_30] __text:00000001032C0BE4 -10 BL sub_1032C0BF0 __text:00000001032C0BE8 -10 ADD X1, X0, #0x34 __text:00000001032C0BEC -10 BR X1 __text:00000001032C0BEC ; End of function sub_1032C0BA4 __text:00000001032C0BEC
Posts: 6
Participants: 4