zoukankan      html  css  js  c++  java
  • Android库分析工具(崩溃反编译)

    [时间: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)objlocalarmeabi下面带符号表的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 jniobjlocalarmeabilibXX.so 00002683
    

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

    ndk-stack -sym E:dev_codeSosomap-oldSosomap-jniobjlocalarmeabi -dump D:android-ndk-r9b-windows-x86	xmap_log.txt
    

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

  • 相关阅读:
    hdoj-1004-Let the Balloon Rise(水题)
    hdoj-1827-Summer Holiday(scc+缩点)
    poj--3624--Charm Bracelet(动态规划 水题)
    HDU
    HDU
    HDU
    HDU
    【POJ1654】Area【叉积】
    【POJ1654】Area【叉积】
    【SSLOJ1715】计算面积【叉积】
  • 原文地址:https://www.cnblogs.com/tocy/p/android-crash_decompile-tool-cmd.html
Copyright © 2011-2022 走看看