飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2960|回复: 5

FoEyes申请加入PYG----作业1

[复制链接]

该用户从未签到

发表于 2008-1-2 01:25:33 | 显示全部楼层 |阅读模式
【破文标题】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 编辑 ]
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-10-14 20:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-1-2 08:50:44 | 显示全部楼层
    分析的很详细,学习中。/:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-3 22:02:20 | 显示全部楼层
    不错的好文章
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-1-24 23:22:27 | 显示全部楼层

    补上算法注册机和源码

    第一个算法注册机。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-12-24 08:16
  • 签到天数: 464 天

    [LV.9]以坛为家II

    发表于 2008-4-22 13:45:40 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-26 17:43
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2008-6-13 14:36:36 | 显示全部楼层
    写得很详细,学习一下!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表