安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)

 

From:https://www.52pojie.cn/forum.php?mod=viewthread&tid=742250

jeb 动态调试 smali 代码:https://www.bilibili.com/video/BV1UE411A7rW?p=39

 

使用 JEB 调试 Android App:https://www.jianshu.com/p/a1a7cf687cd2
了解 JEB 和 IDA 使用:https://www.52pojie.cn/thread-414414-1-1.html
Java 分析工具 jadx、jeb 双管齐下:https://www.52pojie.cn/thread-457835-1-1.html
Jeb 软件简单分析:https://www.cnblogs.com/shyx/p/9273336.html

Jeb 软件是一款专业实用且为安全专业人士设计的 Android 应用程序的反编绎工具!
Jeb 官网:https://www.pnfsoftware.com/

 

jeb 动态调试分两种:

  1. 普通调试 模式
  2. debug 调试 模式

 

 

1. jeb 的常用功能

 

  • 1. 反编译 apk、dex
  • 2. 包名 树状图
  • 3. 查看指定类的 smali 代码
  • 4. 转换成 java 语言
  • 5. java 代码中双击函数 进入函数方法的定义 ,查看方法的调用
  • 6. 查看 AndroidManifest.xml

打开 JEB 软件  

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第1张图片

可以直接打开 jeb_wincon.bat,也可以进入 bin 目录下打开:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第2张图片

把 apk 拖拉到 JEB 中即可反编译 apk 双击 Bytecode 打开 smali 代码

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第3张图片

双击 包名 下的 类名 即可查看 smali 代码

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第4张图片

想把指定区域的 smali 代码转换成 java 代码 很简单, 只需右键 Q 即可 ,jeb3 的版本是 tab 键

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第5张图片

或者:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第6张图片

双击方法即可跳转到方法的定义

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第7张图片

点击方法按 x 键可以查看方法的调用

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第8张图片

双击 Manifest 即可查看 AndroidManifest.xml

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第9张图片

搜索功能 可以搜索函数 字符串等

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第10张图片

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第11张图片

说明:对于Android逆向来说JEB是不可或缺的一款软件 本篇介绍了JEB的一些常用功能  更多详细功能还需自行百度。

 

 

2. jeb 动态调试

 

普通调试 模式

https://blog.csdn.net/qq_33364733/article/details/98087384

jeb 调试 zhuceji.apk 找到注册码

雷电模拟器打开zhuceji程序,如图:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第12张图片

2.jeb工具打开 apk 如图:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第13张图片

3.下面开始对程序进行调试,debug ---> 开始 并找到相关进程双击进行调试:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第14张图片

4.在MainAtivity的onclick下断点(鼠标点击要下断点的行:control+b 打断点),然后在模拟器中输入任意16位注册码进行调试:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第15张图片

5.通过调试 smali 代码可以找到 checkSN 方法是解决问题的关键:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第16张图片

6.右键点击 Decompile 查看 checkSN 方法对应的代码:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第17张图片

7. java 代码逻辑可知此寄存器的值就是我们要找的注册码,因此在 checkSN 方法 return 下断点,程序走到这时查看相关寄存器即可找到 注册码

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第18张图片

8.然后就是:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第19张图片

 

 

debug 调试 模式

 

debug 模式 和 普通模式的区别在于 启动过程

  • 普通模式:无法调试界面的 创建,即 onCreate 函数
  • debug 模式:可以调试 界面的 onCreate 函数,即刚开始创建界面是就开始调试

 

步骤:

1. 查看 application 节点 是否 为 可调式 。

如果是 False,则不能调试,需要改成 True 然后重新打包 apk,安装 可调试的 apk,然后  adb shell am start -D -n 应用程序包名/应用程序入口界面

这里可以看到 apk 已经 可调试。

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第20张图片

 

2. cmd ---> adb shell am start -D -n 应用程序包名/应用程序入口界面:

adb shell am start -D -n com.qianyu.zhuceji/.MainActivity

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第21张图片

执行完后,模拟器显示如图:

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第22张图片

这时候,不需要点击弹窗。

 

3. 使用 jeb 开始调试( 这一步 和 普通模式 步骤一样 )

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第23张图片

点击 附上 之后,模拟器的弹窗 自动消失,然后就可以在 jeb 中下断点、调试了。

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)_第24张图片

 

 

 

 

 

你可能感兴趣的:(Android,逆向)