- UID
- 37030
注册时间2007-11-4
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破文标题】USBKiller(U盘病毒专杀工具) V2.2 Build1219
【破文作者】FoEyes
【作者邮箱】
【作者主页】
【破解工具】OD,PEid
【破解平台】WinXP
【软件名称】USBKiller(U盘病毒专杀工具) V2.2 Build1219
【更新时间】2007-12-23
【原版下载】http://www.easysofts.com.cn/
【保护方式】无壳
【软件简介】 适用平台:WinXP, Win2000, WinNT
USBKiller是一款专业预防及查杀U盘病毒的工具,能100%阻止病 毒通过U盘、移动硬盘感染您的电脑,防止资料丢失、帐号被盗, 还可以让您制作自己的防毒U盘。
1.独创SuperClean高效强力杀毒引擎,查杀auto.exe、AV终结者、 rising上百种顽固U盘病毒,保证95%以上查杀率
2.国内首创对电脑实行主动防御,自动检测清除插入U盘内的病毒 ,杜绝病毒通过U盘感染电脑
3.免疫功能可以让你制作自己的防毒U盘
4.防止他人使用U盘、移动硬盘盗取电脑重要资料
5.解除U盘锁定状态,解决拔出时无法停止设备的问题
6.进程管理让你迅速辨别并终止系统中的可疑程序
7.完美解决双击无法打开磁盘的问题
8.兼容其它杀毒软件,可配合使用
【破解声明】本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任
------------------------------------------------------------------------
【破解过程】这个软件爆破很容易,论坛破解信息板块已经有了他的免注册版下载,我分析的是它的最新版更新日期为2007-12-23。
运行后发现是重启验证
PEid之,delphi
载入OD,查询字符串得到一些信息,在"已保存注册信息,请退出软件重新运行以检查其正确性"下断
一路F8后F7来到
004CD308 /$ 55 push ebp ; 写注册key
004CD309 |. 8BEC mov ebp, esp
004CD30B |. 83C4 F4 add esp, -0C
004CD30E |. 53 push ebx
004CD30F |. 56 push esi
004CD310 |. 33DB xor ebx, ebx
004CD312 |. 895D F4 mov dword ptr [ebp-C], ebx
004CD315 |. 894D F8 mov dword ptr [ebp-8], ecx
004CD318 |. 8955 FC mov dword ptr [ebp-4], edx
004CD31B |. 8B45 FC mov eax, dword ptr [ebp-4]
004CD31E |. E8 4D7EF3FF call 00405170
004CD323 |. 8B45 F8 mov eax, dword ptr [ebp-8]
004CD326 |. E8 457EF3FF call 00405170
004CD32B |. 33C0 xor eax, eax
004CD32D |. 55 push ebp
004CD32E |. 68 A7D34C00 push 004CD3A7
004CD333 |. 64:FF30 push dword ptr fs:[eax]
004CD336 |. 64:8920 mov dword ptr fs:[eax], esp
004CD339 |. 8D55 F4 lea edx, dword ptr [ebp-C]
004CD33C |. B0 19 mov al, 19
004CD33E |. E8 99E7FFFF call 004CBADC
004CD343 |. 8D45 F4 lea eax, dword ptr [ebp-C] ; 这里看到keyfile路径了
004CD346 |. BA BCD34C00 mov edx, 004CD3BC ; svighost.dll
004CD34B |. E8 387CF3FF call 00404F88
004CD350 |. 8B4D F4 mov ecx, dword ptr [ebp-C]
004CD353 |. B2 01 mov dl, 1
004CD355 |. A1 D0934300 mov eax, dword ptr [4393D0]
004CD35A |. E8 21C1F6FF call 00439480 ; 写ini文件
004CD35F |. 8BD8 mov ebx, eax
004CD361 |. 8B4D FC mov ecx, dword ptr [ebp-4]
004CD364 |. BA D4D34C00 mov edx, 004CD3D4 ; regsettings
004CD369 |. 8BC3 mov eax, ebx
004CD36B |. 8B30 mov esi, dword ptr [eax]
004CD36D |. FF56 50 call dword ptr [esi+50]
004CD370 |. 8B45 F8 mov eax, dword ptr [ebp-8]
004CD373 |. 50 push eax
004CD374 |. 8B4D FC mov ecx, dword ptr [ebp-4]
004CD377 |. BA D4D34C00 mov edx, 004CD3D4 ; regsettings
004CD37C |. 8BC3 mov eax, ebx
004CD37E |. 8B30 mov esi, dword ptr [eax]
004CD380 |. FF56 04 call dword ptr [esi+4]
004CD383 |. B2 01 mov dl, 1
004CD385 |. 8BC3 mov eax, ebx
004CD387 |. 8B08 mov ecx, dword ptr [eax]
004CD389 |. FF51 FC call dword ptr [ecx-4]
.............
.............
看到其把注册信息写入了C:\Documents and Settings\当前用户\Application Data\svighost.dll得文件里。
找到打开之,内容如下:
[RegSettings]
Key=
看来是按ini文件读写的,key后边就是我们的试练码。
既然写入这个文件,重启后就一定会读取进行比较,直接搜索字符串svighost.dll,发现还有两处,下断,分析得到硬件码产生过程
004CD18B |. 68 18D24C00 push 004CD218 ; /d:\
004CD190 |. E8 E3A1F3FF call <jmp.&kernel32.GetDriveTypeA> ; \GetDriveTypeA
004CD195 |. 83F8 01 cmp eax, 1 ; 看D:是不是系统盘
004CD198 |. 74 0F je short 004CD1A9
004CD19A |. 68 18D24C00 push 004CD218 ; /d:\
004CD19F |. E8 D4A1F3FF call <jmp.&kernel32.GetDriveTypeA> ; \GetDriveTypeA
004CD1A4 |. 83F8 03 cmp eax, 3 ; 磁盘是否可移除
004CD1A7 |. 74 24 je short 004CD1CD
004CD1A9 |> BA 24D24C00 mov edx, 004CD224 ; c:\
004CD1AE |. 8BC3 mov eax, ebx
004CD1B0 |. E8 67FEFFFF call 004CD01C
004CD1B5 |. 8BD0 mov edx, eax
004CD1B7 |. 8D4D FC lea ecx, dword ptr [ebp-4]
004CD1BA |. 8BC3 mov eax, ebx
004CD1BC |. E8 1FFCFFFF call 004CCDE0
004CD1C1 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CD1C4 |. 8BD6 mov edx, esi
004CD1C6 |. E8 71C0F3FF call 0040923C
004CD1CB |. EB 22 jmp short 004CD1EF
004CD1CD |> BA 30D24C00 mov edx, 004CD230 ; d:\
004CD1D2 |. 8BC3 mov eax, ebx
.....................
.....................
如果D:\是可移除的就用c:\得硬件码了
004CD06D |. 6A 00 push 0
004CD06F |. 8B45 FC mov eax, dword ptr [ebp-4]
004CD072 |. E8 0981F3FF call 00405180
004CD077 |. 50 push eax ; |RootPathName
004CD078 |. E8 ABA3F3FF call <jmp.&kernel32.GetVolumeInformat>; \GetVolumeInformationA
004CD07D |. 8B5D F8 mov ebx, dword ptr [ebp-8] ; 得到d盘硬件码
004CD080 |. 33C0 xor eax, eax
....................
....................
下边是对得到的硬件码进行处理
004CCDF7 |. 55 push ebp
004CCDF8 |. 68 30CF4C00 push 004CCF30
004CCDFD |. 64:FF30 push dword ptr fs:[eax]
004CCE00 |. 64:8920 mov dword ptr fs:[eax], esp
004CCE03 |. 81F3 83DC62DD xor ebx, DD62DC83 ; 这里把得到的硬件码与一个数异或得到一个值
004CCE09 |. 8BC3 mov eax, ebx
004CCE0B |. 33D2 xor edx, edx
004CCE0D |. 52 push edx ; /Arg2 => 00000000
004CCE0E |. 50 push eax ; |Arg1
004CCE0F |. 8D45 FC lea eax, dword ptr [ebp-4] ; |
004CCE12 |. E8 E9C8F3FF call 00409700 ; \USBKille.00409700
004CCE17 |. 8B45 FC mov eax, dword ptr [ebp-4] ; 上边转化为十进制
004CCE1A |. 0FB600 movzx eax, byte ptr [eax]
004CCE1D |. 8B55 FC mov edx, dword ptr [ebp-4]
004CCE20 |. 0FB652 01 movzx edx, byte ptr [edx+1]
004CCE24 |. 03C2 add eax, edx ; 将第1位 第2位加起来
004CCE26 |. B9 05000000 mov ecx, 5 ; /5
004CCE2B |. 99 cdq
004CCE2C |. F7F9 idiv ecx
004CCE2E |. 80C2 61 add dl, 61 ; 余数+61
004CCE31 |. 8855 F8 mov byte ptr [ebp-8], dl ; 存好
004CCE34 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CCE37 |. 0FB640 02 movzx eax, byte ptr [eax+2]
004CCE3B |. 8B55 FC mov edx, dword ptr [ebp-4]
004CCE3E |. 0FB652 03 movzx edx, byte ptr [edx+3]
004CCE42 |. 03C2 add eax, edx ; 将第3位 第4位加起来
004CCE44 |. B9 05000000 mov ecx, 5 ; /5
004CCE49 |. 99 cdq
004CCE4A |. F7F9 idiv ecx
004CCE4C |. 80C2 61 add dl, 61 ; 余数+61
004CCE4F |. 8855 F9 mov byte ptr [ebp-7], dl ; 5,6
004CCE52 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CCE55 |. 0FB640 04 movzx eax, byte ptr [eax+4]
004CCE59 |. 8B55 FC mov edx, dword ptr [ebp-4]
004CCE5C |. 0FB652 05 movzx edx, byte ptr [edx+5]
004CCE60 |. 03C2 add eax, edx
004CCE62 |. B9 05000000 mov ecx, 5
004CCE67 |. 99 cdq
004CCE68 |. F7F9 idiv ecx
004CCE6A |. 80C2 61 add dl, 61 ; 余数+61
004CCE6D |. 8855 FA mov byte ptr [ebp-6], dl ; 7,8,9相加
004CCE70 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CCE73 |. 0FB640 06 movzx eax, byte ptr [eax+6]
004CCE77 |. 8B55 FC mov edx, dword ptr [ebp-4]
004CCE7A |. 0FB652 07 movzx edx, byte ptr [edx+7]
004CCE7E |. 03C2 add eax, edx
004CCE80 |. 8B55 FC mov edx, dword ptr [ebp-4]
004CCE83 |. 0FB652 08 movzx edx, byte ptr [edx+8]
004CCE87 |. 03C2 add eax, edx
004CCE89 |. B9 05000000 mov ecx, 5
004CCE8E |. 99 cdq
004CCE8F |. F7F9 idiv ecx
004CCE91 |. 80C2 61 add dl, 61 ; 余数+61
004CCE94 |. 8855 FB mov byte ptr [ebp-5], dl ;
得到了四个十六进制数
下边将四个十六进制数插入到刚才得到的硬件码中,最终得到注册硬件码
004CCE97 |. 8D45 F4 lea eax, dword ptr [ebp-C]
004CCE9A |. 8A55 F8 mov dl, byte ptr [ebp-8] ; 四个十六进制数的第1个
004CCE9D |. E8 0680F3FF call 00404EA8 ;
004CCEA2 |. 8B45 F4 mov eax, dword ptr [ebp-C]
004CCEA5 |. 8D55 FC lea edx, dword ptr [ebp-4]
004CCEA8 |. B9 01000000 mov ecx, 1 ; 插入的位置1
004CCEAD |. E8 B683F3FF call 00405268
004CCEB2 |. 8D45 F0 lea eax, dword ptr [ebp-10]
004CCEB5 |. 8A55 FB mov dl, byte ptr [ebp-5] ; 四个十六进制数的第4个
004CCEB8 |. E8 EB7FF3FF call 00404EA8 ;
004CCEBD |. 8B45 F0 mov eax, dword ptr [ebp-10] ;
004CCEC0 |. 8D55 FC lea edx, dword ptr [ebp-4] ;
004CCEC3 |. B9 03000000 mov ecx, 3 ; 插入的位置3
004CCEC8 |. E8 9B83F3FF call 00405268
004CCECD |. 8D45 EC lea eax, dword ptr [ebp-14]
004CCED0 |. 8A55 F9 mov dl, byte ptr [ebp-7] ; 四个十六进制数的第2个
004CCED3 |. E8 D07FF3FF call 00404EA8 ;
004CCED8 |. 8B45 EC mov eax, dword ptr [ebp-14] ; 个
004CCEDB |. 8D55 FC lea edx, dword ptr [ebp-4]
004CCEDE |. B9 05000000 mov ecx, 5 插入的位置5
004CCEE3 |. E8 8083F3FF call 00405268
004CCEE8 |. 8D45 E8 lea eax, dword ptr [ebp-18]
004CCEEB |. 8A55 FA mov dl, byte ptr [ebp-6] ; 四个十六进制数的第3个
004CCEEE |. E8 B57FF3FF call 00404EA8 ;
004CCEF3 |. 8B45 E8 mov eax, dword ptr [ebp-18] ;
004CCEF6 |. 8D55 FC lea edx, dword ptr [ebp-4]
004CCEF9 |. B9 09000000 mov ecx, 9 插入的位置9
004CCEFE |. E8 6583F3FF call 00405268
004CCF03 |. 8BC6 mov eax, esi
004CCF05 |. 8B55 FC mov edx, dword ptr [ebp-4]
004CCF08 |. E8 077EF3FF call 00404D14
004CCF0D |. 33C0 xor eax, eax
...................
...................
004CCF88 |> /8D43 1E /lea eax, dword ptr [ebx+1E]
004CCF8B |. |50 |push eax
004CCF8C |. |8BC3 |mov eax, ebx
004CCF8E |. |5A |pop edx
004CCF8F |. |8BCA |mov ecx, edx
004CCF91 |. |99 |cdq
004CCF92 |. |F7F9 |idiv ecx
004CCF94 |. |8BF2 |mov esi, edx
004CCF96 |. |8D43 14 |lea eax, dword ptr [ebx+14]
004CCF99 |. |50 |push eax
004CCF9A |. |8BC3 |mov eax, ebx
004CCF9C |. |5A |pop edx
004CCF9D |. |8BCA |mov ecx, edx
004CCF9F |. |99 |cdq
004CCFA0 |. |F7F9 |idiv ecx
004CCFA2 |. |03F2 |add esi, edx ; esi是以2为首项,以2为步长的组合
004CCFA4 |. |8B45 FC |mov eax, dword ptr [ebp-4]
004CCFA7 |. |0FB64418 FF |movzx eax, byte ptr [eax+ebx-1] 取出注册硬件码的每一位进行转化
004CCFAC |. |03C6 |add eax, esi
004CCFAE |. |83C0 D0 |add eax, -30
004CCFB1 |. |83E8 0A |sub eax, 0A ; 注册硬件码的这一位+esi小于3A就进行转化,否则进行下边运算
004CCFB4 |. |72 08 |jb short 004CCFBE ;
004CCFB6 |. |83C0 F9 |add eax, -7
004CCFB9 |. |83E8 1A |sub eax, 1A
004CCFBC |. |73 1D |jnb short 004CCFDB ; 不小于0就进行转化,否则就不转化
004CCFBE |> |8D45 F0 |lea eax, dword ptr [ebp-10]
004CCFC1 |. |8B55 FC |mov edx, dword ptr [ebp-4]
004CCFC4 |. |0FB6541A FF |movzx edx, byte ptr [edx+ebx-1]
004CCFC9 |. |03D6 |add edx, esi
004CCFCB |. |E8 D87EF3FF |call 00404EA8 ; 注册码的每一位就是硬件码的能转化的每一位加上esi的值转为ASCii得字符串
004CCFD0 |. |8B55 F0 |mov edx, dword ptr [ebp-10]
004CCFD3 |. |8D45 F4 |lea eax, dword ptr [ebp-C]
004CCFD6 |. |E8 AD7FF3FF |call 00404F88
004CCFDB |> |43 |inc ebx
004CCFDC |. |4F |dec edi
004CCFDD |.^\75 A9 \jnz short 004CCF88
结束
------------------------------------------------------------------------
【破解总结】
1。如果D:\不是可移动盘就得到其硬件码,与一个DD62DC83异或,然后转化为十进制数(长度为10)。
2。十进制数按顺序1,2位相加,3,4位相加,5,6位相加,7,8,9位相加然后分别除以0x5得到余数+0x61,一共得到四个十六进制数。
3。将四个十六进制数按照以下对应关系插入先前得到的硬件码串,然后字母转为大写,最终得到注册硬件码。
-------第1个插入第1位得到新串,第4个插入新串第3位得到新串,第3个插入新串第5位得到新串,第2个插入新串第9位--------
4。注册硬件码逐位+0x(2n)得到新位(n是此位在注册硬件码中的位置)X,40<X<5B || X<3A得组成新串就是注册码。
写的匆忙,有什么错误请大家指出,谢谢!
我的注册信息
A3D1C472C47079
C7J9MEBUHMHQU
改天补上注册机:)
[ 本帖最后由 foeyes 于 2008-1-24 22:31 编辑 ] |
|