首页
社区
课程
招聘
[原创]SafeDisc 不完全剖析
发表于: 2009-5-16 22:57 18596

[原创]SafeDisc 不完全剖析

2009-5-16 22:57
18596
收藏
免费 7
支持
分享
最新回复 (28)
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
这个保护似乎没有StarForce那样容易引起系统的不稳定,比较理想。
2009-9-2 15:44
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
27
貌似在其它地方没看过修复safedisc的cc的教程, 难得一见啊,
问题是,是否每个版本的sd的一些解密密钥是否一致, 那样就方便写个通用脱壳机出来.
2009-9-4 10:42
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
好东西,十分感谢!
2009-9-4 19:44
0
雪    币: 210
活跃值: (39)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
29
太有用了,参考楼主的文章把太阁立志传5的壳脱了(SD 2.90.40),脱壳的过程主要就是找那几个xor的参数了

发现SD 2.90.40里解密int 3指令的那16个字节中的第2和第3字节只有两种可能:
00 00
或者
40 00
从这两个字节还是无法判断什么,不过不用管

第4到第10字节其实都是有效代码
只不过超过第一字节标识的长度以外的都已经存在于程序中了

如果第一字节是7而且第4到第10字节与int 3前4字节开始的内容一致的话,这个int 3解密的数据写回去时要相应上移4字节
例如:

0050D78A   > /88C0          mov     al, al
0050D78C   . |1A00          sbb     al, byte ptr [eax]
0050D78E   . |CC            int3
0050D78F   . |C3            retn
0050D790  /$ |833D 741A7500>cmp     dword ptr [751A74], 1

0050D78E解密好的数据前10字节是:
07 00 00 88 C0 1A 00 5D C3 83

这样就只要把005D78E处改成5D就好了
2009-10-17 20:02
0
游客
登录 | 注册 方可回帖
返回
//