首页
社区
课程
招聘
[原创]jeb-demo-4.x 破解
发表于: 2021-7-2 09:06 57783

[原创]jeb-demo-4.x 破解

2021-7-2 09:06
57783

目标:破解jeb-pro-3.19.1.202005071620版本的时间限制,绕过自身完整性校验。

代码如下:

将生成的class文件替换原来jeb.jar中的文件即可,并且删除MATA-INF目录下的JEBKEY.RSAJEBKEY.SF,并修改了MANIFEST.MF文件,至此我才终于开始步入正轨

MANIFEST.MF文件内容如下:

关于jeb-demo-4.1.0版本的破解,最主要的参照就是JEB 3.24 Anti-BLM Edition by DimitarSerg版本。

经过一定的测试,可以直接使用IDEA来编写java文件
测试了几款反编译工具(JD-GUI、IDEA)效果都不太理想,所以可能还是得手撸代码了。
参考文章

这里列举一下简要步骤,感兴趣的师傅可以自行尝试。
1.文件比对
2.重写功能函数
3.测试

下载地址如下:

最近4.2.0版本又更新了,后续在进行更新。

2021.07.02更新

感谢@nevinhappy师傅的提示,CE版和DEMO版本结合起来功能基本上和PRO版本没有差别(虽然没用过PRO-。-)

此版本基于DEMO版,并吸取了CE版的大量代码

如图:

1

2

注意:4.x版本所保存的工程文件无法使用3.x版本打开。

官方计划在2021年出RISC-V DecompilerAtmel AVR 8-bit Decompiler,一起期待一下吧。

PS:
话说有师傅知道4.2.0反编译APK的时候,怎么加载python脚本吗?,我按照官方的做法,没法加载,提示no module DOptSamplePython,可我已经将DOptSamplePython.py放到coreplugins/scripts文件夹中了,用CE版本也是如此。

 
import javassist.*;
 
import java.io.IOException;
 
public class Main {
    public static final int FLAG_DEBUG = 1;
    public static final int FLAG_FULL = 2;
    public static final int FLAG_FLOATING = 4;
    public static final int FLAG_AIRGAP = 8;
    public static final int FLAG_ANYCLIENT = 16;
    public static final int FLAG_COREAPI = 32;
    public static final int FLAG_JEB2 = 128;
 
    public static void main(String[] args) throws NotFoundException, CannotCompileException, IOException {
        ClassPool pool = ClassPool.getDefault();
        String classPatch = "/Users/*/IdeaProjects/crack_jeb_pro/lib/jeb-3.19.jar";
        pool.insertClassPath(classPatch);
        // 修改许可证时间
        CtClass ctClass = pool.get("com.pnfsoftware.jeb.client.Licensing");
        CtMethod ctMethod = ctClass.getDeclaredMethod("getExpirationTimestamp");
        ctMethod.setBody("return 2000000000;");
        ctClass.writeFile("/Users/*/Public/");
 
        //修改 prepareCheckLicenseKey 函数
        ctClass = pool.get("com.pnfsoftware.jeb.client.AbstractClientContext");
        ctMethod = ctClass.getDeclaredMethod("prepareCheckLicenseKey");
        ctMethod.setBody("return ;");
        ctClass.writeFile("/Users/*/IdeaProjects/crack_jeb_pro/out/");
 
        // 修改 com.pnfsoftware.jebglobal.r.RF 函数 总共有四处
        ctClass = pool.get("com.pnfsoftware.jebglobal.r");
        ctMethod = ctClass.getDeclaredMethod
                (
                        "RF",
                        new CtClass[]
                                {
                                        pool.get("java.lang.Class")
                                }
                );
        ctMethod.setBody("return true;");
        ctMethod = ctClass.getDeclaredMethod
                (
                        "RF",
                        new CtClass[]
                                {
                                        pool.get("java.lang.Object"),
                                        pool.get("java.lang.Class")
                                }
                );
        ctMethod.setBody("return true;");
        ctMethod = ctClass.getDeclaredMethod
                (
                        "RF",
                        new CtClass[]
                                {
                                        pool.get("java.lang.Class[]")
                                }
                );
        ctMethod.setBody("return true;");
        ctMethod = ctClass.getDeclaredMethod
                (
                        "RF",
                        new CtClass[]
                                {
                                        pool.get("java.lang.Object"),
                                        pool.get("java.lang.Class[]")
                                }
                );
        ctMethod.setBody("return true;");
        ctClass.writeFile("/Users/*/IdeaProjects/crack_jeb_pro/out/");
 
 
    }
 
}
import javassist.*;
 
