博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android库分析工具(崩溃反编译)
阅读量:7018 次
发布时间:2019-06-28

本文共 883 字,大约阅读时间需要 2 分钟。

[时间:2016-07] [状态:Open]

[关键词:android, 动态库,静态库, 编译,crash,addr2line]

本文主要整理Android编译系统中可用的库分析工作,可作为后续代码崩溃分析的参考。

  1. 动态库(*.so)处理:
    arm-linux-androideabi-readelf.exe -a XX.so > xx.txt

输出所有导出函数

arm-linux-androideabi-objdump.exe -dx XX.so > xx.txt
反汇编so包,此时使用 $(JNI_PROJ_PATH)\obj\local\armeabi下面带符号表的so包。JNI_PROJ_PATH为编译so包时jni文件夹的根目录。

  1. 静态库(*.a)处理:

    输出.a内所有导出函数。方法一:
    arm-linux-androideabi-ar.exe -t xx.a > xx.txt
    方法二:
    arm-linux-androideabi-nm.exe xx.a > xx.txt

  2. ndk编译

    上面两种库文件,.a和.so都可以直接通过arm-linux-androideabi-g++.exe工具编译,编译语法跟linux上的g++一致。 也可以直接使用ndk-build命令。

  3. crash定位

    使用addr2line将地址转化成代码行数,输入的so为带符号表的,即为strip过的:

arm-linux-androideabi-addr2line.exe -f -e \jni\obj\local\armeabi\libXX.so 00002683

使用ndk-stack.exe还原堆栈:

ndk-stack -sym E:\dev_code\Sosomap-old\Sosomap-jni\obj\local\armeabi -dump D:\android-ndk-r9b-windows-x86\txmap_log.txt

-sym为带符号表的so路径, -dump为crash的堆栈信息,必须包含:********************

转载地址:http://tpzxl.baihongyu.com/

你可能感兴趣的文章
性能测试常用的监控指令 topas vmstat iostat
查看>>
Hadoop集群部署模型纵览1
查看>>
构建Hybrid应用-使用ionic
查看>>
React入门第一弹——React的起源
查看>>
提高DB2并发度的三大方法
查看>>
Oracle中With as用法
查看>>
Android - Binary XML file line #8: Error inflating class fragment
查看>>
我的友情链接
查看>>
查找当前undo正在处理的事务
查看>>
Ubuntu上运行Chrome出现“Google Chrome can not be run ...
查看>>
Iframe实现下拉框联动
查看>>
“我分享,我快乐”IT技术资料上传大赛【下载中心活动】
查看>>
JQuery动态添加行
查看>>
数据库分库分表(sharding)系列(四) 多数据源的事务处理
查看>>
linux常用查看硬件设备信息命令
查看>>
NO.94 用禅道维护产品
查看>>
grep的基本用法详解
查看>>
Default value for parameters with a class type hin
查看>>
nagios安装
查看>>
PHP提交过滤函数【转】
查看>>