
安卓手机用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测一下。 经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细要在IDA中跳转到
调用函数的
位置,可以按以下步骤 *** 作:
选择你要查看的函数,在IDA中选中该函数的名称或双击该函数的名称以打开函数窗口。
在函数窗口中,查找要查看调用函数的指令。通常,调用指令以"call"关键字开头。
在调用指令上单击右键,然后选择"Jump to xref to operand"选项。
这将会显示一个菜单,显示调用该函数的位置。选择一个位置,IDA将会跳转到该位置,显示该调用指令的位置。
注意,如果该函数在程序的多个位置被调用,那么这个菜单将会显示所有调用该函数的位置,你需要选择你想要查看的特定位置。
您好,如果IDA打开SO找不到函数,可能是由于以下几个原因:
1. 您可能没有正确安装IDA,或者安装过程中出现了错误;
2. 您可能没有正确配置IDA,或者配置过程中出现了错误;
3. 您可能没有正确指定SO文件,或者指定的SO文件不存在;
4. 您可能没有正确指定函数名,或者指定的函数名不存在;
5. 您可能没有正确指定函数地址,或者指定的函数地址不存在。
因此,如果您遇到IDA打开SO找不到函数的问题,您可以检查上述几个原因,以确保您的IDA正确安装、配置和指定了正确的SO文件、函数名和函数地址。
评论列表(0条)