会员登录 立即注册

搜索

JEB Android反编译、反汇编、动态调试工具

[复制链接]
崎山小鹿 发表于 2024-5-2 15:30:17 | 显示全部楼层 |阅读模式
崎山小鹿
2024-5-2 15:30:17 1740 4 看全部
JEB 是由 PNF 软件(PNF Software)机构开发的一款专业的安卓应用程序的反编译工具,适用于逆向和审计工程,功能非常强大。相比 jadx 来说,JEB 不仅仅支持安卓 apk 的反编译,安卓应用的动态调试,还支持 ARM、MIPS、AVR、Intel-x86、WebAssembly、Ethereum(以太坊)等程序的反编译、反汇编、动态调试等功能,另外还能对一些 PDF 文件进行解析和处理,是一个极其强大的综合性逆向和审计工具。

JEB 支持 Windows、Linux、Mac 三大平台,其官网地址为 https://www.pnfsoftware.com,目前主要分为三个版本:JEB CE(社区版)、JEB Android(安卓版)、JEB Pro(专业版)。JEB CE 提供了一些基础的功能,如支持 dex 文件的反编译,支持 Intel-x86 的反编译和反汇编,但不支持 Dalvik 字节码的反编译等功能。JEB Android 则更专注于安卓,支持 dex 文件的反编译,也支持 Dalvik 字节码的反编译和反汇编,JEB Pro 则是“完全体”,支持官网所介绍的所有的功能。具体的功能对比可以参考官网的介绍:https://www.pnfsoftware.com/jeb。三个版本中,JEB CE 是免费的,JEB Android 和 JEB Pro 都是收费的,需要购买许可证才可以使用。

安装
下载:https://bbs.kanxue.com/thread-273035.htm
文件如下:
微信截图_20240529120415.png
解压:jeb-demo-4.16.0.202205110304-JEBDecompiler-121820464987384330.zip

将fix2下的两个文件复制
微信截图_20240529120842.png

覆盖掉jeb-demo-4.16.0.202205110304-JEBDecompiler-121820464987384330\bin\app目录下的两个文件
微信截图_20240529121011.png

启动jeb_wincon.bat
微信截图_20240529121151.png
点击继续

打开apk文件
jeb.png
可以看到还原的代码非常接近原始代码

调试前的准备,开启adb服务:
D:\Android\android-sdk\platform-tools>adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
emulator-5554   offline


D:\Android\android-sdk\platform-tools>netstat -ano | findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       15076

调试APK
附加调试.png

可以增加断点,查看变量了
开始调试.png

.method public invokeCallbackHandler(I, String)V
          .registers 5
00000000  iget-wide           v0, p0, AppBrandJsBridgeBinding->mJsRuntimeInst:J
00000004  invoke-direct       AppBrandJsBridgeBinding->nativeInvokeCallbackHandler(J, I, String)V, p0, v0, v1, p1, p2
0000000A  return-void
.end method

.method        定义方法开始
.end method        定义方法结束
V   void        只能用于返回值类型
.registers        指定方法内使用寄存器的总数
iget-wide        取值,用于操作wide型字段
invoke-direct        用于调用private修饰的方法,或者构造方法
invoke-virtual        用于调用一般的,非private、非static、非final、非构造函数的方法,它的第一个参数往往会传p0,也就是this指针
move-result v1        将这个指令的上一条指令计算结果,移入到v1寄存器中(需要配合invoke-static、invoke-virtual等指令使用)
if-eqz v0, :cond_0   //判断v0是否等于0,等于0则跳到cond_0执行

寄存器分为如下两类:
1、本地寄存器
用v开头数字结尾的符号来表示,v0, v1, v2,...
2、参数寄存器
用p开头数字结尾的符号来表示,p0,p1,p2,...
注意:
在非static方法中,p0代指this,p1为方法的第一个参数。
在static方法中,p0为方法的第一个参数





错误解决:
1.JEB requires a Java JRE or JDK version 8 or above. Recommended version: Java 8.191
It is also recommended to set JAVA_HOME and JRE_HOME environment variables to point to your JDK
解决:JEB 需要 Java JRE 或 JDK 版本 8 或更高版本。推荐版本:Java 8.191
还建议设置 JAVA_HOME 和 JRE_HOME 环境变量以指向您的 JDK

2.jeb局部变量总是显示为void
143235poi33xr4x8xiou4p.png
解决:jeb官方给出的解决方法是使用安卓5.0-8.1或者安卓11+,所以雷电9模拟器切换到雷电7模拟器。
同时在动态调试的时候手动在类型框里面输入类型
微信截图_20240614160056.png


参考:
https://cuiqingcai.com/31082.html
https://bbs.kanxue.com/thread-268316.htm

smail基础知识:
https://coderyuan.com/2018/04/19/smali-knowledge/
链接:https://www.jianshu.com/p/9931a1e77066 作者:李全栋  来源:简书
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-5 10:02:09 | 显示全部楼层
崎山小鹿
2024-6-5 10:02:09 看全部
微信图片_20240605100309.png

