软件版本:1.5
软件简介:这是一个简单易用的小工具,可以将文件夹当中的每个文件,依照大小(byte)、日期、名称作详细列表,并导出成TXT纯文字文件或者将文件资料打列出来。
破解人:BurSH
破解工具:Trw2000
输入用户名:BurSH 注册码:987654321 ,Ctrl+n呼出Trw2000,断点BPX GetDlgItemTextA,F5返回FolderView软件界面,再点确定。
OK,拦住了!下指令PMODULE,回到软件领空,我们看到下面这些代码
:004056CC 8B3DF8014100 mov edi, dword ptr [004101F8]
:004056D2 6817040000 push 00000417
:004056D7 56 push esi
:004056D8 FFD7 call edi--这个Call是调用函数GetDlgItemTextA,应该是取我们的用户名长度。程序在这里被我们拦住,拦住时我们不在程序领空。
:004056DA 8D542408 lea edx, dword ptr [esp+08]--因此我们下指令PMODULE后,我们在这里。
:004056DE 6800010000 push 00000100
:004056E3 52 push edx
:004056E4 68FC030000 push 000003FC
:004056E9 56 push esi
:004056EA FFD7 call edi--这个Call是调用函数GetDlgItemTextA,取得我们输入的注册码和用户名
:004056EC 8D442408 lea eax, dword ptr [esp+08]
:004056F0 8D8C2408010000 lea ecx, dword ptr [esp+00000108]
:004056F7 50 push eax--d eax 我这里看到的是我输入的注册码987654321
:004056F8 51 push ecx--d ecx 我这里看到的是我输入的用户名BurSH
:004056F9 E872030000 call 00405A70--关键Call,F8跟入
:004056FE 83C408 add esp, 00000008--在这里d edx可见正确注册码
:00405701 85C0 test eax, eax
:00405703 5F pop edi
:00405704 7443 je 00405749--跳到出错的地方
:00405706 8D542404 lea edx, dword ptr [esp+04]
:0040570A 8D842404010000 lea eax, dword ptr [esp+00000104]
:00405711 52 push edx
:00405712 50 push eax
F8进入4056F9的关键Call
:00405A70 8B4C2404 mov ecx, dword ptr [esp+04]
:00405A74 81EC00010000 sub esp, 00000100
:00405A7A 8D442400 lea eax, dword ptr [esp]
:00405A7E 50 push eax
:00405A7F 51 push ecx
:00405A80 E8AB000000 call 00405B30--算法部分,偶看不懂啊:(
:00405A85 8B842410010000 mov eax, dword ptr [esp+00000110]
:00405A8C 8D542408 lea edx, dword ptr [esp+08]--这里d eax可见987654321
:00405A90 52 push edx--这里d edx可见正确注册码702-18080-602-4922
:00405A91 50 push eax
:00405A92 E889FFFFFF call 00405A20--比较Call
:00405A97 F7D8 neg eax
:00405A99 1BC0 sbb eax, eax
:00405A9B F7D8 neg eax
:00405A9D 81C410010000 add esp, 00000110
:00405AA3 C3 ret
整理一下: 用户名:BurSH
注册码:702-18080-602-4972
注册表中HKEY_USERS\.DEFAULT\Software\FolderView\Registration
相应的键值储存这我们的注册信息,删掉后就可以重新注册了。
内存注册机制作:
中断地址:40A90
中断次数:1
第一字节:52
指令长度:1
内存方式--寄存器:EDX
