Android进阶

JEB动态调试apk

2017-04-17  本文已影响2700人  Andrew玩Android

本文JEB版本 2.2.7下载JEB2.2.7

或者 [下载] jeb2.2.5 破解版 感谢F8大神

关于JEB

JEB是一个功能强大的为安全专业人士设计的Android应用程序的反编译工具。用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间。

  1. 全面的Dalvik反编译器。
    JEB的独特功能是,其Dalvik字节码反编译为Java源代码的能力。无需DEX-JAR转换工具。我们公司内部的反编译器需要考虑的Dalvik的细微之处,并明智地使用目前在DEX文件的元数据。
  2. 交互性。
    分析师需要灵活的工具,特别是当他们处理混淆的或受保护的代码块。JEB的强大的用户界面,使您可以检查交叉引用,重命名的方法,字段,类,代码和数据之间导航,做笔记,添加注释,以及更多。
  3. 可全面测试APK文件内容。
    检查解压缩的资源和资产,证书,字符串和常量等。
    追踪您的进展情况。
    不要让研究的工时浪费。保存您的分析对JEB数据库文件,通过JEB的修订历史记录机制和跟踪进展。
  4. 多平台。
    JEB支持Windows, Linux和Mac OS。
  5. 扩展性
    利用JEB API自动化逆向工程任务。
    使用JavaPython,用户可以编写自己的脚本和插件来自动执行逆向工程流程。
    高级用户可以编写完整的分析模块和headless front-ends

动态调试

反编译APK

打开JEB,如果是windows系统的话,解压后运行安装目录下的jeb_wincon.bat,其他系统请运行对应脚本。

将APK安装包拖进主界面即自动反编译,结构如下图,如果有外部引用还会有Libraries文件夹。


apkinfo.png

见名知意,Certificate:证书,Bytecode:字节码,Resources:资源文件。

打开文件结构视图

双击Bytecode,会打开两个窗口,Bytecode/HierarchyBytecode/Disassembly

两个窗口都显示的是相当于用baksmali反编译后smali下所有文件。
Bytecode/Disassembly是包含在Disassembly一个文件中。
Bytecode/Hierarchy则是以树形结构显示。

bytecode.png

可能Hierarchy和Disassembly是以两个选择卡在一个窗口中打开(如下图),可以通过拖拽选项卡以两个窗口打开(如上图),更利于调试。


one-window.png

查看指定文件

Bytecode/Hierarchy中双击指定文件如MainActivity,则会自动定位到Bytecode/Disassembly中对应的定义中。

activity.png

也可以直接定位到方法和变量中。

method.png

快速查看Smali和伪代码对应方法

快捷键Q可以将定位到的Smali转换为伪代码,更便于阅读。
选中方法,使用快捷键Q可以在Smali和伪代码中快速定位和跳转。

标记断点

在Smali中鼠标单击选中行后,快捷键Ctrl+B可以标记和取消断点。

breakpoint.png

开始调试

设置好断点后,运行设备上被调试的应用,点击菜单栏上调试按钮开始调试。

debug-button.png

点击调试按钮,会弹出Attach确定弹窗。
Machines/Devices选中要调试设备,
Processes选中要调试的应用对应的进程,即Flags为D的进程(可通过点击Flags 排序的方式快速选中)。

debug-attach.png

注意:此时不要开启DDMS,不然会出错的。

点击Attach按钮后成功调试。
断点条件触发后进入断点,在VM/Locals中可以查看变量值,F6可以单步。

breakpoint.png

点击调试按钮后可能会提示用自定义布局调试

The dalvik and native debuggers are in beta mode.
It is recommended to create and switch to a custom ui layout when

Window --> New Layout...创建使用即可。


相关推荐:
IDEA 动态调试Smali代码
AndroidStudio 动态调试Smali代码


参考:

jeb2.2.7动态调试apk

[下载] jeb2.2.5 破解版

上一篇下一篇

猜你喜欢

热点阅读