liuyun213 发表于 2009-4-1 17:29:17

***Killer算法分析

【破文标题】***Killer算法分析
【破文作者】liuyun213
【作者邮箱】[email protected]
【作者主页】无
【破解工具】OD
【破解平台】WinXP sp2
【软件名称】***Killer
【软件大小】1M
【原版下载】http://liuyun213.ys168.com   temp目录下
【保护方式】注册码
【软件简介】U盘病毒专杀软件
【破解声明】菜鸟一个,首次分析,不好之处还望见谅
------------------------------------------------------------------------
【破解过程】无壳、Delphi编写
004CE4EC/$55            PUSH EBP                                 ;首次下断
004CE4ED|.8BEC          MOV EBP,ESP
004CE4EF|.6A 00         PUSH 0
004CE4F1|.6A 00         PUSH 0
004CE4F3|.53            PUSH EBX
004CE4F4|.8BD8          MOV EBX,EAX
004CE4F6|.33C0          XOR EAX,EAX
004CE4F8|.55            PUSH EBP
004CE4F9|.68 48E54C00   PUSH USBKille.004CE548
004CE4FE|.64:FF30       PUSH DWORD PTR FS:
004CE501|.64:8920       MOV DWORD PTR FS:,ESP
004CE504|.8D55 FC       LEA EDX,DWORD PTR SS:
004CE507|.8BC3          MOV EAX,EBX
004CE509|.E8 0E030000   CALL USBKille.004CE81C
004CE50E|.8B45 FC       MOV EAX,DWORD PTR SS:             ;ss:mycode
004CE511|.50            PUSH EAX
004CE512|.8D55 F8       LEA EDX,DWORD PTR SS:
004CE515|.8BC3          MOV EAX,EBX
004CE517|.E8 3C000000   CALL USBKille.004CE558                   ;key point,f7跟入
004CE51C      8B55 F8       MOV EDX,DWORD PTR SS:             ;出现可疑字串
004CE51F|.58            POP EAX
004CE520|.E8 A76BF3FF   CALL USBKille.004050CC
004CE525|.74 04         JE SHORT USBKille.004CE52B               ;key jmp,可爆破
004CE527|.B3 03         MOV BL,3
004CE529|.EB 02         JMP SHORT USBKille.004CE52D

004CE558/$55            PUSH EBP
004CE559|.8BEC          MOV EBP,ESP
004CE55B|.6A 00         PUSH 0
004CE55D|.53            PUSH EBX
004CE55E|.56            PUSH ESI
004CE55F|.8BF2          MOV ESI,EDX
004CE561|.8BD8          MOV EBX,EAX
004CE563|.33C0          XOR EAX,EAX
004CE565|.55            PUSH EBP
004CE566|.68 9DE54C00   PUSH USBKille.004CE59D
004CE56B|.64:FF30       PUSH DWORD PTR FS:
004CE56E|.64:8920       MOV DWORD PTR FS:,ESP
004CE571|.8D55 FC       LEA EDX,DWORD PTR SS:
004CE574|.8BC3          MOV EAX,EBX
004CE576|.E8 31000000   CALL USBKille.004CE5AC
004CE57B|.8B55 FC       MOV EDX,DWORD PTR SS:             ;mcode
004CE57E|.8BCE          MOV ECX,ESI
004CE580|.8BC3          MOV EAX,EBX
004CE582|.E8 F5FDFFFF   CALL USBKille.004CE37C                   ;key point,f7
004CE587|.33C0          XOR EAX,EAX
004CE589|.5A            POP EDX
004CE58A|.59            POP ECX
004CE58B|.59            POP ECX

