吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4384|回复: 23
收起左侧

[KeyGenMe] 一个新兴虚拟混淆加密授权壳难度测试CM

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

本帖最后由 czyr 于 2022-8-14 19:06 编辑

这是一款新壳 VLicense,作者号称难度比vmp还强,今天我们就来试试它的难度如何


它的取硬件ID的方式:
.子程序 VLicenseGetHwid, 文本型, 公开
.局部变量 匿名局部变量_1, 整数型

置入代码 ({ 191, 0, 0, 0, 0, 184, 0, 0, 0, 0, 15, 162, 49, 199, 49, 223, 49, 207, 49, 215, 184, 2, 0, 0, 0, 15, 162, 49, 199, 49, 223, 49, 207, 49, 215, 184, 0, 0, 0, 128, 15, 162, 49, 199, 49, 223, 49, 207, 49, 215, 184, 1, 0, 0, 128, 15, 162, 49, 199, 49, 223, 49, 207, 49, 215, 184, 2, 0, 0, 128, 15, 162, 49, 199, 49, 223, 49, 207, 49, 215, 184, 3, 0, 0, 128, 15, 162, 49, 199, 49, 223, 49, 207, 49, 215 })
置入代码 ({ 137, 125, 252 })
返回 (编码_BASE64编码 (到字节集 (补齐8位 (十到十六进制 (匿名局部变量_1)))))

.子程序 base64_encode, 文本型
.参数 匿名参数_1, 字节集
.局部变量 匿名局部变量_1, 文本型
.局部变量 匿名局部变量_2, 整数型
.局部变量 匿名局部变量_3, 整数型

匿名局部变量_2 = 取字节集长度 (匿名参数_1)
'
.如果 (匿名局部变量_2 % 3 = 0)
    匿名局部变量_3 = 到整数 (匿名局部变量_2 ÷ 3) × 4
.否则
    匿名局部变量_3 = (到整数 (匿名局部变量_2 ÷ 3) + 1) × 4
.如果结束

匿名局部变量_1 = 取空白文本 (匿名局部变量_3)
base64_encode0 (取变量数据地址 (匿名参数_1), 匿名局部变量_2, 取变量数据地址 (匿名局部变量_1), 匿名局部变量_3)
返回 (匿名局部变量_1)

.子程序 base64_encode0, 整数型
.参数 匿名参数_1, 整数型
.参数 匿名参数_2, 整数型
.参数 匿名参数_3, 整数型
.参数 匿名参数_4, 整数型


置入代码 ({ 137, 236, 93, 131, 236, 68, 139, 68, 36, 84, 83, 86, 139, 116, 36, 88, 51, 219, 141, 80, 254, 199, 68, 36, 8, 65, 66, 67, 68, 199, 68, 36, 12, 69, 70, 71, 72, 199, 68, 36, 16, 73, 74, 75, 76, 199, 68, 36, 20, 77, 78, 79, 80, 199, 68, 36, 24, 81, 82, 83, 84, 199, 68, 36, 28, 85, 86, 87, 88, 199, 68, 36, 32, 89, 90, 97, 98, 199, 68, 36, 36, 99, 100, 101, 102, 199, 68, 36, 40, 103, 104, 105, 106, 199, 68, 36, 44, 107, 108, 109, 110, 199, 68, 36, 48, 111, 112, 113, 114, 199, 68, 36, 52, 115, 116, 117, 118, 199, 68, 36, 56, 119, 120, 121, 122, 199, 68, 36, 60, 48, 49, 50, 51, 199, 68, 36, 64, 52, 53, 54, 55, 199, 68, 36, 68, 56, 57, 43, 47, 136, 92, 36, 72, 136, 28, 6, 133, 210, 126, 118, 85, 87, 139, 124, 36, 88, 141, 110, 2, 131, 199, 2, 74, 193, 234, 2, 66, 139, 218, 106, 3, 193, 227, 2, 94, 15, 182, 71, 254, 193, 232, 2, 138, 68, 4, 16, 136, 69, 254, 15, 182, 79, 254, 15, 182, 71, 255, 35, 206, 193, 232, 4, 193, 225, 4, 11, 200, 138, 68, 12, 16, 136, 69, 255, 15, 182, 79, 255, 15, 182, 7, 131, 225, 15, 193, 232, 6, 193, 225, 2, 11, 200, 138, 68, 12, 16, 136, 69, 0, 141, 109, 4, 15, 182, 7, 3, 254, 131, 224, 63, 138, 68, 4, 16, 136, 69, 253, 131, 234, 1, 117, 169, 139, 116, 36, 96, 95, 93, 139, 68, 36, 84, 106, 3, 153, 89, 247, 249, 131, 234, 1, 116, 12, 131, 234, 1, 117, 14, 198, 68, 51, 255, 61, 235, 7, 102, 199, 68, 51, 254, 61, 61, 94, 51, 192, 91, 131, 196, 68, 195 })
返回 (0)

