本帖最后由 人民教师 于 2014-3-16 09:21 编辑
成功加入《吾爱破解论坛》大家庭后感觉找到组织了,马不停蹄的赶写一篇破文,第一次发表破文错误的地方请指正!
软件名:usbkiller(U盘版) 下载地址:http://www.upanshadu.com/xiazai.html 工具:ODbyDYK v1.10 、peid 0.95 系统环境:windows 8.1 是否加壳:无壳 软件注册性质:明码比较 程序语言:Borland Delphi 6.0 - 7.0 破解难度:适合新手 注明:软件需要解压在U盘中或读卡器中进行破解,因为我下的是U盘版。
USBKiller(U盘病毒专杀工具)是一款专业的U盘病毒专杀工具,它可以检测查杀exe文件夹病毒, auturun病毒,vbs病毒,u盘文件夹被隐藏等1200多种U盘病毒,还提供u盘免疫工具,自动修复因为病毒而损坏的系统配置以及文件。另外还提供一些其他U盘辅助功能,比如U盘解锁功能,以及进程管理等。
话说几年前我们学校的数码相机数据卡感染了未知病毒,所有的相片都“失踪”了,各种杀毒软件都查不出病毒,后来用usbkiller软件把数据卡里被病毒隐藏的相片成功恢复回来了,usbkiller确实功不可没。软件是需要注册的。
下载完软件后试运行,点“立即购买”注册码填111111111111111111确定,跳出“注册失败,请检查您的注册码!”,这句话为我们接下来的破解指出方向。关闭软件。
惯例Peid 0.95载入查壳, 显示Borland Delphi 6.0 - 7.0无壳,这年头这么“有良心”的软件实在是太少了!
OD载入软件停在
77E92646 /EB 07 jmp shortntdll.77E9264F
查看CPU主线程,模块ntdll跑到系统的领空了。(关于系统的领空、程序的领空有一个简单的判断方法,如果OD里主线程显示CPU主线程,模块+软件名,那就是程序的领空,不是软件名的就是系统的领空)系统的领空是绝对不能修改的,一旦修改了你就知错了。我们能够调试的是程序本身。
F9运行 停在这里
77E1DE40 895C24 08 mov dword ptrss:[esp+8],ebx
查看 CPU主线程,模块ntdll 还在系统领空 继续F9运行 停在这里
00585A34 > 55 push ebp
查看CPU主线程,模块usbkiller。 好了终于到达程序领空了,点击OD里的插件ultra字串符参考查找unicode,出现一大堆字串符,ctrl f查找“注册”找到字符串参考如下图,
文本字符串“已注册”
没有看到“注册失败,请检查您的注册码!”这一句,但是“已注册”也是关键字串符。
双击来到程序的“005801A2 BA 84025800 mov edx,USBKille.00580284 ; 已注册”这里 向上查看
0058017D /7C 23 jl shortUSBKille.005801A2 这个跳转跳到“已注册” 0058017F |47 inc edi 00580180 |C745 F8 0000000>mov dword ptr ss:[ebp-8],0 00580187 |8B55 F8 mov edx,dword ptrss:[ebp-8] 0058018A |8B83 1C040000 mov eax,dword ptrds:[ebx+41C] 00580190 |E8 1F6DEDFF callUSBKille.00456EB4 00580195 |33D2 xor edx,edx 00580197 |8B08 mov ecx,dword ptrds:[eax] 00580199 |FF51 64 call dword ptrds:[ecx+64] 0058019C |FF45 F8 inc dword ptrss:[ebp-8] 0058019F |4F dec edi 005801A0 ^|75 E5 jnz shortUSBKille.00580187 005801A2 \BA 84025800 movedx,USBKille.00580284 ; 已注册
再往前看 00580157 E8 24F5F5FF callUSBKille.004DF680 这个call之后出现几个跳转,有一个是跳转到“已注册”,看来这是一个关键call,在此处F2下断,看看有没有收获。 0058015C 2C 01 sub al,1 0058015E 72 0D jb shortUSBKille.0058016D 00580160 2C 02 sub al,2 00580162 0F84 B5000000 jeUSBKille.0058021D 00580168 E9 DC000000 jmpUSBKille.00580249 0058016D 8B83 1C040000 mov eax,dword ptrds:[ebx+41C] 00580173 E8 786DEDFF callUSBKille.00456EF0 00580178 8BF8 mov edi,eax 0058017A 4F dec edi 0058017B 85FF test edi,edi
下断点好之后F9运行,程序跑了起来,在断点处00580157成功拦截下来F2取消断点F7跟进call里看看有什么文章
[
单步运行到004DF6EB 8B45 E8 mov eax,dword ptr ss:[ebp-18]
堆栈窗口出现类似注册码
堆栈 ss:[0018FD40]=02144F48, (ASCII "8IKPBDFIJ") eax=0018FCE0
先把ASCII "8IKPBDFIJ"复制下备用 004DF6EB 地址之前有一个call 004DF6E6 E8 05030000 callUSBKille.004DF9F0 估计是算法call,由于我是新手对于算法一窍不通就没跟进去,留给高手来写写算号器吧。
继续单步运行来到
004DF772 8B55 C0 mov edx,dword ptrss:[ebp-40] 寄存器窗口 EDX出现 ASCII "4C2AD2000010") 这是机器码
继续单步运行
到达004DF782 8D55 C8 lea edx,dword ptr ss:[ebp-38]
寄存器窗口出现类似注册码
EAX 02144F78 ASCII "6G8INBDGH" 出现类似注册码 ECX 00000001 EDX 02144D50 ASCII "4C2AD2000010" 出现机器码 EBX 02122CBC
同样复制下备用,关闭OD,试试追出的注册码正不正确。
双击打开软件USBKiller.exe点击“立即购买”输入6G8INBDGH确定出现提示框
“为了保护正版用户的权益,已对注册码系统进行升级,点击确定后进行免费注册码更换” 点确定就自动打开网页……
作者很狡猾,在软件里给我们设置了陷阱。 没关系,在试试第一次追出的注册码8IKPBDFIJ
“注册成功,感谢你的支持!” 哈哈哈,激动的内牛满面啊。。。。。。 试了一下可以正常升级。
看来在地址004DF6EB追出的是真码,而地址004DF782追出的是假码。 搞定。
总结:如果不追码在0058015E /72 0D jb short USBKille.0058016D处将“jb short USBKille.0058016D”汇编改成“jmp short USBKille.005801A2”就能实现爆破目的,这样可以免去注册的麻烦。
附件是爆破好的,算号器不会做期待高人。
请大家多多捧场!
|