会员登录 立即注册

搜索

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

[复制链接]
崎山小鹿 发表于 2024-5-2 15:30:17 | 显示全部楼层 |阅读模式
崎山小鹿
2024-5-2 15:30:17 1114 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种方式
回复

使用道具 举报

  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

查看:1114 | 回复:4

  • 免费在线 Autodesk FBX 到 OpenUSD 转换器

    免费在线 Autodesk FBX 到 OpenUSD 转换器 https://products.aspose.app/3d/zh-cn/co

    阅读:248|2024-07-10
  • 3D数字人制作-Character creator

    Character creator 《角色创建者》是由Reallusion [1]公司推出的一款3D角色建模软件,

    阅读:337|2024-07-08
  • 第九区

    第九区的本质是创建一个世界模型,希望用这个世界模型能为老百姓和政府提供数据和推理

    阅读:318|2024-07-07
  • Discuz强大的广告系统

    强大的广告系统 页头通栏广告:页头通栏广告显示于论坛页面右上方 全局 页尾通栏广

    阅读:203|2024-07-07
  • 对于老百姓而言VR到底能做什么?

    VR技术自诞生以来不断发展,已经广泛应用于教育、医疗、工程、军事、航空、航海、影视

    阅读:288|2024-07-06
  • 剪映数字人口播原理

    剪映版本升级了,新版本6.0.1支持数字人定制,于是我赶紧申请了使用资格 目前的价格

    阅读:408|2024-07-03
  • 科学作息AI助手

    在魔塔空间创建了一个作息时间管理的agent >>>>>点我体验

    阅读:370|2024-07-01
  • 开发者聊科学作息时间表

    非常有幸对科学作息时间表app的开发者做一次采访。 问:你对科学作息时间表app满意么

    阅读:337|2024-07-01
  • 在线制作ico图标的网站

    给大家推荐一个在线制作ICO图标的网站 比特虫: https://www.bitbug.net/ 你也可以直

    阅读:400|2024-06-30
  • 恢复微信聊天记录

    微信好友删除了,之前的聊天记录能恢复么?能的,不管是安卓、苹果、Windows下的微信

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

手机APP

官方微博

官方微信

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