kaikai760211 发表于 2010-5-30 20:15:19

精装友情通讯录简单分析

首先查壳,然后运行程序,点击注册按钮,出现提示“注册失败,请重新注册”字符串,好下面就是用od加载,利用查找字符串插件,查找字符串“注册失败,请重新注册”,
00510408/.55            push    ebp
00510409|.8BEC          mov   ebp, esp
0051040B|.B9 17000000   mov   ecx, 17
00510410|>6A 00         /push    0
00510412|.6A 00         |push    0
00510414|.49            |dec   ecx
00510415|.^ 75 F9         \jnz   short 00510410
00510417|.53            push    ebx
00510418|.56            push    esi
00510419|.8BD8          mov   ebx, eax
0051041B|.33C0          xor   eax, eax
0051041D|.55            push    ebp
0051041E|.68 8D065100   push    0051068D
00510423|.64:FF30       push    dword ptr fs:
00510426|.64:8920       mov   dword ptr fs:, esp
00510429|.68 80000000   push    80                               ; /BufSize = 80 (128.)
0051042E|.8D85 7BFFFFFF lea   eax, dword ptr           ; |
00510434|.50            push    eax                              ; |Buffer
00510435|.E8 D26CEFFF   call    <jmp.&kernel32.GetSystemDirector>; \GetSystemDirectoryA
0051043A|.8D45 FC       lea   eax, dword ptr
0051043D|.8D95 7BFFFFFF lea   edx, dword ptr
00510443|.B9 81000000   mov   ecx, 81
00510448|.E8 3746EFFF   call    00404A84
0051044D|.8D95 74FFFFFF lea   edx, dword ptr
00510453|.8B83 34030000 mov   eax, dword ptr
00510459|.E8 D20BF3FF   call    00441030
0051045E|.83BD 74FFFFFF>cmp   dword ptr , 0
00510465|.74 1A         je      short 00510481
00510467|.8D95 70FFFFFF lea   edx, dword ptr
0051046D|.8B83 10030000 mov   eax, dword ptr
00510473|.E8 B80BF3FF   call    00441030
00510478|.83BD 70FFFFFF>cmp   dword ptr , 0
0051047F|.75 0F         jnz   short 00510490
00510481|>B8 A4065100   mov   eax, 005106A4
00510486|.E8 999DF2FF   call    0043A224
0051048B|.E9 80010000   jmp   00510610
00510490|>8D95 6CFFFFFF lea   edx, dword ptr
00510496|.8B83 34030000 mov   eax, dword ptr
0051049C|.E8 8F0BF3FF   call    00441030
005104A1|.8B85 6CFFFFFF mov   eax, dword ptr
005104A7|.50            push    eax
005104A8|.8D95 60FFFFFF lea   edx, dword ptr
005104AE|.8B83 10030000 mov   eax, dword ptr
005104B4|.E8 770BF3FF   call    00441030
005104B9|.8B85 60FFFFFF mov   eax, dword ptr
005104BF|.E8 5C8EEFFF   call    00409320
005104C4|.B9 D1000000   mov   ecx, 0D1
005104C9|.99            cdq
005104CA|.F7F9          idiv    ecx
005104CC|.8BC2          mov   eax, edx
005104CE|.8D95 64FFFFFF lea   edx, dword ptr
005104D4|.E8 E38DEFFF   call    004092BC
005104D9|.FFB5 64FFFFFF push    dword ptr
005104DF|.8D95 54FFFFFF lea   edx, dword ptr
005104E5|.8B83 10030000 mov   eax, dword ptr
005104EB|.E8 400BF3FF   call    00441030
005104F0|.8B85 54FFFFFF mov   eax, dword ptr
005104F6|.E8 258EEFFF   call    00409320
005104FB|.8D95 58FFFFFF lea   edx, dword ptr
00510501|.E8 C6FCFFFF   call    005101CC
00510506|.8B85 58FFFFFF mov   eax, dword ptr
0051050C|.E8 0F8EEFFF   call    00409320
00510511|.8D95 5CFFFFFF lea   edx, dword ptr
00510517|.E8 90FDFFFF   call    005102AC
0051051C|.FFB5 5CFFFFFF push    dword ptr
00510522|.68 C4065100   push    005106C4
00510527|.8D85 68FFFFFF lea   eax, dword ptr
0051052D|.BA 03000000   mov   edx, 3
00510532|.E8 5D46EFFF   call    00404B94
00510537|.8B95 68FFFFFF mov   edx, dword ptr
0051053D|.58            pop   eax
0051053E|.E8 D546EFFF   call    00404C18
00510543      0F85 A3000000 jnz   005105EC
00510549|.B8 D0065100   mov   eax, 005106D0
0051054E|.E8 D19CF2FF   call    0043A224
00510553|.A1 14BA5100   mov   eax, dword ptr
00510558|.8B00          mov   eax, dword ptr
0051055A|.8B80 18030000 mov   eax, dword ptr
00510560|.8B80 08020000 mov   eax, dword ptr
00510566|.33D2          xor   edx, edx
00510568|.E8 87ECF5FF   call    0046F1F4
0051056D|.BA F4065100   mov   edx, 005106F4
00510572|.E8 D9EBF5FF   call    0046F150
00510577|.8D85 50FFFFFF lea   eax, dword ptr
0051057D|.B9 10075100   mov   ecx, 00510710                  ;ASCII "\hdwlz.dll"
00510582|.8B55 FC       mov   edx, dword ptr
00510585|.E8 9645EFFF   call    00404B20
0051058A|.8B8D 50FFFFFF mov   ecx, dword ptr
00510590|.B2 01         mov   dl, 1
00510592|.A1 C4264600   mov   eax, dword ptr
00510597|.E8 D821F5FF   call    00462774
0051059C|.8BF0          mov   esi, eax
0051059E|.8D95 4CFFFFFF lea   edx, dword ptr
005105A4|.8B83 10030000 mov   eax, dword ptr
005105AA|.E8 810AF3FF   call    00441030
005105AF|.8B85 4CFFFFFF mov   eax, dword ptr
005105B5|.50            push    eax
005105B6|.B9 24075100   mov   ecx, 00510724                  ;ASCII "setet567"
005105BB|.BA 38075100   mov   edx, 00510738                  ;ASCII "sym"
005105C0|.8BC6          mov   eax, esi
005105C2|.8B18          mov   ebx, dword ptr
005105C4|.FF53 04       call    dword ptr
005105C7|.8D85 48FFFFFF lea   eax, dword ptr
005105CD|.B9 44075100   mov   ecx, 00510744                  ;ASCII "\hdw1z.dll"
005105D2|.8B55 FC       mov   edx, dword ptr
005105D5|.E8 4645EFFF   call    00404B20
005105DA|.8B85 48FFFFFF mov   eax, dword ptr
005105E0|.BA 02000000   mov   edx, 2
005105E5|.E8 7E8FEFFF   call    00409568
005105EA|.EB 24         jmp   short 00510610
005105EC|>B8 58075100   mov   eax, 00510758                                                00510408/.55            push    ebp
00510409|.8BEC          mov   ebp, esp
0051040B|.B9 17000000   mov   ecx, 17
00510410|>6A 00         /push    0
00510412|.6A 00         |push    0
00510414|.49            |dec   ecx
00510415|.^ 75 F9         \jnz   short 00510410
00510417|.53            push    ebx
00510418|.56            push    esi
00510419|.8BD8          mov   ebx, eax
0051041B|.33C0          xor   eax, eax
0051041D|.55            push    ebp
0051041E|.68 8D065100   push    0051068D
00510423|.64:FF30       push    dword ptr fs:
00510426|.64:8920       mov   dword ptr fs:, esp
00510429|.68 80000000   push    80                               ; /BufSize = 80 (128.)
0051042E|.8D85 7BFFFFFF lea   eax, dword ptr           ; |
00510434|.50            push    eax                              ; |Buffer
00510435|.E8 D26CEFFF   call    <jmp.&kernel32.GetSystemDirector>; \GetSystemDirectoryA
0051043A|.8D45 FC       lea   eax, dword ptr
0051043D|.8D95 7BFFFFFF lea   edx, dword ptr
00510443|.B9 81000000   mov   ecx, 81
00510448|.E8 3746EFFF   call    00404A84
0051044D|.8D95 74FFFFFF lea   edx, dword ptr
00510453|.8B83 34030000 mov   eax, dword ptr
00510459|.E8 D20BF3FF   call    00441030                        判断注册码是否为空
0051045E|.83BD 74FFFFFF>cmp   dword ptr , 0
00510465|.74 1A         je      short 00510481
00510467|.8D95 70FFFFFF lea   edx, dword ptr
0051046D|.8B83 10030000 mov   eax, dword ptr
00510473|.E8 B80BF3FF   call    00441030
00510478|.83BD 70FFFFFF>cmp   dword ptr , 0            判断订单号是否为空
0051047F|.75 0F         jnz   short 00510490
00510481|>B8 A4065100   mov   eax, 005106A4
00510486|.E8 999DF2FF   call    0043A224
0051048B|.E9 80010000   jmp   00510610
00510490|>8D95 6CFFFFFF lea   edx, dword ptr
00510496|.8B83 34030000 mov   eax, dword ptr
0051049C|.E8 8F0BF3FF   call    00441030
005104A1|.8B85 6CFFFFFF mov   eax, dword ptr
005104A7|.50            push    eax
005104A8|.8D95 60FFFFFF lea   edx, dword ptr
005104AE|.8B83 10030000 mov   eax, dword ptr
005104B4|.E8 770BF3FF   call    00441030
005104B9|.8B85 60FFFFFF mov   eax, dword ptr
005104BF|.E8 5C8EEFFF   call    00409320
005104C4|.B9 D1000000   mov   ecx, 0D1
005104C9|.99            cdq
005104CA|.F7F9          idiv    ecx
005104CC|.8BC2          mov   eax, edx
005104CE|.8D95 64FFFFFF lea   edx, dword ptr
005104D4|.E8 E38DEFFF   call    004092BC
005104D9|.FFB5 64FFFFFF push    dword ptr
005104DF|.8D95 54FFFFFF lea   edx, dword ptr
005104E5|.8B83 10030000 mov   eax, dword ptr
005104EB|.E8 400BF3FF   call    00441030                     这里call即,读取假“注册码”
005104F0|.8B85 54FFFFFF mov   eax, dword ptr
005104F6|.E8 258EEFFF   call    00409320
005104FB|.8D95 58FFFFFF lea   edx, dword ptr
00510501|.E8 C6FCFFFF   call    005101CC
00510506|.8B85 58FFFFFF mov   eax, dword ptr
0051050C|.E8 0F8EEFFF   call    00409320
00510511|.8D95 5CFFFFFF lea   edx, dword ptr
00510517|.E8 90FDFFFF   call    005102AC
0051051C|.FFB5 5CFFFFFF push    dword ptr
00510522|.68 C4065100   push    005106C4
00510527|.8D85 68FFFFFF lea   eax, dword ptr
0051052D|.BA 03000000   mov   edx, 3
00510532|.E8 5D46EFFF   call    00404B94
00510537|.8B95 68FFFFFF mov   edx, dword ptr
0051053D|.58            pop   eax
0051053E|.E8 D546EFFF   call    00404C18                                              关键call 追真码就在这call里,可以跟进,明码比较
00510543      0F85 A3000000 jnz   005105EC                                              这里修改为“je”即为爆破,再向上追
00510549|.B8 D0065100   mov   eax, 005106D0
0051054E|.E8 D19CF2FF   call    0043A224
00510553|.A1 14BA5100   mov   eax, dword ptr
00510558|.8B00          mov   eax, dword ptr
0051055A|.8B80 18030000 mov   eax, dword ptr
00510560|.8B80 08020000 mov   eax, dword ptr
00510566|.33D2          xor   edx, edx
00510568|.E8 87ECF5FF   call    0046F1F4
0051056D|.BA F4065100   mov   edx, 005106F4
00510572|.E8 D9EBF5FF   call    0046F150
00510577|.8D85 50FFFFFF lea   eax, dword ptr
0051057D|.B9 10075100   mov   ecx, 00510710                  ;ASCII "\hdwlz.dll"
00510582|.8B55 FC       mov   edx, dword ptr
00510585|.E8 9645EFFF   call    00404B20
0051058A|.8B8D 50FFFFFF mov   ecx, dword ptr
00510590|.B2 01         mov   dl, 1
00510592|.A1 C4264600   mov   eax, dword ptr
00510597|.E8 D821F5FF   call    00462774
0051059C|.8BF0          mov   esi, eax
0051059E|.8D95 4CFFFFFF lea   edx, dword ptr
005105A4|.8B83 10030000 mov   eax, dword ptr
005105AA|.E8 810AF3FF   call    00441030
005105AF|.8B85 4CFFFFFF mov   eax, dword ptr
005105B5|.50            push    eax
005105B6|.B9 24075100   mov   ecx, 00510724                  ;ASCII "setet567"
005105BB|.BA 38075100   mov   edx, 00510738                  ;ASCII "sym"
005105C0|.8BC6          mov   eax, esi
005105C2|.8B18          mov   ebx, dword ptr
005105C4|.FF53 04       call    dword ptr
005105C7|.8D85 48FFFFFF lea   eax, dword ptr
005105CD|.B9 44075100   mov   ecx, 00510744                  ;ASCII "\hdw1z.dll"
005105D2|.8B55 FC       mov   edx, dword ptr
005105D5|.E8 4645EFFF   call    00404B20
005105DA|.8B85 48FFFFFF mov   eax, dword ptr
005105E0|.BA 02000000   mov   edx, 2
005105E5|.E8 7E8FEFFF   call    00409568
005105EA|.EB 24         jmp   short 00510610
005105EC|>B8 58075100   mov   eax, 00510758                                 注册失败,请重新注册字符串提示符,向上追寻关键跳转‘jnz’

whdl 发表于 2010-5-30 20:22:57

多谢楼主发帖。
我也是这么做的。

可自己的能力太差。
dword ptr , 0            判断订单号是否为空




00510459|.E8 D20BF3FF   call    00441030                        判断注册码是否为空
0051045E|.83BD 74FFFFFF>cmp   dword ptr , 0

是不是就是说和零比较,所以就是判断是否为空了。如果是的话,我今天就算是学习了点。

lixy8888 发表于 2010-5-30 20:37:35

知道了程序的流程,就能用多种方法解决了

GGLHY 发表于 2010-5-30 20:41:45

印象中记得貌似建立一个文件就OK的了哈/:017

a3931294 发表于 2010-5-30 21:33:37

我想问下重新打开后那文件自动被删了。双显示末注册,怎么办?

sffs 发表于 2010-6-1 10:19:44

005153D9|.B9 6C555100         mov   ecx, 0051556C                                  ;ASCII "\hdwl21.dll"

注册文件

sffs 发表于 2010-6-1 10:40:03

本帖最后由 sffs 于 2010-6-1 10:42 编辑

看了下注册算法比较简单,适合我们新收学习。
页: [1]
查看完整版本: 精装友情通讯录简单分析