您的位置:首页 > 其它

[笔记分享] [Exception] 用户空间异常之Call Stack AP实现

2017-09-11 18:16 253 查看
从上一章分析可知,我们已经获取了call stack 的offset:



虽然得到了相对偏移,但是对于我们分析代码基本上还没什么用,因为咱们都是c代码嘛,所以要转换成c函数咯。

所以思路是这样子:



前面两步debuggerd已经帮我们完成了,而得到so的map我们目前只能在pc上完成,这个要借助objdump或者nm命令来完成map,手机上没这些命令。

另外,为了方便看log,我们将/data/tombstones目录下的文件按照时间规则来命名。将engrave_tombstone函数作如下改动就可以了。



AP实现

对于pc上的call stack转换ap实现也比较简单,按照上一节说的思路就可以了,这里将code贴出来,简单介绍下过程。





打开旧log文件,也就是从/data/tombstones下copy过来的文件,读取call stack的offset和所属的so名字,获取相应so的map表,查找offset从属于so中的哪个function,然后将这个function name一并写到新的log文件中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: