会员登录 立即注册

搜索

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

[复制链接]
崎山小鹿 发表于 2024-5-2 15:30:17 | 显示全部楼层 |阅读模式
崎山小鹿
2024-5-2 15:30:17 10664 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   公司:深圳市金双石科技有限公司
回复

使用道具 举报

  • 您可能感兴趣
  • 墨山游侠之一键回家
    墨山游侠之一键回家
    一、回家传送卷轴 有了这个玩家再也不用为了回家长途奔袭了,也不用为了回家杀死自己
    04-15
  • 墨山游侠的武器店
    墨山游侠的武器店
    武器店的设计还是很让人头疼的,刚好找到一个很好的设计: 参考: 详细视频:
    04-11
  • 墨山游侠之战斗系统
    墨山游侠之战斗系统
    村民招募模组 能让你建造盾兵、战士、马匹。你可以像指挥真正的军队那样指挥他们。你
    04-11
  • 墨山游侠之马车
    墨山游侠之马车
    中世界模组:Nifty Cart 非常逼真的马车效果。有四种不同类型的马车。 更详细资料:
    04-11
  • 墨山游侠之墨子剑
    墨山游侠之墨子剑
    一、使用铁砧和命令来创造 1给自己一把下界合金剑 /give @p netherite_sword 1 0 2用
    04-10
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

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

查看:10664 | 回复:4

  • 墨山游侠之一键回家

    一、回家传送卷轴 有了这个玩家再也不用为了回家长途奔袭了,也不用为了回家杀死自己

    阅读:171|2025-04-15
  • 墨山游侠的武器店

    武器店的设计还是很让人头疼的,刚好找到一个很好的设计: 参考: 详细视频:

    阅读:344|2025-04-11
  • 墨山游侠之战斗系统

    村民招募模组 能让你建造盾兵、战士、马匹。你可以像指挥真正的军队那样指挥他们。你

    阅读:352|2025-04-11
  • 墨山游侠之马车

    中世界模组:Nifty Cart 非常逼真的马车效果。有四种不同类型的马车。 更详细资料:

    阅读:376|2025-04-11
  • 墨山游侠之墨子剑

    一、使用铁砧和命令来创造 1给自己一把下界合金剑 /give @p netherite_sword 1 0 2用

    阅读:470|2025-04-10
  • 墨山游侠第四关

    怎么让漏斗“变成过滤漏斗” 条件一:侧面连接而不是垂直连接 把漏斗从侧面连接到一个

    阅读:496|2025-04-06
  • 墨山游侠(1)田横遇险

    田横遇险是一个冒险生存游戏,不知道从什么时候开始,大地迎来了漫长的黑夜,你作为一

    阅读:686|2025-04-06
  • 共产主义真的能实现么?我们用游戏来模拟

    共产主义真的能实现么?我们看看共产主义在维基百科上的解释:共产主义(拉丁语:comm

    阅读:794|2025-03-31
  • 墨山游侠的NPC

    1.给一个村民命名为:田横 2.将这个村民在一个地方站岗 使用MODSDK自定义NPC的聊

    阅读:639|2025-03-27
  • 墨山游侠-墨子皮肤

    网易我的世界虽然可以更换皮肤,但是无法自己上传皮肤 可以通过这个软件编辑皮肤 h

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

手机APP

官方微博

官方微信

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