如何使用ida在apk执行前动态调试其so中的函数?
安卓手机用ida在apk执行前动态调试其so中的函数 方法1 1、解包对方APK,插入一个:对应SMALI: android.os.SystemClock.sleep(20000);const-wide/16 v0, 0x2710 #20秒invoke-static {v0, v(X-1)}, Landroid/os/SystemClock;->sleep(J)V这里(X-1)对应.local X。 2 另外,有的包在你要调试的那个SO里面有签名保护,反正你重新打了包之后会导致程序运行崩溃,这个相比JAVA修改困难些,建议你用那个签名漏洞来打包。事实上我调试那个SO也遇到过这样,然后打了个签名漏洞的包嵌入的延时函数就可以了。 方法2 1) am start -D -n 包名/类名; 2) IDA pro attach 进程, 设置新线程,加载so时断点,continue; 3) 打开ddms, 查看调试端口, jdb attach port; 4) 这个时候应该已经断在新线程,或者加载so处了,在你感兴趣的so处停下来; 5) 另外用ida 打开so,查看你感兴趣的函数偏移, 加上你感兴趣的so的基地址,打上断点,continue, 就大功告成了。 注意事项 windows下ida6.1不行,linux ida 6.4可以,不知是ida的问题还是windows的问题,你可以在linux下用wine测一下。 经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细
如何将FLASH中读出的bin反汇编?
需要自己买个烧解器,插上flash,读出来,存成bin文件,然后用反汇编器进行反汇编即可。linux下用nasm就可以了,如果是windows系统,建议使用ida之类的软件进行反汇编。