import java.io.IOException;
 
public class Main {
    public static final int FLAG_DEBUG = 1;
    public static final int FLAG_FULL = 2;
    public static final int FLAG_FLOATING = 4;
    public static final int FLAG_AIRGAP = 8;
    public static final int FLAG_ANYCLIENT = 16;
    public static final int FLAG_COREAPI = 32;
    public static final int FLAG_JEB2 = 128;
 
    public static void main(String[] args) throws NotFoundException, CannotCompileException, IOException {
        ClassPool pool = ClassPool.getDefault();
        String classPatch = "/Users/*/IdeaProjects/crack_jeb_pro/lib/jeb-3.19.jar";
        pool.insertClassPath(classPatch);
        // 修改许可证时间
        CtClass ctClass = pool.get("com.pnfsoftware.jeb.client.Licensing");
        CtMethod ctMethod = ctClass.getDeclaredMethod("getExpirationTimestamp");
        ctMethod.setBody("return 2000000000;");
        ctClass.writeFile("/Users/*/Public/");
 
        //修改 prepareCheckLicenseKey 函数
        ctClass = pool.get("com.pnfsoftware.jeb.client.AbstractClientContext");
        ctMethod = ctClass.getDeclaredMethod("prepareCheckLicenseKey");
        ctMethod.setBody("return ;");
        ctClass.writeFile("/Users/*/IdeaProjects/crack_jeb_pro/out/");
 
        // 修改 com.pnfsoftware.jebglobal.r.RF 函数 总共有四处
        ctClass = pool.get("com.pnfsoftware.jebglobal.r");
        ctMethod = ctClass.getDeclaredMethod
                (
                        "RF",
                        new CtClass[]
                                {
                                        pool.get("java.lang.Class")
                                }
                );
        ctMethod.setBody("return true;");
        ctMethod = ctClass.getDeclaredMethod
                (
                        "RF",
                        new CtClass[]
                                {
                                        pool.get("java.lang.Object"),
                                        pool.get("java.lang.Class")
                                }
                );
        ctMethod.setBody("return true;");

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-7-2 22:50 被cow0o0编辑 ,原因: 更新jeb-4.2.0-demo-crack
收藏
免费 18
支持
分享
最新回复 (41)
雪    币: 5194
活跃值: (9722)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
2

我也在干这事,感觉不好干!不过我不是用文件替换,基本全基于ASM框架,主要从CE版本中掏代码。

补充一下:

使用IDEA调试其实很方便,直接到JEB的目录:

  1.  用“Open Folder as IntelliJ IDEA project”打开。

  2.    找到启动相关的JAR文件,比如这个是jebc.jar,将jeb.jar和jebc.jar 配置成:as library 

  3.    第二步之后,jebc.jar文件就可以展开了,这时打到启用Class ,选择它右键“调试”,就启动了。 


最后于 2021-7-2 09:45 被nevinhappy编辑 ,原因:
2021-7-2 09:24
2
雪    币: 1253
活跃值: (675)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
3
3.24-demo破解版,是依据3.19-pro改的,我这个版本也主要是抄的3.19-pro的代码,主要是混淆比较难处理。
CE版我没看,不知道有没有可用的代码。
2021-7-2 09:41
0
雪    币: 440
活跃值: (1163)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4

最近也对比着看了一下 JEB 3.24 Anti-BLM Edition by DimitarSerg 的版本,这里我使用的工具是 cafecompare : https://github.com/GraxCode/cafecompare , Beyond Compare 4 , idea  等工具。 调试参考的这篇文章: https://www.ms509.com/2020/03/19/Java-Debug/


idea 主要用来写java代码,将 jeb 目录下所有的 jar 文件作为 lib , 将反编译的代码复制到 idea 中进行修改,生成 calss 代码,跟正常写 java 代码没什么区别。

最后于 2021-7-2 11:13 被猫子编辑 ,原因:
2021-7-2 11:10
0
雪    币: 25
活跃值: (1111)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
只是破解了license限制,没有补全功能吧
2021-7-2 11:37
0
雪    币: 5194
活跃值: (9722)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
6
BadRer 3.24-demo破解版,是依据3.19-pro改的,我这个版本也主要是抄的3.19-pro的代码,主要是混淆比较难处理。 CE版我没看,不知道有没有可用的代码。
挺好用,LZ不错!!!我补到loadproject一直有问题。你这个代码补的可以!!!
2021-7-2 13:34
0
雪    币: 1253
活跃值: (675)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
7
nevinhappy 我也在干这事,感觉不好干!不过我不是用文件替换,基本全基于ASM框架,主要从CE版本中掏代码。补充一下:使用IDEA调试其实很方便,直接到JEB的目录: 用“Open Folder as Intell ...
感谢提示,欢迎试用4.2.0
2021-7-2 22:53
1
雪    币: 8214
活跃值: (4171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
支持下,谢谢分享!
2021-7-3 11:14
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
mark一下,感谢分享
2021-7-3 22:03
0
雪    币: 351
活跃值: (194)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢分享!!!
2021-7-4 16:04
0
雪    币: 5596
活跃值: (2173)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享!
2021-7-5 09:14
0
雪    币: 5194
活跃值: (9722)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
12
猫子 最近也对比着看了一下 JEB 3.24 Anti-BLM Edition by DimitarSerg 的版本,这里我使用的工具是 cafecompare : https://github.com/G ...

你用的开源比较工具cafecompare 试用了下,还是没有BeyondCompare强大,而且它支持对Jar文件直接比较中反编译,可以下载这个插件就OK了。
不过它默认是使用jad.exe,不过如果想使用自己的反编译器,可以通过修改CLASS_to_JAVA.bat来配置自己的调用工具,很方便。

最后于 2021-7-5 10:27 被nevinhappy编辑 ,原因:
上传的附件:
2021-7-5 10:23
0
雪    币: 440
活跃值: (1163)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
nevinhappy 猫子 最近也对比着看了一下 JEB 3.24 Anti-BLM Edition by DimitarSerg 的版本,这里我使用的工具是 cafe ...
学到了,我后续有时间试一下,感谢分享。
2021-7-8 18:04
0
雪    币: 185
活跃值: (477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
下载试用了下 界面变化好大
2021-7-14 23:24
0
雪    币: 210
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢分享,但不能保存的
2021-7-18 17:45
0
雪    币: 60
活跃值: (1532)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
感谢分享,但是为啥动态调试不了..
2021-7-18 19:55
0
雪    币: 15
活跃值: (67)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
4.2如果直接在jeb里面用没有问题,但是如果export出来的话,发现导出的java文件里面某些函数里面的内容是空的,但是jeb里面看却是全的。有谁碰到过这样的问题吗?
2021-7-21 10:17
0
雪    币: 1253
活跃值: (675)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
18
johnwas 4.2如果直接在jeb里面用没有问题,但是如果export出来的话,发现导出的java文件里面某些函数里面的内容是空的,但是jeb里面看却是全的。有谁碰到过这样的问题吗?
方便把文件发给我吗?我测试一下。
2021-7-21 15:27
1
雪    币: 5194
活跃值: (9722)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
19

解决这个功能是哪处补丁弄的,能给点提示么 ?

2021-7-21 19:06
0
雪    币: 1253
活跃值: (675)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
20
nevinhappy 解决这个功能是哪处补丁弄的,能给点提示么 ?

4.2下的`vA`和`kz`,还有最关键的`Vl`,注意大小写

最后于 2021-7-21 20:06 被cow0o0编辑 ,原因:
2021-7-21 20:05
1
雪    币: 1253
活跃值: (675)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
21
滚动不息的球 感谢分享,但是为啥动态调试不了..
动调我没测试过,不太清楚哈,可能是还没patch,等后面新版本出来,我有时间在补充。
2021-7-21 20:09
0
雪    币: 1253
活跃值: (675)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
22
holeung 感谢分享,但不能保存的
4.2我测试应该是能保存的,不能保存的话不知能否提供附件给我测试一下。
2021-7-21 20:15
0
雪    币: 897
活跃值: (5916)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
JEB 4.3 (July 13, 2021)
Maintenance release.

- Tweaks and bug fixes in gendec, dexdec, dex, odex, arm modules
- Floating controllers: protocol 1 (HTTPS) now use TLSv1.3 (reason: TLSv1 has been deprecated in recent JDKs); see the Manual for details
2021-7-25 18:12
0
雪    币: 54
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24

牛牛。。。

最后于 2021-8-1 20:21 被sumith编辑 ,原因:
2021-8-1 20:17
0
雪    币: 3817
活跃值: (3107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
大佬  怎么修改最大内存 最大内存怎么一直是2g
2021-8-24 18:30
0
游客
登录 | 注册 方可回帖
返回
//