错误提示:
An unrecoverable error occurred. lt is recommended you exit JEBError: java.lang.OutOfMemoryError: GC overhead limit exceeded

翻译:发生不可恢复的错误。建议您退出 JEBError: java.lang.OutOfMemoryError: 超出 GC 开销限制

在平时逆向分析的时候,发现JEB在打开比较大的App的时候,总是会报java.OutOfMemoryError这种错误,明明电脑的内存还是好多个G呢,怎么回事呢?

if exist "%~dp0jvmopt.txt" set /p JVMOPT=<"%~dp0jvmopt.txt"

通过分析代码得知:需要创建jvmopt.txt文件,在文件中增加设置:
-Xss4M
-Xmx14G
就可以修改内存开销限制,将内存最大限制调整到14G
微信图片_20240605113038.png
看效果:
微信截图_20240605112526.png
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 11:04:54 | 显示全部楼层
崎山小鹿
2024-6-14 11:04:54 看全部
String.EndsWith  确定此字符串实例的结尾是否与指定字符串匹配。
返回true 如果value参数与此字符串的结尾匹配;否则,false
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 12:12:32 | 显示全部楼层
崎山小鹿
2024-6-14 12:12:32 看全部
const-string v0, "LOG"  # 将v0寄存器赋值为字符串常量"LOG"
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 19:31:11 | 显示全部楼层
崎山小鹿
2024-6-14 19:31:11 看全部
https://www.cnblogs.com/hkgov/p/14707726.html    java读取文件的6种方式
回复

使用道具 举报

  • 您可能感兴趣
  • 生成身临其境的环境模型
    生成身临其境的环境模型
    清华大学创作的AI软件 aiuni Aiuni.ai是一个基于Unique3D的在线AI图片转3D模型生成建
    09-07
  • 站长日记-天道与畜生道
    站长日记-天道与畜生道
    天道无情,但众生平等,无为却处处体现博爱。畜生道有情,讲的是尊卑次序只为繁衍,处
    06-20
  • 墨者的几个阶段
    墨者的几个阶段
    一、知毛泽东,不知有墨子。 二、知墨子,但依然儒法道行事。 三、知墨子,尝试墨家
    08-31
  • 图生产3D模型
    图生产3D模型
    https://hyperhuman.deemos.com/ 上传图片,点击生成 可以多生成几次,点击应用
    08-30
  • 如何给3D人物换衣服CC4
    如何给3D人物换衣服CC4
    1.导入人物 2.设置人物Apose 3.导入衣服 create -> accessory 选择fbx文件 设置
    08-30
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

查看:1740 | 回复:4

  • 生成身临其境的环境模型

    清华大学创作的AI软件 aiuni Aiuni.ai是一个基于Unique3D的在线AI图片转3D模型生成建

    阅读:28|2024-09-07
  • 墨者的几个阶段

    一、知毛泽东,不知有墨子。 二、知墨子,但依然儒法道行事。 三、知墨子,尝试墨家

    阅读:279|2024-08-31
  • 图生产3D模型

    https://hyperhuman.deemos.com/ 上传图片,点击生成 可以多生成几次,点击应用

    阅读:254|2024-08-30
  • 如何给3D人物换衣服CC4

    1.导入人物 2.设置人物Apose 3.导入衣服 create -> accessory 选择fbx文件 设置

    阅读:245|2024-08-30
  • 墨子平台总设计师

    相濡以墨,用墨子思想重塑商业,以商助墨,以墨韵商。商品把关,营销把关,职务把关

    阅读:228|2024-08-29
  • 招聘AI模型训练师

    训练人物模型,对换脸技术有研究。

    阅读:201|2024-08-29
  • 墨家商品联盟

    大家好,我是相濡以墨,我是墨子的忠实粉丝,现在墨家的朋友越来越多,很多墨家人多才

    阅读:230|2024-08-29
  • 精彩人工智能影视分享

    精彩人工智能影视分享 通过百度网盘分享的文件:AI影视 链接:https://pan.baidu.com

    阅读:276|2024-08-28
  • 墨子从两千年的沉睡中醒来

    大家好,我是墨翟,就是你们后世称之为的墨子,我突然从战国时代的沉睡中苏醒,置身于

    阅读:301|2024-08-24
  • 机器人模型制作

    使用图片 关键词: 未来人机合体,科幻,真人头部,头部以下是机器身体,身体透明外

    阅读:294|2024-08-22
金双石科技,软件开发20年,技术行业领先,您的满意,就是我们的目标,认真负责,开拓进取,让成品物超所值
关于我们
公司简介
发展历程
联系我们
本站站务
友情链接
新手指南
内容审核
商家合作
广告合作
商家入驻
新闻合作

手机APP

官方微博

官方微信

联系电话:15876572365 地址:深圳市宝安区西乡街道宝民二路宝民花园 ( 粤ICP备2021100124号-1 ) 邮箱:qishanxiaolu@qq.com
QQ|Powered by Discuz! X3.5 © 2001-2024 Discuz! Team.
快速回复 返回顶部 返回列表