JEB动态调试apk
本文JEB版本 2.2.7,下载JEB2.2.7
或者 [下载] jeb2.2.5 破解版 感谢F8大神
关于JEB
JEB是一个功能强大的为安全专业人士设计的Android应用程序的反编译工具。用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间。
- 全面的Dalvik反编译器。
JEB的独特功能是,其Dalvik字节码反编译为Java源代码的能力。无需DEX-JAR转换工具。我们公司内部的反编译器需要考虑的Dalvik的细微之处,并明智地使用目前在DEX文件的元数据。 - 交互性。
分析师需要灵活的工具,特别是当他们处理混淆的或受保护的代码块。JEB的强大的用户界面,使您可以检查交叉引用,重命名的方法,字段,类,代码和数据之间导航,做笔记,添加注释,以及更多。 - 可全面测试APK文件内容。
检查解压缩的资源和资产,证书,字符串和常量等。
追踪您的进展情况。
不要让研究的工时浪费。保存您的分析对JEB数据库文件,通过JEB的修订历史记录机制和跟踪进展。 - 多平台。
JEB支持Windows, Linux和Mac OS。 - 扩展性
利用JEB API自动化逆向工程任务。
使用Java或Python,用户可以编写自己的脚本和插件来自动执行逆向工程流程。
高级用户可以编写完整的分析模块和headless front-ends。
动态调试
反编译APK
打开JEB,如果是windows系统的话,解压后运行安装目录下的jeb_wincon.bat
,其他系统请运行对应脚本。
将APK安装包拖进主界面即自动反编译,结构如下图,如果有外部引用还会有Libraries文件夹。
apkinfo.png
见名知意,Certificate:证书,Bytecode:字节码,Resources:资源文件。
打开文件结构视图
双击Bytecode,会打开两个窗口,Bytecode/Hierarchy和Bytecode/Disassembly。
两个窗口都显示的是相当于用baksmali反编译后smali下所有文件。
Bytecode/Disassembly是包含在Disassembly一个文件中。
而Bytecode/Hierarchy则是以树形结构显示。
可能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 排序的方式快速选中)。
注意:此时不要开启DDMS,不然会出错的。
点击Attach按钮后成功调试。
断点条件触发后进入断点,在VM/Locals中可以查看变量值,F6可以单步。
点击调试按钮后可能会提示用自定义布局调试
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代码
参考: