首页
社区
课程
招聘
替换n值与破解RSA代码锁定
发表于: 2004-6-26 14:45 8970

替换n值与破解RSA代码锁定

2004-6-26 14:45
8970
描述:ACP的rsa生成器有漏洞,使其rsa代码锁定形同虚设,更新版本只要简单的替换程序中的n值就可以继续使用原来的注册机。

loveboom在研究goodmorning's crackme #2时居然说asprotect也可以通过替换n值解码,使我大吃一惊,赶紧试验,研究半天,只解出来一堆垃圾。

我认为asprotect的ras锁定是严密的,也就是说若不知原始的n值,或没有一个可用的key的话几乎不可能dump出完全版的程序。

若大家有什么好的方法的话,欢迎交流。

参考破解ACP程序的典型范例:XieXieMaster cracked by Darknessout

参考ras锁定的典型范例:
goodmorning's crackme #2

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

收藏
免费 3
支持
分享
最新回复 (15)
雪    币: 109
活跃值: (36)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
Perplex.dll 里有 RSA 不可逆算法,
zcf_encrypt(RSA加密), zcf_decrypt(RSA 解密) 等函数.  

keygen.exe 里有N,  D,  E. (只有作者才有, 我们无法得到 E )

Key.dat 里有N, D, UserName+machineID(明文和密文),  
还有跟 RSA_lock code 有关的数据.

acprotect.exe 里有N, D.   

acprotect.exe 启动时先找Key.dat,  
接着比较 acprotect.exe 和 Key.dat 里的N,D,  
再判断 zcf_decrypt(N,D,密文) == 明文 ?

我觉的最完美的补丁是仅修改 acprotect.exe 里的 N, D, 而不修改其他代码.
而这些数据(包括代码)是用 JCALG1 压缩的, 要先用 JCALG1 解压,  
再修改 N, D, 最后再用 JCALG1 加压, 比较一下, 就知道要改那些了.

                                              by simonzh
2004-6-26 15:36
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
3
写篇详细点的文章吧:D
2004-6-26 17:59
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
4
最初由 softworm 发布
写篇详细点的文章吧:D

老大怎么不加us群啊
2004-6-26 18:19
0
雪    币: 109
活跃值: (36)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
forgot不要尽灌水,来发表一下意见;)
2004-6-26 18:23
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
6
acp的漏洞,aspr没这问题...
2004-6-26 18:24
0
雪    币: 109
活跃值: (36)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
发现sdprotect也有同样的漏洞,感觉就像acprotect抄的,呵呵。
2004-6-26 18:37
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我的好象没有把,你说RSA有RNG还有点可能。里面会用到RSA解密后的数据再解密一部分数据,没有一个KEY的话,你是不大可能弄掉RSA锁定的代码。
2004-6-26 20:11
0
雪    币: 556
活跃值: (2298)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
9
老大不要搞错了,可能我的表达能力比较差吧,我是说,别人加壳的时候会改掉N的值(个人观点),不是说加壳后可以替换掉N呀
2004-6-26 21:21
0
雪    币: 109
活跃值: (36)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
10
干脆说新建project得了,那样说太糊弄人。。。
2004-6-26 21:35
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
11
最初由 pll823 发布
发现sdprotect也有同样的漏洞,感觉就像acprotect抄的,呵呵。

不知道你怎么发现的:D :D :D
2004-6-26 21:39
0
雪    币: 109
活跃值: (36)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
12
蒙的,forgot不要笑话;)
2004-6-26 21:42
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
13
最初由 forgot 发布

老大怎么不加us群啊


哪敢称老大?才开始学脱壳,很多东西连概念都
没有,实在不够水平入伙。:o

还要多看,多学。;)
2004-6-26 22:31
0
雪    币: 398
活跃值: (1078)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
14
最初由 pll823 发布
Perplex.dll 里有 RSA 不可逆算法,
zcf_encrypt(RSA加密), zcf_decrypt(RSA 解密) 等函数.

keygen.exe 里有N, D, E. (只有作者才有, 我们无法得到 E )

Key.dat 里有N, D, UserName+machineID(明文和密文),
还有跟 RSA_lock code 有关的数据.

acprotect.exe 里有N, D.

acprotect.exe 启动时先找Key.dat,
接着比较 acprotect.exe 和 Key.dat 里的N,D,
再判断 zcf_decrypt(N,D,密文) == 明文 ?

我觉的最完美的补丁是仅修改 acprotect.exe 里的 N, D, 而不修改其他代码.
而这些数据(包括代码)是用 JCALG1 压缩的, 要先用 JCALG1 解压,
再修改 N, D, 最后再用 JCALG1 加压, 比较一下, 就知道要改那些了.


by simonzh


新版本多了些校验, 包括 CRC32, 字节和.

同时注意 RSA_LOCK CODE, 你必须猜 64 字节长的代码, 否则也不行.
2004-6-27 08:13
0
雪    币: 398
活跃值: (1078)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
15
最初由 coolkiller 发布
我的好象没有把,你说RSA有RNG还有点可能。里面会用到RSA解密后的数据再解密一部分数据,没有一个KEY的话,你是不大可能弄掉RSA锁定的代码。


ACP 也是这样的.   

RSA_Lock code
2004-6-27 08:16
0
雪    币: 420
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
关健是如何替换,好像没有一个详细的说明?
2004-6-27 23:37
0
游客
登录 | 注册 方可回帖
返回
//