会员登录 立即注册

搜索

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

[复制链接]
崎山小鹿 发表于 2024-5-2 15:30:17 | 显示全部楼层 |阅读模式
崎山小鹿
2024-5-2 15:30:17 5885 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 作者:李全栋  来源:简书
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 11:04:54 | 显示全部楼层
崎山小鹿
2024-6-14 11:04:54 看全部
String.EndsWith  确定此字符串实例的结尾是否与指定字符串匹配。
返回true 如果value参数与此字符串的结尾匹配;否则,false
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 12:12:32 | 显示全部楼层
崎山小鹿
2024-6-14 12:12:32 看全部
const-string v0, "LOG"  # 将v0寄存器赋值为字符串常量"LOG"
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 19:31:11 | 显示全部楼层
崎山小鹿
2024-6-14 19:31:11 看全部
https://www.cnblogs.com/hkgov/p/14707726.html    java读取文件的6种方式
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

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

本版积分规则 返回列表

管理员给TA私信
以墨运商,以商助墨。

查看:5885 | 回复:4

  • 在村子中央建立图书馆

    昨天成绩斐然,收获两栋漂亮海滨别墅,和一个高级瞭望塔,但同时损失惨重,村民损失九

    阅读:0|2024-12-22
  • 墨家小镇文化与经济

    文化建设: 墨家十要 旗帜: 八卦 双鱼戏水 经济建设: 麦田、 甘蔗田

    阅读:156|2024-12-20
  • 墨者的面具

    仿照三星堆的面具做头像

    阅读:151|2024-12-19
  • 从出生地前往墨家小镇集合

    装饰一下出生地 现在有路标了,通过路标让会员找到我们的村庄,一路要非常小心不

    阅读:239|2024-12-18
  • 墨家盾牌和武器

    盾牌上有墨家的标志,武器上也有墨家的特色

    阅读:231|2024-12-17
  • 安全的保险箱

    每个人都一个自己的箱子,只有自己能开启。且死亡不掉落! 对着一个上方没有红石导

    阅读:240|2024-12-17
  • 我的世界之墨家旗帜

    如何在我的世界里创建独特的旗帜呢? 将图片生成像素画 https://chuiliu.github.io/d

    阅读:295|2024-12-16
  • 给服务器增加组件

    给服务器增加组件,例如:墨家旗帜 租赁服务器如何使用mod? 答:目前我的世界纯净

    阅读:356|2024-12-15
  • 用手机玩墨山游侠

    用手机玩墨山游侠 各大应用市场都可以下载我的世界游戏,启动之后 选择【开始游戏】

    阅读:366|2024-12-15
  • 墨山游侠服务器开启

    在网易上开启创服之旅 服务器号:25744989 我们先用游戏版本:1.12.2 来测试,看

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

手机APP

官方微博

官方微信

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