在逆向过程中经常会遇到反调试,如下段代码:
0008bd8e movs r1, #0xa ; argument #2 for method imp___symbolstub1__dlopen
0008bd90 blx imp___symbolstub1__dlopen
0008bd94 movw r1, #0xe103
0008bd98 mov r6, r0
0008bd9a movt r1, #0x10 ; 0x10e103 (sub_10dfd8 + 0x12b)
0008bd9e add r1, pc ; "ptrace", argument #2 for method imp___symbolstub1__dlsym
0008bda0 blx imp___symbolstub1__dlsym
0008bda4 mov r4, r0
0008bda6 movs r0, #0x1f
0008bda8 movs r1, #0x0
0008bdaa movs r2, #0x0
0008bdac movs r3, #0x0
0008bdae blx r4
找到动态连接库中的 ptrace函数地址,再调用ptrace函数,反调试时,只要修改第一个参数即可,随便改一个值。
可以参考这篇文章:http://www.cnblogs.com/catch/p/3476280.html
后续会再完善