文档库 最新最全的文档下载
当前位置:文档库 › 算出正在的注册码,写一个注册机

算出正在的注册码,写一个注册机

QUOTE(laomms @ 2004年11月28日 09时07分)
软件名称:EVA ANIMATER
未破解限制:30天的试用用期及部分功能限制
下载地址:https://www.wendangku.net/doc/ff12671376.html,/index.php?Go=Show::List&ID=501

要求:算出正在的注册码,写一个注册机。(该软件已经经过暴力破解,但偶不知道怎样找注册码。)如果有可能最好写一篇破解教程。


laomms@https://www.wendangku.net/doc/ff12671376.html,
新手试破(高为) laomms@https://www.wendangku.net/doc/ff12671376.html,
软件名称:EVA ANIMATER
未破解限制:30天的试用用期及部分功能限制
下载地址:https://www.wendangku.net/doc/ff12671376.html,/index.php?Go=Show::List&ID=501
破解工具: W32Dasm v10.0 UltraEdit-32.v10.10c


破解过程:
用W32Dasm v10.0反汇编XEVA22DL.EXE,一阵狂扫后点击“参考”-串式数据参考,晕,里面居然没有相关的注册信息,难道注册程序不在这里?看了一下软件目录,发现一个可疑的链接文件SHPLCINF.DLL(因为文件名有点类似Licence Information 的缩写),试试,又用W32Dasm狂扫SHPLCINF.DLL,点击“参考”-串式数据参考,果然,在里面发现了“注册信息正被输入。按下确认,软件的全部功能得以..”双击它来到这里:
* Reference To: USER32.EnableWindow, Ord:00B7h
|
:100038D0 FF150CA10010 Call dword ptr [1000A10C]

* Possible StringData Ref from Data Obj ->"注册信息正被输入。按下确认,软件的全部功能得以"
->"使用。"
|
:100038D6 6888B40010 push 1000B488
:100038DB 68F0030000 push 000003F0
:100038E0 53 push ebx
:100038E1 FFD7 call edi

从该行往上翻,注意CMP TEST JNE 等字样。

:1000385E A19CC70010 mov eax, dword ptr [1000C79C]
:10003863 8D542420 lea edx, dword ptr [esp+20]
:10003867 52 push edx
:10003868 6800C80010 push 1000C800
:1000386D 6820C80010 push 1000C820
:10003872 68C0C70010 push 1000C7C0
:10003877 50 push eax
:10003878 E853DDFFFF call 100015D0
:1000387D 85C0 test eax, eax
:1000387F 0F853******* jne 100039BB
:10003885 8B442420 mov eax, dword ptr [esp+20]
:10003889 85C0 test eax, eax 对比输入的注册码与真实的注册码
: 1000388B 756F jne 0100038FC 如果不是则跳转
:1000388D 6A01 push 00000001
:1000388F 53 push ebx
:10003890 C705DCC3001001000000 mov dword ptr [1000C3DC], 00000001
:1000389A FFD6 call esi
:1000389C 50 push eax

* Reference To: USER32.SetFocus, Ord:022Fh
|
:1000389D FF1520A10010 Call dword ptr [1000A120]
:100038A3 6A00 push 00000000
:100038A5 6800040000 push 00000400
:100038AA 53 push ebx
:100038AB FFD6 call esi
:100038AD 50 push eax

关键处已经找到,就是这里

:1000388B 756F , JNE 0100038FC。我们只要使它“无论输入的注册码对不对都跳转就行了”即把上面的75该为74或者JNE改为JE就行。可以用UltraEdit或者HIEX软件。这里我们用UltraEdit,用UltraEdit打开SHPLCINF.DLL,按CTRL+G调出十六进制跳转,输入0x388B,找到85 C0 75 6F 6A 01将75改为74存盘即可。
运行程序,随便输入注册码(注要10位以上,为什么等一下会说到),点击确定。原以为OK了,谁知软件仍然提示“输入的许可信息不能被接受”,看来软件对输入的注册码还有要求,肯定哪里调用了对比的部分。重新来过,用W32Dasm狂扫SHPLCINF.DLL,点击“参考”-串式数据参考,在里面发现了“输入的许可信息%s不能被接受。”双击它来到这里:
:1000390C 8B4C2410 mov ecx, dword ptr [esp+10]
:10003910 A19CC70010 mov eax, dword ptr [1000C79C]
:10003915 8B51FC mov edx, dword ptr [ecx-04]
:10003918 52 push edx
:10003919 50 push eax
:1000391A E8815F0000 call 100098A0 关键 CALL
:1000391F 83C408 add esp, 00000008
:10003922 85C0 test eax, eax 对比输入的注册码与真实注册码
:10003924 7577 jne 1000399D 如果不是则跳转
:10003926 8B4C2410 mov ecx, dword ptr [esp+10]
:1000392A 6A05 push 00000005
:1000392C 8B11 mov edx, dword ptr [ecx]
:1000392E 52 push edx
:1000392F 6820C80010 push 1000C820
:10003934 E887600000 call 100099C0
:10003939 83C40C add esp, 0000000C
:1000393C 85C0 test eax, eax
:1000393E 745D je 1000399D
:10003940 33C0 xor eax, eax
:10003942 6A05 push 00000005
:10003944 8D4C241C lea ecx, dword ptr [esp+1C]
:10003948 8944241C mov dword ptr [esp+1C], eax
:1000394C 6820C80010 push 1000C820
:10003951 51 push ecx
:10003952 6689442428 mov word ptr [esp+28], ax
:10003957 E8F4100000 call 10004A50
:1000395C 8B44241C mov eax, dword ptr [esp+1C]
:10003960 8D542424 lea edx, dword ptr [esp+24]
:10003964 52 push edx
:10003965 8D542458 lea edx, dword ptr [esp+58]
:10003969 8B48F8 mov ecx, dword ptr [eax-08]
:1000396C 51 push ecx

* Possible StringData Ref from Data Obj ->"输入的许可信息%s不能被接受。输入的注册码(注册"
->"码=%s?)不能接受。请输入正确的注册信息。"
|
:1000396D 6804B40010 push 1000B404
:10003972 52 push edx
:10003973 E803100000 call 1000497B
:10003978 83C41C add esp, 0000001C
:1000397B 6A00 push 00000000
:1000397D 6803040000 push 00000403
:10003982 53 push ebx
:10003983 FFD6 call esi
向上找到

10003924 7577,jne 1000399D,将JNE改为JE即可,运行程序随便输入注册码,点击确定,成功!
另外程序在这里调用了注册码10数字的对比程序:
:10003B90 8B442408 mov eax, dword ptr [esp+08]
:10003B94 3D11010000 cmp eax, 00000111
:10003B99 774D ja 10003BE8
:10003B9B 7439 je 10003BD6
:10003B9D 83F810 cmp eax, 00000010 对比输入的注册码是否为10位
:10003BA0 7422 je 10003BC4 如果是则跳转到10003BC4
:10003BA2 3D10010000 cmp eax, 00000110
:10003BA7 756C jne 10003C15
:10003BA9 8B442404 mov eax, dword ptr [esp+04]
:10003BAD 6A00 push 00000000
:10003BAF 6A64 push 00000064

至此,破解成功。本人对汇编知识了解并不多(正在学习),所以水平有限,如有错误,请前辈指正。
另外,想做一个注册机。Trw2000在WINXP下不支持,换系统麻烦。SOFTICE不太熟悉,所以没有求出真正注册玛,也不知道注册机该怎么做,有兴趣的朋友请帮忙做一个,最好写出教程。

相关文档
相关文档 最新文档