[时间: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的堆栈信息,必须包含:********************

Android库分析工具(崩溃反编译)的更多相关文章

  1. Android(java)学习笔记157:使用Dexdump等工具进行反编译

    使用Dex等工具进行反编译步骤: (1)首先找到Android软件安装包中的class.dex,把APK文件改名为".zip",然后解压缩其中的class.dex文件,这是Java ...

  2. Android(java)学习笔记100:使用Dexdump等工具进行反编译

    使用Dex等工具进行反编译步骤: (1)首先找到Android软件安装包中的class.dex,把APK文件改名为".zip",然后解压缩其中的class.dex文件,这是Java ...

  3. Android安全攻防战,反编译与混淆技术完全解析(下)

    在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.通过这些内容我们也能看出来,其实我们的程序并没有那么的安全.可能资源被反编译影响还不是很 ...

  4. Android安全攻防战,反编译与混淆技术全然解析(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50451259 在上一篇文章其中,我们学习了Android程序反编译方面的知识,包括 ...

  5. Android安全攻防战,反编译与混淆技术完全解析(上)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值 ...

  6. Atitit.反编译apk android源码以及防止反编译apk

    Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool  apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...

  7. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  8. 正确使用Android性能分析工具——TraceView

    http://blog.jobbole.com/78995/     首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他技术 - 导航条 - 首页 最新文章 IT 职场 前端 - Ja ...

  9. Android性能分析工具介绍

    1. Android系统性能调优工具介绍 http://blog.csdn.net/innost/article/details/9008691 TraceviewSystraceOprofile 2 ...

随机推荐

  1. Deep Introduction to Go Interfaces.

    Standard Interface Intro Go’s interfaces are one of it’s best features, but they’re also one of the ...

  2. Nginx Rewrite正则表达式案例

    前两天简单整理了下Nginx的URL Rewrite基本指令,今天谈谈Nginx Rewrite的location正则表达式. 1.Nginx Rewrite 基本标记(flags) last 相当于 ...

  3. ubuntu下制作u盘启动盘

    ubuntu12.04下成功制作了ubuntu13.10 U盘启动盘. 成功 ubuntu14.04下成功制作了centos.7 U盘启动盘.成功 1.安装u盘制作工具unetbootin sudo ...

  4. React(0.13) 定义一个checked组件

    <!DOCTYPE html> <html> <head> <title>React JS</title> <script src=& ...

  5. 解决Winform程序在不同分辨率系统下界面混乱

    问题分析:          产生界面混乱的主要原因是,winform程序的坐标是基于点(Point)的,而Point又与DPI相关,具体就是 一英寸 =72Points 一英寸 =  96pixel ...

  6. 【struts2】Struts2的异常处理

    在Action中execute方法声明为:public String execute() throws Exception,这样,Action可以抛出任何Exception. 1)自己实现异常处理 我 ...

  7. git web开发版本管理

    使用git来管理web开发: 我们需要做的事情 : 1,在服务器建立版本仓库: 2,在服务器建立稳定版本的站点,编写版本仓库的hooks: 3,在开发服务器上提交开发版本: 下面一步一步来:(注意建立 ...

  8. 转 linux进程内存到底怎么看 剖析top命令显示的VIRT RES SHR值

    引 言: top命令作为Linux下最常用的性能分析工具之一,可以监控.收集进程的CPU.IO.内存使用情况.比如我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT).物理内存(RES). ...

  9. 使用grep恢复被删文件内容

    在Unix/Linux下,最危险的命令恐怕就属rm命令了,每次在root下使用这个命令的时候,我都要盯着命令行看上几分钟才敢把回车敲下去.以前,看到同事在脚本中使用rm命令 —— rm {$App_D ...

  10. Android studio 中创建AIDL Service

      1.概述  AIDL在android系统中的作用 AIDL,Android Interface definition language的缩写,它是一种android内部进程通信接口的描写叙述语言, ...