Unity查安卓Native Crash的方法,定位SO报错函数
2023-12-25 13:07:41
需要用到两个工具Il2CppDumper和IDA_Pro,网上可以下到对应的软件
可以看到报错的位置是libil2cpp.so 0000000000AFF820
接下来要做的事情就是找到0000000000AFF820对应的函数是哪个
解包
Il2CppDumper解析so文件和符号表,查看对应的函数表
把apk后缀改成zip后解压,获得包内的libil2cpp.so和global-metadata.dat
两个文件路径分别是
lib\arm64-v8a\libil2cpp.so
和assets\bin\Data\Managed\Metadata\global-metadata.dat(这里取arm64-v8a的文件是根据之前报错日志的显示的架构选择的)
打开Il2CppDumper,先选libil2cpp.so,再选global-metadata.dat
如果成功的话会输出
Dumping...
Done!
Generate script...
Done!
Generate dummy dll...
Done!
然后在Il2CppDumper所在的目录,可以看到dump.cs,这个就是函数表文件
IDA PRO解析SO文件,查看对应报错的函数
打开IDA PRO,把libil2cpp.so拖进去,选择ARM64
按G弹出跳转框
根据之前堆栈的地址
#20 pc 0000000000AFF820 lib/arm64/libil2cpp.so
输入AFF820?跳转到指定位置
可以看到sub_82EB84。sub后面的82EB84就是函数地址
?在之前的解出的函数表dump.cs搜索82EB84
找到对应的函数,之后通过相同的方式可以找到其他报错函数,可以获得整个调用的函数堆栈。
注意有的时候跳转到对应的行会出现以下的情况,这是因为IDA解析较慢,有时候还未解析出来,可以再等一等?
文章来源:https://blog.csdn.net/weixin_43705303/article/details/135194541
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!