004CE37C/$55            PUSH EBP                                 ;here
004CE37D|.8BEC          MOV EBP,ESP
004CE37F|.83C4 F0       ADD ESP,-10
004CE382|.53            PUSH EBX
004CE383|.56            PUSH ESI
004CE384|.57            PUSH EDI
004CE385|.33DB          XOR EBX,EBX                              ;ebx = 0
004CE387|.895D F0       MOV DWORD PTR SS:,EBX            ;0
004CE38A|.895D F4       MOV DWORD PTR SS:,EBX             ;0
004CE38D|.894D F8       MOV DWORD PTR SS:,ECX
004CE390|.8955 FC       MOV DWORD PTR SS:,EDX             ;ss:[] = edx(mcode)
004CE393|.8B45 FC       MOV EAX,DWORD PTR SS:             ;eax = ss:[]
004CE396|.E8 D56DF3FF   CALL USBKille.00405170
004CE39B|.33C0          XOR EAX,EAX                              ;eax = 0
004CE39D|.55            PUSH EBP
004CE39E|.68 49E44C00   PUSH USBKille.004CE449
004CE3A3|.64:FF30       PUSH DWORD PTR FS:
004CE3A6|.64:8920       MOV DWORD PTR FS:,ESP
004CE3A9|.8D45 F4       LEA EAX,DWORD PTR SS:
004CE3AC|.E8 0F69F3FF   CALL USBKille.00404CC0
004CE3B1|.8B45 FC       MOV EAX,DWORD PTR SS:             ;ss:[] is mcode
004CE3B4|.E8 C76BF3FF   CALL USBKille.00404F80
004CE3B9|.8BF8          MOV EDI,EAX                              ;eax = len(mcode)
004CE3BB|.85FF          TEST EDI,EDI                           ;if edi == 0
004CE3BD|.7E 5C         JLE SHORT USBKille.004CE41B
004CE3BF|.BB 01000000   MOV EBX,1                              ;ebx = 1
004CE3C4|>8D43 1E       /LEA EAX,DWORD PTR DS:         ;eax = ebx + 1e
004CE3C7|.50            |PUSH EAX                              ;push addr
004CE3C8|.8BC3          |MOV EAX,EBX                           ;eax = ebx
004CE3CA|.5A            |POP EDX                                 ;pop addr
004CE3CB|.8BCA          |MOV ECX,EDX                           ;ecx = edx
004CE3CD|.99            |CDQ
004CE3CE|.F7F9          |IDIV ECX
004CE3D0|.8BF2          |MOV ESI,EDX
004CE3D2|.8D43 14       |LEA EAX,DWORD PTR DS:         ;eax = ebx + 14
004CE3D5|.50            |PUSH EAX
004CE3D6|.8BC3          |MOV EAX,EBX
004CE3D8|.5A            |POP EDX
004CE3D9|.8BCA          |MOV ECX,EDX
004CE3DB|.99            |CDQ
004CE3DC|.F7F9          |IDIV ECX
004CE3DE|.03F2          |ADD ESI,EDX
004CE3E0|.8B45 FC       |MOV EAX,DWORD PTR SS:            ;ss:mcode
004CE3E3|.0FB64418 FF   |MOVZX EAX,BYTE PTR DS:       ;eax = mcode
004CE3E8|.03C6          |ADD EAX,ESI                           ;eax += esi
004CE3EA|.83C0 D0       |ADD EAX,-30                           ;eax -= 30
004CE3ED|.83E8 0A       |SUB EAX,0A                              ;eax -= 0a
004CE3F0|.72 08         |JB SHORT USBKille.004CE3FA            ;无符号比较if eax < 0a, then jmp
004CE3F2|.83C0 F9       |ADD EAX,-7
004CE3F5|.83E8 1A       |SUB EAX,1A
004CE3F8|.73 1D         |JNB SHORT USBKille.004CE417             ;if eax >= 1a, then jmp
004CE3FA|>8D45 F0       |LEA EAX,DWORD PTR SS:         ;eax = ebp - 10
004CE3FD|.8B55 FC       |MOV EDX,DWORD PTR SS:            ;edx = mcode
004CE400|.0FB6541A FF   |MOVZX EDX,BYTE PTR DS:       ;edx = mcode
004CE405|.03D6          |ADD EDX,ESI                           ;edx += esi
004CE407|.E8 9C6AF3FF   |CALL USBKille.00404EA8
004CE40C|.8B55 F0       |MOV EDX,DWORD PTR SS:         ;ss:用来保存计算结果
004CE40F|.8D45 F4       |LEA EAX,DWORD PTR SS:
004CE412|.E8 716BF3FF   |CALL USBKille.00404F88                  ;SS: = edx
004CE417|>43            |INC EBX
004CE418|.4F            |DEC EDI
004CE419|.^ 75 A9         \JNZ SHORT USBKille.004CE3C4
004CE41B|>8B45 F8       MOV EAX,DWORD PTR SS:             ;mycode
004CE41E|.8B55 F4       MOV EDX,DWORD PTR SS:             ;realcode
004CE421|.E8 EE68F3FF   CALL USBKille.00404D14
004CE426|.33C0          XOR EAX,EAX

------------------------------------------------------------------------
【破解总结】我的第一个独立分析的软件,应该是比较简单的。
感谢飘云坛主的算法分析入门系列文章。
------------------------------------------------------------------------
【版权声明】版权不留,转改自便。

gswxy 发表于 2009-4-15 18:48:08

学习了,我是追明码。。。也用过爆破

千江月 发表于 2009-4-15 20:30:20

最好是把有明码的软件拿来看一下算法,很好学习的

ccyy77 发表于 2009-4-15 23:18:06

很好学习的
页: [1]
查看完整版本: ***Killer算法分析