飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 11564|回复: 31

[原创] USBKillert算法分析(高手飞过)

[复制链接]
  • TA的每日心情
    郁闷
    2019-7-7 00:14
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2007-11-13 14:57:37 | 显示全部楼层 |阅读模式
    【破文标题】USBKillert算法分析
    【破文作者】何求
    【作者邮箱】
    【作者主页】
    破解工具】PEiD,OD
    【破解平台】盗版Windows XP
    【软件名称】USBKiller
    【软件大小】没看
    【原版下载】网上有下载
    【保护方式】壳、注册码
    【软件简介】我的U盘中毒了,所以找到这个软件,没有想到这样的小软件还需要注册。
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    ------------------------------------------------------------------------
    一、用peid查壳,UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo,脱吧,很容易。

    二、OD载入。ASCII搜索。可以很容易找到关键点。

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    004D080A    55              PUSH EBP                                 ; 程序断在这里。F8单步
    004D080B    68 2C094D00     PUSH USBKille.004D092C
    004D0810    64:FF30         PUSH DWORD PTR FS:[EAX]
    004D0813    64:8920         MOV DWORD PTR FS:[EAX],ESP
    004D0816    B2 01           MOV DL,1
    004D0818    A1 A4CC4C00     MOV EAX,DWORD PTR DS:[4CCCA4]
    004D081D    E8 D6C4FFFF     CALL USBKille.004CCCF8                   ; 出一串字符,不管。往下走看。
    004D0822    8BF0            MOV ESI,EAX
    004D0824    8D55 F4         LEA EDX,DWORD PTR SS:[EBP-C]
    004D0827    8BC6            MOV EAX,ESI
    004D0829    E8 92C8FFFF     CALL USBKille.004CD0C0
    004D082E    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]             ; 机器码放到EDX中。
    004D0831    8B83 90040000   MOV EAX,DWORD PTR DS:[EBX+490]
    004D0837    E8 CC58F9FF     CALL USBKille.00466108
    004D083C    8BC6            MOV EAX,ESI
    004D083E    E8 BDC7FFFF     CALL USBKille.004CD000                   ; 关键call,F7跟进。
    004D0843    2C 01           SUB AL,1                                 ; AL-1
    004D0845    72 0D           JB SHORT USBKille.004D0854
    004D0847    2C 02           SUB AL,2                                 ; AL-2,如果他两个的值想等就over了。
    004D0849    0F84 89000000   JE USBKille.004D08D8                     ; 这里就是关键跳了,也是爆破点。
    004D084F    E9 A9000000     JMP USBKille.004D08FD
    004D0854    8B83 6C040000   MOV EAX,DWORD PTR DS:[EBX+46C]
    004D085A    E8 A58EF9FF     CALL USBKille.00469704
    004D085F    8BF8            MOV EDI,EAX
    004D0861    4F              DEC EDI
    004D0862    85FF            TEST EDI,EDI
    004D0864    7C 23           JL SHORT USBKille.004D0889
    004D0866    47              INC EDI
    004D0867    C745 F8 0000000>MOV DWORD PTR SS:[EBP-8],0
    004D086E    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
    004D0871    8B83 6C040000   MOV EAX,DWORD PTR DS:[EBX+46C]
    004D0877    E8 4C8EF9FF     CALL USBKille.004696C8
    004D087C    33D2            XOR EDX,EDX
    004D087E    8B08            MOV ECX,DWORD PTR DS:[EAX]
    004D0880    FF51 64         CALL DWORD PTR DS:[ECX+64]
    004D0883    FF45 F8         INC DWORD PTR SS:[EBP-8]
    004D0886    4F              DEC EDI
    004D0887  ^ 75 E5           JNZ SHORT USBKille.004D086E
    004D0889    BA 48094D00     MOV EDX,USBKille.004D0948                ; 已注册
    004D088E    8B83 88040000   MOV EAX,DWORD PTR DS:[EBX+488]
    004D0894    E8 6F58F9FF     CALL USBKille.00466108
    004D0899    8D55 F0         LEA EDX,DWORD PTR SS:[EBP-10]
    004D089C    8BC6            MOV EAX,ESI
    004D089E    E8 8DCAFFFF     CALL USBKille.004CD330
    004D08A3    8B55 F0         MOV EDX,DWORD PTR SS:[EBP-10]
    004D08A6    8B83 94040000   MOV EAX,DWORD PTR DS:[EBX+494]
    004D08AC    E8 5758F9FF     CALL USBKille.00466108
    004D08B1    C645 FF 01      MOV BYTE PTR SS:[EBP-1],1
    004D08B5    8D55 EC         LEA EDX,DWORD PTR SS:[EBP-14]
    004D08B8    8BC3            MOV EAX,EBX
    004D08BA    E8 1958F9FF     CALL USBKille.004660D8
    004D08BF    8D45 EC         LEA EAX,DWORD PTR SS:[EBP-14]
    004D08C2    BA 58094D00     MOV EDX,USBKille.004D0958                ;  (已注册)
    004D08C7    E8 BC46F3FF     CALL USBKille.00404F88
    004D08CC    8B55 EC         MOV EDX,DWORD PTR SS:[EBP-14]
    004D08CF    8BC3            MOV EAX,EBX
    004D08D1    E8 3258F9FF     CALL USBKille.00466108
    004D08D6    EB 25           JMP SHORT USBKille.004D08FD
    004D08D8    C645 FF 00      MOV BYTE PTR SS:[EBP-1],0
    004D08DC    8D55 E8         LEA EDX,DWORD PTR SS:[EBP-18]
    004D08DF    8BC3            MOV EAX,EBX
    004D08E1    E8 F257F9FF     CALL USBKille.004660D8
    004D08E6    8D45 E8         LEA EAX,DWORD PTR SS:[EBP-18]
    004D08E9    BA 6C094D00     MOV EDX,USBKille.004D096C                ;  (未注册)
    004D08EE    E8 9546F3FF     CALL USBKille.00404F88
    004D08F3    8B55 E8         MOV EDX,DWORD PTR SS:[EBP-18]
    004D08F6    8BC3            MOV EAX,EBX
    004D08F8    E8 0B58F9FF     CALL USBKille.00466108
    004D08FD    8BC6            MOV EAX,ESI
    004D08FF    E8 D035F3FF     CALL USBKille.00403ED4
    004D0904    33C0            XOR EAX,EAX
    004D0906    5A              POP EDX
    004D0907    59              POP ECX
    004D0908    59              POP ECX
    004D0909    64:8910         MOV DWORD PTR FS:[EAX],EDX
    004D090C    68 33094D00     PUSH USBKille.004D0933
    004D0911    8D45 E8         LEA EAX,DWORD PTR SS:[EBP-18]
    004D0914    BA 02000000     MOV EDX,2
    004D0919    E8 C643F3FF     CALL USBKille.00404CE4
    004D091E    8D45 F0         LEA EAX,DWORD PTR SS:[EBP-10]
    004D0921    BA 02000000     MOV EDX,2
    004D0926    E8 B943F3FF     CALL USBKille.00404CE4
    004D092B    C3              RETN
    004D092C  ^ E9 4B3DF3FF     JMP USBKille.0040467C
    004D0931  ^ EB DE           JMP SHORT USBKille.004D0911
    004D0933    8A45 FF         MOV AL,BYTE PTR SS:[EBP-1]
    004D0936    5F              POP EDI
    004D0937    5E              POP ESI
    004D0938    5B              POP EBX
    004D0939    8BE5            MOV ESP,EBP
    004D093B    5D              POP EBP
    004D093C    C3              RETN

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    F7跟进点
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    004CD000    55              PUSH EBP                                 ; 关键CALL入口点。
    004CD001    8BEC            MOV EBP,ESP
    004CD003    6A 00           PUSH 0
    004CD005    6A 00           PUSH 0
    004CD007    53              PUSH EBX
    004CD008    8BD8            MOV EBX,EAX
    004CD00A    33C0            XOR EAX,EAX
    004CD00C    55              PUSH EBP
    004CD00D    68 5CD04C00     PUSH USBKille.004CD05C
    004CD012    64:FF30         PUSH DWORD PTR FS:[EAX]
    004CD015    64:8920         MOV DWORD PTR FS:[EAX],ESP
    004CD018    8D55 FC         LEA EDX,DWORD PTR SS:[EBP-4]
    004CD01B    8BC3            MOV EAX,EBX
    004CD01D    E8 0E030000     CALL USBKille.004CD330
    004CD022    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]             ; 这里出现一个KEY
    004CD025    50              PUSH EAX                                 ; 其实就是输入注册码后建立的一个文件。
    004CD026    8D55 F8         LEA EDX,DWORD PTR SS:[EBP-8]             ; 重新启动后要读取里边的注册码验证。
    004CD029    8BC3            MOV EAX,EBX
    004CD02B    E8 3C000000     CALL USBKille.004CD06C                   ; 又是一个关键跳。F7跟进。
    004CD030    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]             ; 这里是真码放到EDX中。
    004CD033    58              POP EAX
    004CD034    E8 9380F3FF     CALL USBKille.004050CC
    004CD039    74 04           JE SHORT USBKille.004CD03F
    004CD03B    B3 03           MOV BL,3
    004CD03D    EB 02           JMP SHORT USBKille.004CD041
    004CD03F    33DB            XOR EBX,EBX
    004CD041    33C0            XOR EAX,EAX
    004CD043    5A              POP EDX
    004CD044    59              POP ECX
    004CD045    59              POP ECX
    004CD046    64:8910         MOV DWORD PTR FS:[EAX],EDX
    004CD049    68 63D04C00     PUSH USBKille.004CD063
    004CD04E    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
    004CD051    BA 02000000     MOV EDX,2
    004CD056    E8 897CF3FF     CALL USBKille.00404CE4
    004CD05B    C3              RETN
    004CD05C  ^ E9 1B76F3FF     JMP USBKille.0040467C
    004CD061  ^ EB EB           JMP SHORT USBKille.004CD04E
    004CD063    8BC3            MOV EAX,EBX
    004CD065    5B              POP EBX
    004CD066    59              POP ECX
    004CD067    59              POP ECX
    004CD068    5D              POP EBP
    004CD069    C3              RETN

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    F7跟进点
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    004CD06C    55              PUSH EBP                                 ; 关键call里。F8单步
    004CD06D    8BEC            MOV EBP,ESP
    004CD06F    6A 00           PUSH 0
    004CD071    53              PUSH EBX
    004CD072    56              PUSH ESI
    004CD073    8BF2            MOV ESI,EDX
    004CD075    8BD8            MOV EBX,EAX
    004CD077    33C0            XOR EAX,EAX
    004CD079    55              PUSH EBP
    004CD07A    68 B1D04C00     PUSH USBKille.004CD0B1
    004CD07F    64:FF30         PUSH DWORD PTR FS:[EAX]
    004CD082    64:8920         MOV DWORD PTR FS:[EAX],ESP
    004CD085    8D55 FC         LEA EDX,DWORD PTR SS:[EBP-4]
    004CD088    8BC3            MOV EAX,EBX
    004CD08A    E8 31000000     CALL USBKille.004CD0C0
    004CD08F    8B55 FC         MOV EDX,DWORD PTR SS:[EBP-4]             ; 机器码放EDX中。
    004CD092    8BCE            MOV ECX,ESI
    004CD094    8BC3            MOV EAX,EBX
    004CD096    E8 F5FDFFFF     CALL USBKille.004CCE90                   ; 这个call也是关键,F7跟进。
    004CD09B    33C0            XOR EAX,EAX
    004CD09D    5A              POP EDX
    004CD09E    59              POP ECX
    004CD09F    59              POP ECX
    004CD0A0    64:8910         MOV DWORD PTR FS:[EAX],EDX
    004CD0A3    68 B8D04C00     PUSH USBKille.004CD0B8
    004CD0A8    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
    004CD0AB    E8 107CF3FF     CALL USBKille.00404CC0
    004CD0B0    C3              RETN
    004CD0B1  ^ E9 C675F3FF     JMP USBKille.0040467C
    004CD0B6  ^ EB F0           JMP SHORT USBKille.004CD0A8
    004CD0B8    5E              POP ESI
    004CD0B9    5B              POP EBX
    004CD0BA    59              POP ECX
    004CD0BB    5D              POP EBP

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    F7跟进点
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    004CCE90    55              PUSH EBP                                 ; 又进入CALL,F8单步跟进。
    004CCE91    8BEC            MOV EBP,ESP
    004CCE93    83C4 F0         ADD ESP,-10
    004CCE96    53              PUSH EBX
    004CCE97    56              PUSH ESI
    004CCE98    57              PUSH EDI
    004CCE99    33DB            XOR EBX,EBX                              ; EBX清零。
    004CCE9B    895D F0         MOV DWORD PTR SS:[EBP-10],EBX
    004CCE9E    895D F4         MOV DWORD PTR SS:[EBP-C],EBX
    004CCEA1    894D F8         MOV DWORD PTR SS:[EBP-8],ECX
    004CCEA4    8955 FC         MOV DWORD PTR SS:[EBP-4],EDX
    004CCEA7    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
    004CCEAA    E8 C182F3FF     CALL USBKille.00405170
    004CCEAF    33C0            XOR EAX,EAX
    004CCEB1    55              PUSH EBP
    004CCEB2    68 5DCF4C00     PUSH USBKille.004CCF5D
    004CCEB7    64:FF30         PUSH DWORD PTR FS:[EAX]
    004CCEBA    64:8920         MOV DWORD PTR FS:[EAX],ESP
    004CCEBD    8D45 F4         LEA EAX,DWORD PTR SS:[EBP-C]
    004CCEC0    E8 FB7DF3FF     CALL USBKille.00404CC0
    004CCEC5    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
    004CCEC8    E8 B380F3FF     CALL USBKille.00404F80                   ; 这个CALL是取机器码的位数。
    004CCECD    8BF8            MOV EDI,EAX
    004CCECF    85FF            TEST EDI,EDI
    004CCED1    7E 5C           JLE SHORT USBKille.004CCF2F
    004CCED3    BB 01000000     MOV EBX,1                                ; 1放到EBX中。
    004CCED8    8D43 1E         LEA EAX,DWORD PTR DS:[EBX+1E]            ; EBX起始值为1+1E。放EAX中。
    004CCEDB    50              PUSH EAX                                 ; 又压入栈。
    004CCEDC    8BC3            MOV EAX,EBX                              ; EBX放EAX中。
    004CCEDE    5A              POP EDX
    004CCEDF    8BCA            MOV ECX,EDX                              ; EDX放ECX中。
    004CCEE1    99              CDQ
    004CCEE2    F7F9            IDIV ECX                                 ; 相除。
    004CCEE4    8BF2            MOV ESI,EDX                              ; EDX放ESI
    004CCEE6    8D43 14         LEA EAX,DWORD PTR DS:[EBX+14]            ; EBX+14放EAX中。
    004CCEE9    50              PUSH EAX                                 ; 又压入栈。
    004CCEEA    8BC3            MOV EAX,EBX
    004CCEEC    5A              POP EDX
    004CCEED    8BCA            MOV ECX,EDX
    004CCEEF    99              CDQ
    004CCEF0    F7F9            IDIV ECX                                 ; 又是上次算得的余数除相加的值。
    004CCEF2    03F2            ADD ESI,EDX                              ; 余数在ESI
    004CCEF4    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]             ; 机器码放EAX中。
    004CCEF7    0FB64418 FF     MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]        ; 取机器码的第一位值的ASCII
    004CCEFC    03C6            ADD EAX,ESI                              ; EAX加上ESI
    004CCEFE    83C0 D0         ADD EAX,-30                              ; EAX加上-30
    004CCF01    83E8 0A         SUB EAX,0A                               ; 再减10(A)
    004CCF04    72 08           JB SHORT USBKille.004CCF0E
    004CCF06    83C0 F9         ADD EAX,-7                               ; EAX又加-7
    004CCF09    83E8 1A         SUB EAX,1A                               ; 再减1A
    004CCF0C    73 1D           JNB SHORT USBKille.004CCF2B
    004CCF0E    8D45 F0         LEA EAX,DWORD PTR SS:[EBP-10]
    004CCF11    8B55 FC         MOV EDX,DWORD PTR SS:[EBP-4]             ; 机器码放EAX中。
    004CCF14    0FB6541A FF     MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]        ; 取第一位值放EDX中。。
    004CCF19    03D6            ADD EDX,ESI                              ; EDX加上ESI,这就是注册的第一位,通过这样反复的运算。得到注册码。
    004CCF1B    E8 887FF3FF     CALL USBKille.00404EA8
    004CCF20    8B55 F0         MOV EDX,DWORD PTR SS:[EBP-10]
    004CCF23    8D45 F4         LEA EAX,DWORD PTR SS:[EBP-C]
    004CCF26    E8 5D80F3FF     CALL USBKille.00404F88
    004CCF2B    43              INC EBX                                  ; EBX的值不断的累加。
    004CCF2C    4F              DEC EDI                                  ; EDI减每次减一。
    004CCF2D  ^ 75 A9           JNZ SHORT USBKille.004CCED8              ; 不等就返回。
    004CCF2F    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
    004CCF32    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]             ; 真码放EDX中。
    004CCF35    E8 DA7DF3FF     CALL USBKille.00404D14
    004CCF3A    33C0            XOR EAX,EAX                              ; EAX清零。
    004CCF3C    5A              POP EDX
    004CCF3D    59              POP ECX
    004CCF3E    59              POP ECX
    004CCF3F    64:8910         MOV DWORD PTR FS:[EAX],EDX
    004CCF42    68 64CF4C00     PUSH USBKille.004CCF64
    004CCF47    8D45 F0         LEA EAX,DWORD PTR SS:[EBP-10]
    004CCF4A    BA 02000000     MOV EDX,2
    004CCF4F    E8 907DF3FF     CALL USBKille.00404CE4
    004CCF54    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
    004CCF57    E8 647DF3FF     CALL USBKille.00404CC0
    004CCF5C    C3              RETN

    ------------------------------------------------------------------------
    算法很容易,好久不写破文了,请大家见谅。呵。不总结了,注册机也很好写。我用这个软件处理了U盘的病毒。和锁死问题,还不错。
    ------------------------------------------------------------------------
    【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    [ 本帖最后由 何求 于 2007-11-13 14:59 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-13 15:27:01 | 显示全部楼层
    精华提前留名!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-7-26 16:07
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2007-11-15 17:20:33 | 显示全部楼层
    好厉害阿 。。。已经是高手了
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-11-15 21:43:22 | 显示全部楼层
    我是菜鸟,来学习一下
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-5-12 13:21
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-11-16 12:25:53 | 显示全部楼层
    这个是不错的软件啊!!!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-5-12 13:21
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-11-24 17:59:43 | 显示全部楼层
    上面4楼的都是版主了,怎么还那么谦虚啊
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-25 23:49:56 | 显示全部楼层
    谦虚不为过   谦虚使人进步
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-29 23:08:41 | 显示全部楼层
    祝贺LZ了..想看看注册机源码,可以否/>虽然我也看不懂源码.
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-7-15 02:13
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2007-12-25 02:46:11 | 显示全部楼层
    谢谢楼主提供的好东西,支持~~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-12-9 12:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-12-28 15:47:22 | 显示全部楼层
    都这么多的牛人,好好学习拉
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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