.子程序 补齐8位, 文本型
.参数 匿名参数_1, 文本型

.判断循环首 (取文本长度 (匿名参数_1) < 8)
    匿名参数_1 = “0” + 匿名参数_1
.判断循环尾 ()
返回 (匿名参数_1)

.子程序 编码_BASE64编码, 文本型
.参数 匿名参数_1, 字节集
.局部变量 匿名局部变量_1, 整数型
.局部变量 匿名局部变量_2, 字节型, , "3"
.局部变量 匿名局部变量_3, 整数型
.局部变量 匿名局部变量_4, 字节集
.局部变量 匿名局部变量_5, 整数型
.局部变量 匿名局部变量_6, 字节集
.局部变量 匿名局部变量_7, 整数型

匿名局部变量_5 = 取字节集长度 (匿名参数_1)
.如果真 (匿名局部变量_5 < 1)
    返回 (“”)
.如果真结束
匿名局部变量_1 = 匿名局部变量_5 % 3
.如果真 (匿名局部变量_1 > 0)
    匿名参数_1 = 匿名参数_1 + 取空白字节集 (3 - 匿名局部变量_1)
.如果真结束
匿名局部变量_5 = 取字节集长度 (匿名参数_1)
匿名局部变量_6 = 取空白字节集 (匿名局部变量_5 × 4 ÷ 3)
匿名局部变量_7 = 1
匿名局部变量_4 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”)
.变量循环首 (1, 匿名局部变量_5, 3, 匿名局部变量_3)
    匿名局部变量_2 [1] = 匿名参数_1 [匿名局部变量_3]
    匿名局部变量_2 [2] = 匿名参数_1 [匿名局部变量_3 + 1]
    匿名局部变量_2 [3] = 匿名参数_1 [匿名局部变量_3 + 2]
    匿名局部变量_6 [匿名局部变量_7] = 匿名局部变量_4 [右移 (匿名局部变量_2 [1], 2) + 1]
    匿名局部变量_6 [匿名局部变量_7 + 1] = 匿名局部变量_4 [左移 (位与 (匿名局部变量_2 [1], 3), 4) + 右移 (匿名局部变量_2 [2], 4) + 1]
    匿名局部变量_6 [匿名局部变量_7 + 2] = 匿名局部变量_4 [左移 (位与 (匿名局部变量_2 [2], 15), 2) + 右移 (匿名局部变量_2 [3], 6) + 1]
    匿名局部变量_6 [匿名局部变量_7 + 3] = 匿名局部变量_4 [位与 (匿名局部变量_2 [3], 63) + 1]
    匿名局部变量_7 = 匿名局部变量_7 + 4
.变量循环尾 ()
.如果真 (匿名局部变量_1 > 0)
    匿名局部变量_5 = 取字节集长度 (匿名局部变量_6)
    .如果 (匿名局部变量_1 = 1)
        匿名局部变量_6 [匿名局部变量_5 - 1] = 到字节 (取代码 (“=”, ))
        匿名局部变量_6 [匿名局部变量_5] = 到字节 (取代码 (“=”, ))
    .否则
        匿名局部变量_6 [匿名局部变量_5] = 到字节 (取代码 (“=”, ))
    .如果结束

.如果真结束
返回 (到文本 (匿名局部变量_6))


它生成授权文件的方式是以下两种其中一种: 用rsa私钥加密获取到的Hwid,或者是用获取到的Hwid加密 rsa私钥。得到密文就是注册码进入到壳解密
感觉难度整体不大,但无奈能力有限无法分析故提供两种破解方法参考,第一伪造Hwid,第二逆向分析VLicenseKeyGen.exe 生成key.ini的算法(key.ini生成的方式是 appid 填写壳的rsa私钥,客户机器码填写Hwid,即可生成Hwid对应的解密key)


附件包含了 授权测试dmeo 和 VLicenseKeyGen生成器 和dmeo对于的rsa私钥 以供测试参考


test dmeo:https://wwd.lanzouj.com/igh1O09jr9kf
VLicenseKeyGen :https://wwd.lanzouj.com/ims9z09jrt4j

demo没有key无法打开需要下载keygen自行生成key才能测试

免费评分

参与人数 5吾爱币 +2 热心值 +5 收起 理由
774258 + 1 用心讨论,共获提升!
Cc521gswp + 1 + 1 谢谢@Thanks!
thisc + 1 你这两种方法不行的,方法一有壳内校验,方法二你觉得你能得到私钥?
liqian + 1 热心回复!
cxfzaysb + 1 + 1 我很赞同!

查看全部评分

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

thisc 发表于 2022-8-15 13:26
简单看了下楼主的程序,两个问题。壳内对机器码有校验。方法一不行
方法二纯属有点没弄懂
私钥是开发者自己保存的。程序上市后,私钥不会暴露的,开发者自己拿在手里。
而且他这个Keygen.dll计算授权码的算法是你自己可以调用的,根本无需逆向什么keygen的算法,因为keygen算法已经公开,大家都可以调用。
重要的参数就是这个私钥
如果你能拿到私钥,你自己也能通过官方keygen.dll生成授权
问题是别人发给你的程序。私钥是他自己拿在手里的。你告诉我怎么拿到私钥?拿不到,授权码就算不出来的。
楼主感觉说挺简单的,现在看来是不是没那么简单....
thisc 发表于 2022-8-15 21:46
搜索曾经的回忆 发表于 2022-8-15 21:19
何以见得?他除了在花指令这方面比vmp强之外,虚拟化设计来看,没看出来比vmp出彩的地方,就比如vmContex ...

他是OISC的结构,每一个handler比VMP难分析多了,你可以看看VMP的虚拟,每个handler其实还是可以的分析的,他这个handler是单一指令构成的,这一点就比VMP强很多。
wuaidacongming 发表于 2022-8-14 19:11
感谢分享

免费评分

参与人数 1吾爱币 -50 违规 +1 收起 理由
Hmily -50 + 1 请勿灌水,警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

感冒的猪baby 发表于 2022-8-14 19:30
这种测试壳强度的cm,大佬是不会有兴趣下载的

免费评分

参与人数 1吾爱币 +1 收起 理由
562039924 + 1 十年前还是会有的

查看全部评分

cc808078 发表于 2022-8-14 20:08
六六六,膜拜大神,奥利给

免费评分

参与人数 1吾爱币 -50 违规 +1 收起 理由
Hmily -50 + 1 请勿灌水,警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

xueying6 发表于 2022-8-14 20:22
感谢分享.

免费评分

参与人数 1吾爱币 -50 违规 +1 收起 理由
Hmily -50 + 1 请勿灌水,警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

Garfiel 发表于 2022-8-14 22:57
感谢大佬分享

免费评分

参与人数 1吾爱币 -50 违规 +1 收起 理由
Hmily -50 + 1 请勿灌水,警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

我真牛逼哈哈哈 发表于 2022-8-15 01:32
学习了  谢谢分享

免费评分

参与人数 1吾爱币 -50 违规 +1 收起 理由
Hmily -50 + 1 请勿灌水,警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

咔c君 发表于 2022-8-15 08:21
不错学习了

免费评分

参与人数 1吾爱币 -50 违规 +1 收起 理由
Hmily -50 + 1 请勿灌水,警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

mingyanxing 发表于 2022-8-15 13:20
自己编写的程序 可以用这个加密了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-28 05:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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