会员登录 立即注册

搜索

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

[复制链接]
崎山小鹿 发表于 2024-5-2 15:30:17 | 显示全部楼层 |阅读模式
崎山小鹿
2024-5-2 15:30:17 3024 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
想制作数字人或直播平台的请和我们联系,微信: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
想制作数字人或直播平台的请和我们联系,微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 11:04:54 | 显示全部楼层
崎山小鹿
2024-6-14 11:04:54 看全部
String.EndsWith  确定此字符串实例的结尾是否与指定字符串匹配。
返回true 如果value参数与此字符串的结尾匹配;否则,false
天不生墨翟,万古如长夜!加我微信:qishanxiaolu
想制作数字人或直播平台的请和我们联系,微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-6-14 12:12:32 | 显示全部楼层
崎山小鹿
2024-6-14 12:12:32 看全部
const-string v0, "LOG"  # 将v0寄存器赋值为字符串常量"LOG"
天不生墨翟,万古如长夜!加我微信:qishanxiaolu
想制作数字人或直播平台的请和我们联系,微信: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
想制作数字人或直播平台的请和我们联系,微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

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

本版积分规则 返回列表

管理员给TA私信
加我微信:qishanxiaolu

查看:3024 | 回复:4

  • 大禹治水鼠标垫

    大禹治水鼠标垫 》》淘宝店购买《《

    阅读:129|2024-10-25
  • 墨子抱枕

    墨子抱枕 支持预定 >>淘宝购买

    阅读:183|2024-10-24
  • 华为的免费云主机

    有华为云账号的,可以登录华为开发者空间:https://developer.huaweicloud.com/develo

    阅读:187|2024-10-23
  • 神经网络训练过程可视化

    我们在使用神经网络的时候一般将它看作是个黑盒子,里面到底是什么样,是什么样的结构

    阅读:179|2024-10-23
  • 用神经网络自动玩游戏

    用神经网络玩游戏 CartPole是OpenAI gym中的一个游戏测试,车上顶着一个自由摆动的杆子

    阅读:357|2024-10-21
  • 尝试给视频换脸

    今天尝试修改一个视频,就是将视频中的人物通过换脸换成我的脸,看看最终效果怎么样。

    阅读:331|2024-10-20
  • 可拆卸太阳能充电屋

    可拆卸太阳能充电屋

    阅读:321|2024-10-19
  • 农村无人菜园

    网上的客户通过操控无人机进菜园摘菜,称重,付款,打包,邮寄。 这样可以激活很多

    阅读:272|2024-10-19
  • 墨家的起源以及发展

    墨家真的是武士演变而来的吗?在冯友兰的《中国哲学简史》中有这样的描述。儒家和墨家

    阅读:445|2024-10-18
  • 根据语音生成视频33搜帧

    33搜帧,是一个能根据语音生成视频的网站, https://fse.agilestudio.cn/ 33搜帧是一

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

手机APP

官方微博

官方微信

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