能力值:
( LV9,RANK:970 )
|
-
-
2 楼
不好意思,帖子太长 没时间仔细看
只是看了下你的软件
把BAC.BIN改成BAC.exe
直接调试BAC.exe吧
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
最初由 wynney 发布 不好意思,帖子太长 没时间仔细看 只是看了下你的软件
把BAC.BIN改成BAC.exe 直接调试BAC.exe吧
谢谢 其实不用改 一样也可以用OD调试啊
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
哪位老师路过的话
帮我看看啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
最初由 七星飘虫 发布 哪位老师路过的话
帮我看看啊!
你是姓“贡”名“顶”的吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
最初由 dssz 发布 你是姓“贡”名“顶”的吗?
不明白你的意思~!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
还是没有人愿意帮忙吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
哎 我这个问题看来要过年了啊~!
07年马上到了,
先祝各位新年快乐
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
因为有人说 这个软件 应该跟“一码中特”软件的 破解思路有些相似
我照着试了试 还是没有成功
希望有老师能给我指点一二 谢谢
|
能力值:
( LV9,RANK:570 )
|
-
-
11 楼
大约在元月3日,我发贴子时才看见你的求助贴,我下载你提供的软件打开后,认真的看了一下。该软件像是游戏软件,我没见过,还可能是网络游戏。该软件有它复杂的防破解一面,也有明显的破绽。我把我了解的情况给你说一下,算是对你提问的回答。
1.软件的破绽:
该软件可以在OD中打开,运行后,随便输入注册码,会弹出“密码错误”的警告,但这时在OD的堆栈中会同时出现输入的错误码和正确的注册码。例如:Round1中的bac.bin的注册码就是:“Jzsvvi1lkFid”,随便怎样分段都可以,但最后一个框不能空,码长总数不得小于13。检验时只取前12位。故最后一个框中随便输入什么字符都可以,也不限长度。同样的方法可以轻松得到其余Round中的注册码。
软件中00405BB0开始的到ret的子过程就是检查五个编辑框是否为空的过程。
2.软件有两套注册码识别过程:
你提到真正的注册码是“3u8A-5DKU1-JDAf-3vvE15-KlsHW2”,这也是对的。我估计前者“Jzsvvi1lkFid”不是对外的,是软件作者调试时使用的(你说得到的画面不同也就不奇怪了),后者是提供给用户的,且不是惟一的(如果是网络游戏,可能是要收费的?)。该软件验证注册码的过程大致如下:
00404040开始的一段程序是检验注册码的过程,其中在0040404A call 00469860是字符比较过程(现在的软件作者都很精,决不使用lstrcmpA比较注册码,虽然本软件中大量使用lstrcmp函数)。所以你在lstrcmpA处下断点是得不到注册码的。
该过程是这样的,如果注册码和Jzsvvi1lkFid相同,则让你通过并打开软件,如果不同,则进入第二套检验方案,第二方案是在004042E2处,call 00405930,它的作用是将字符串转换成16制数:过程大致是,先查表(00404F80开始处是字符与对应数值表,将字符和数字转换成1~3D的数值,其它键换成0),如3u8A分别对应3,1E,8,24,然后按下列算法转换:3*3D^0+1E*3D^1+8*3D^2+24*3D^3=7D2AA5。
检验码Jzs-vvi-1lk-Fid=890C54A004493A42(超过16位的约去)
注册码分4段转换,转换后前两段相乘加后两段的积为:111A1D3E580ED,注册码最后一段“KlsHW2”是检验码。
比较这两个数值就更复杂了,两数都各自连续除2,直到ecx=111A1中的值到了0止,然后再用第二数的结果去除前者的结果,所得的商去乘111A1D3E580ED得,890BB3B746C532EB。比较890BB3B7和890C54A0,如果前者大,出错,注册码是错的,如果小,后面还有检验:在00405903~0040592B是用3u8A5DKU1JDAf3vvE15来计算生成检验码(在404574 call 4C5A10)=KlsHW2,再与你输入的字符KlsHW2比较,如果你输入的最后5字符不是它,出错,如果前面的字符中有一个不对,也得不到KlsHW2,也错。可见检验是够复杂了。软件的405903~40592B那段是处理3u8A5DKU1JDAf3vvE15字串,生成检验码KlsHW2的过程,可以移植,完全可以搞注册机。
3.设断注意:
一开始,你不可以在00404040,004042E2等地址设断,原因是它们都被设置为公用通道,大量的计算和比较都要使用它们,只有在输入了注册码按下“确定”键前设断。
不知道我的答复清楚没有?你自己打开再研究研究吧。可能你会问,是怎样追踪到注册码比较的,一时说不清,你可以参看我的“DvdComposer注册框的拦截和算法分析”贴子。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
谢谢 wulje老师 的热心帮忙
我先自己研究一下
如果有不懂的话 再向您求教
再次感谢~!
|
|
|