吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 439|回复: 7
上一主题 下一主题
收起左侧

[CrackMe] 自制VM CrackMe

[复制链接]
跳转到指定楼层
楼主
LoRyu 发表于 2026-10-13 15:36 回帖奖励
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 LoRyu 于 2026-10-13 15:54 编辑

运行环境:java (8以上应该都行,测了8和23都能跑) Windows/Linux
运行命令:java -jar CrackMe01-obf.jar

CrackMe本体是ai随便跑的,然后上了一层自己做的vm的保护

成功提示


失败提示


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
Sound 发表于 2026-10-13 23:27




[Python] 纯文本查看 复制代码
import frida,time,pathlib,json
js=r'''
let id=-1;
Process.attachModuleObserver({onAdded(m){if(m.name!=='wd7e67f503d76025a.dll')return;
Interceptor.attach(m.base.add(0x1bc20),{onEnter(a){id=a[1].toUInt32();if(id>=558)send({e:'ins',id:id,a:this.context.rsp.add(40).readU32(),b:this.context.rsp.add(48).readU32()});}});
Interceptor.attach(m.base.add(0x1f440),{onEnter(a){this.p=a[1];this.i=id;},onLeave(v){if(this.i===561&&v.toUInt32())this.p.writeU32(0);if(this.i>=558&&v.toUInt32())send({e:'pop',id:this.i,v:this.p.readU32()});}});
Interceptor.attach(m.base.add(0x25890),{onLeave(v){if([561,565,569,571,575].includes(id))v.replace(0);}});
Interceptor.attach(m.base.add(0x1f720),{onEnter(a){if(id>=558)send({e:'push',id:id,v:a[1].toUInt32()});}});
}});
'''
d=frida.get_local_device();f=pathlib.Path(__file__).with_name('1.jsonl').open('w')
def msg(m,b):f.write(json.dumps(m.get('payload',m))+'\n');f.flush()
d.on('output',lambda p,fd,b:print(b.decode(errors='replace'),end='',flush=True))
p=d.spawn([r'C:\Program Files\Eclipse Adoptium\jdk-25.0.4.101-hotspot\bin\java.exe','--enable-native-access=ALL-UNNAMED','-jar',r'C:\Users\Administrator\Desktop\CrackMe\CrackMe01-obf.jar','KYT{AAAAAAAAAAAAAAA}'],stdio='pipe');s=d.attach(p);sc=s.create_script(js);sc.on('message',msg);sc.load();d.resume(p);time.sleep(4)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
LoRyu + 1 + 1 谢谢@Thanks!

查看全部评分

沙发
faith9527 发表于 2026-10-13 15:54
3#
Sound 发表于 2026-10-13 23:13
5#
 楼主| LoRyu 发表于 2026-10-13 23:42 |楼主
本帖最后由 LoRyu 于 2026-10-13 23:45 编辑
Sound 发表于 2026-10-13 23:13
Java CrackMe,但主要内容都在Native层
https://www.52pojie.cn/thread-2126410-1-1.html

vm核心其实没怎么更新,这次主要是干一些jni方面的调用,防止hook jni然后还原逻辑,可惜好象对爆破还是没什么用😭

点评

爆破的话简单一点 VM还是要跟的~ 怎么会没用呢 5个混淆的JNI都在运行时就注册了,主要还是可以在运行时还原指令参数 因为可以直接采集到真实业务 VM 的逐个指令的轨迹,然后就可以确认输入长度是 20, 而  详情 回复 发表于 2026-10-13 23:51
6#
Sound 发表于 2026-10-13 23:51
LoRyu 发表于 2026-10-13 23:42
vm核心其实没怎么更新,这次主要是干一些jni方面的调用,防止hook jni然后还原逻辑,可惜好象对爆破还是 ...

爆破的话简单一点 VM还是要跟的~

怎么会没用呢 5个混淆的JNI都在运行时就注册了,主要还是可以在运行时还原指令参数

因为可以直接采集到真实业务 VM 的逐个指令的轨迹,然后就可以确认输入长度是 20,

而且会逐步恢复前缀KYT{ 另外每个字符比较都有明确的 VM 分支~很不错了,哦 后面 还有2个seed~

7#
 楼主| LoRyu 发表于 2026-10-13 23:59 |楼主
Sound 发表于 2026-10-13 23:51
爆破的话简单一点 VM还是要跟的~

怎么会没用呢 5个混淆的JNI都在运行时就注册了,主要还是可以在运行 ...

了解,学习到了,感谢
8#
kleinxu 发表于 2026-10-14 08:51
感谢楼主,学习ing

免费评分

参与人数 1吾爱币 -20 违规 +1 收起 理由
bian96 -20 + 1 警告:CM区等技术板块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-10-15 05:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表