首页
社区
课程
招聘
[求助]常用断点均断不下来,求大牛给个思路~~~~新手没金币悬赏
发表于: 2010-6-10 14:53 4863

[求助]常用断点均断不下来,求大牛给个思路~~~~新手没金币悬赏

2010-6-10 14:53
4863
软件已脱壳,点击注册会弹出界面,随便输入一个注册码,显示如下图,5秒无操作或点击任意屏幕,提示自动消失

试了常用的GetDlgItemTextA和GetWindowTextA,还有xp的那个万能断点,均无法拦截。也没有找到任何有意义的明码提示,详情大牛给个思路,这样的注册方式该如何下断啊

忘了说了,软件使用c++写的,调试器用的OD

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
使用按钮事件CreateFileA    挖到了一点头绪,我想我离终点已经不远了,里面好多call  好多test。。。。一团乱麻啊,真头疼
2010-6-10 18:33
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
搞不定啊,谁来救救我啊
2010-6-11 12:00
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
咋就没个大牛吭个声呢。。。
2010-6-11 18:27
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不知道你用什么调试器拦截的,如果API不方便,可以拦截按钮消息!
2010-6-11 22:22
0
雪    币: 237
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
拿Spy++看一下那些编辑框和按钮是不是Windows窗体先,这个界面怎么看起来像自己画的。
2010-6-12 03:53
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
delphi 程序的?应该不是窗体,可能是文本之类。请发下载地址
2010-6-12 08:13
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
呵呵,谢谢楼上几位帮助,软件使用c++写的,用spy++试了下,可以检测到窗口,我用od找到了“注册失败”提示框的句柄,去研究下消息断点,汇编基本不会,说不定到了关键跳我也没看出来,呵呵

这是一个服装类管理软件,因为是行业软件,担心上传会引起麻烦,但是他开价1600实在有点离谱,记录的信息就在里面几个dbf文件里,全部明文显示,买的话实在让我觉得钱花的冤,我又要用到里面的预定功能,实在让人心烦啊
2010-6-12 12:52
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
大牛帮我看下,这里有关键跳么,我每次都只能断在这里,只要告诉我有没有就好了,剩下的我自己研究,能告诉我有没有已经很好了。。。。

00401298  /.  55            push    ebp
00401299  |.  8BEC          mov     ebp, esp
0040129B  |.  56            push    esi
0040129C  |.  FF75 20       push    dword ptr [ebp+20]               ; /hTemplateFile
0040129F  |.  FF75 1C       push    dword ptr [ebp+1C]               ; |Attributes
004012A2  |.  FF75 18       push    dword ptr [ebp+18]               ; |Mode
004012A5  |.  FF75 14       push    dword ptr [ebp+14]               ; |pSecurity
004012A8  |.  FF75 10       push    dword ptr [ebp+10]               ; |ShareMode
004012AB  |.  FF75 0C       push    dword ptr [ebp+C]                ; |Access
004012AE  |.  FF75 08       push    dword ptr [ebp+8]                ; |FileName
004012B1  |.  FF15 10204000 call    dword ptr [<&KERNEL32.CreateFile>; \CreateFileA
004012B7  |.  68 A0314000   push    004031A0                         ; /c:\program files\fzzulin\fzzulin.exe
004012BC  |.  8BF0          mov     esi, eax                         ; |
004012BE  |.  E8 B3020000   call    <jmp.&MSVCRT._strlwr>            ; \_strlwr
004012C3  |.  59            pop     ecx
004012C4  |.  50            push    eax
004012C5  |.  FF75 08       push    dword ptr [ebp+8]                ; /s
004012C8  |.  E8 A9020000   call    <jmp.&MSVCRT._strlwr>            ; \_strlwr
004012CD  |.  59            pop     ecx                              ; |
004012CE  |.  50            push    eax                              ; |s1
004012CF      E8 9C020000   call    <jmp.&MSVCRT.strcmp>
004012D4  |.  59            pop     ecx
004012D5  |.  85C0          test    eax, eax                                                        这里检测的是什么?
004012D7  |.  59            pop     ecx
004012D8      75 0F         jnz     short 004012E9
004012DA  |.  833D 54304000>cmp     dword ptr [403054], -1                       这里是检测密码长度的么?(不够长度则提示注册错误?)
004012E1      75 06         jnz     short 004012E9
004012E3  |.  8935 54304000 mov     dword ptr [403054], esi
004012E9  |>  8BC6          mov     eax, esi
004012EB  |.  5E            pop     esi
004012EC  |.  5D            pop     ebp
004012ED  \.  C2 1C00       retn    1C
004012F0  /.  55            push    ebp
004012F1  |.  8BEC          mov     ebp, esp
004012F3  |.  8B45 08       mov     eax, dword ptr [ebp+8]
004012F6  |.  3B05 54304000 cmp     eax, dword ptr [403054]
004012FC  |.  75 3A         jnz     short 00401338
004012FE  |.  837D 14 00    cmp     dword ptr [ebp+14], 0
00401302  |.  8B0D 3C304000 mov     ecx, dword ptr [40303C]
00401308  |.  74 1E         je      short 00401328
0040130A  |.  837D 14 02    cmp     dword ptr [ebp+14], 2
0040130E  |.  75 07         jnz     short 00401317
00401310  |.  8BC1          mov     eax, ecx
00401312  |.  2B45 0C       sub     eax, dword ptr [ebp+C]
00401315  |.  EB 14         jmp     short 0040132B
00401317  |>  837D 14 01    cmp     dword ptr [ebp+14], 1
0040131B  |.  75 0B         jnz     short 00401328
0040131D  |.  8B45 0C       mov     eax, dword ptr [ebp+C]
00401320  |.  0305 30304000 add     eax, dword ptr [403030]
00401326  |.  EB 03         jmp     short 0040132B
00401328  |>  8B45 0C       mov     eax, dword ptr [ebp+C]
0040132B  |>  3BC1          cmp     eax, ecx
0040132D  |.  76 02         jbe     short 00401331
0040132F  |.  8BC1          mov     eax, ecx
00401331  |>  A3 30304000   mov     dword ptr [403030], eax
00401336      EB 10         jmp     short 00401348
00401338  |>  FF75 14       push    dword ptr [ebp+14]               ; /Origin
0040133B  |.  FF75 10       push    dword ptr [ebp+10]               ; |pOffsetHi
0040133E  |.  FF75 0C       push    dword ptr [ebp+C]                ; |OffsetLo
00401341  |.  50            push    eax                              ; |hFile
00401342  |.  FF15 0C204000 call    dword ptr [<&KERNEL32.SetFilePoi>; \SetFilePointer
00401348  |>  5D            pop     ebp
00401349  \.  C2 1000       retn    10
0040134C  /$  55            push    ebp
0040134D  |.  8BEC          mov     ebp, esp
0040134F  |.  83EC 14       sub     esp, 14
00401352  |.  33C9          xor     ecx, ecx
00401354  |.  56            push    esi
00401355  |.  394D 0C       cmp     dword ptr [ebp+C], ecx
00401358  |.  7E 29         jle     short 00401383
0040135A  |>  8B45 08       /mov     eax, dword ptr [ebp+8]
0040135D  |.  8D3401        |lea     esi, dword ptr [ecx+eax]
00401360  |.  0FB60401      |movzx   eax, byte ptr [ecx+eax]
00401364  |.  8BD0          |mov     edx, eax
00401366  |.  83E2 0F       |and     edx, 0F
00401369  |.  C1E8 04       |shr     eax, 4
0040136C  |.  8A92 44304000 |mov     dl, byte ptr [edx+403044]
00401372  |.  C0E2 04       |shl     dl, 4
00401375  |.  0A90 44304000 |or      dl, byte ptr [eax+403044]
0040137B  |.  41            |inc     ecx
0040137C  |.  3B4D 0C       |cmp     ecx, dword ptr [ebp+C]
0040137F  |.  8816          |mov     byte ptr [esi], dl
00401381  |.^ 7C D7         \jl      short 0040135A
00401383  |>  A1 34304000   mov     eax, dword ptr [403034]
00401388  |.  33F6          xor     esi, esi
0040138A  |.  3975 0C       cmp     dword ptr [ebp+C], esi
0040138D  |.  8945 F0       mov     dword ptr [ebp-10], eax
00401390  |.  7E 64         jle     short 004013F6
00401392  |.  53            push    ebx
00401393  |.  57            push    edi
00401394  |>  8065 FF 00    /and     byte ptr [ebp-1], 0
00401398  |.  33FF          |xor     edi, edi
0040139A  |>  8BDF          |/mov     ebx, edi
0040139C  |.  8D143F        ||lea     edx, dword ptr [edi+edi]
0040139F  |.  897D F8       ||mov     dword ptr [ebp-8], edi
004013A2  |.  C745 F4 02000>||mov     dword ptr [ebp-C], 2
004013A9  |.  C1E3 02       ||shl     ebx, 2
004013AC  |>  8B45 F0       ||/mov     eax, dword ptr [ebp-10]
004013AF  |.  8BCB          |||mov     ecx, ebx
004013B1  |.  D3F8          |||sar     eax, cl
004013B3  |.  8BCA          |||mov     ecx, edx
004013B5  |.  83C3 10       |||add     ebx, 10
004013B8  |.  24 01         |||and     al, 1
004013BA  |.  D2E0          |||shl     al, cl
004013BC  |.  8BC8          |||mov     ecx, eax
004013BE  |.  8B45 08       |||mov     eax, dword ptr [ebp+8]
004013C1  |.  300C06        |||xor     byte ptr [esi+eax], cl
004013C4  |.  8A0406        |||mov     al, byte ptr [esi+eax]
004013C7  |.  8ACA          |||mov     cl, dl
004013C9  |.  D2E8          |||shr     al, cl
004013CB  |.  8B4D F8       |||mov     ecx, dword ptr [ebp-8]
004013CE  |.  8345 F8 04    |||add     dword ptr [ebp-8], 4
004013D2  |.  24 01         |||and     al, 1
004013D4  |.  D2E0          |||shl     al, cl
004013D6  |.  0845 FF       |||or      byte ptr [ebp-1], al
004013D9  |.  42            |||inc     edx
004013DA  |.  FF4D F4       |||dec     dword ptr [ebp-C]
004013DD  |.^ 75 CD         ||\jnz     short 004013AC
004013DF  |.  47            ||inc     edi
004013E0  |.  83FF 04       ||cmp     edi, 4
004013E3  |.^ 7C B5         |\jl      short 0040139A
004013E5  |.  8B4D 08       |mov     ecx, dword ptr [ebp+8]
004013E8  |.  8A45 FF       |mov     al, byte ptr [ebp-1]
004013EB  |.  88040E        |mov     byte ptr [esi+ecx], al
004013EE  |.  46            |inc     esi
004013EF  |.  3B75 0C       |cmp     esi, dword ptr [ebp+C]
004013F2  |.^ 7C A0         \jl      short 00401394
004013F4  |.  5F            pop     edi
004013F5  |.  5B            pop     ebx
004013F6  |>  8BC6          /mov     eax, esi
004013F8  |.  4E            |dec     esi
004013F9  |.  85C0          |test    eax, eax
004013FB  |.  74 11         |je      short 0040140E
004013FD  |.  8B45 08       |mov     eax, dword ptr [ebp+8]
00401400  |.  03C6          |add     eax, esi
00401402  |.  8A08          |mov     cl, byte ptr [eax]
00401404  |.  80F1 5D       |xor     cl, 5D
00401407  |.  80C1 2D       |add     cl, 2D
0040140A  |.  8808          |mov     byte ptr [eax], cl
0040140C  |.^ EB E8         \jmp     short 004013F6
0040140E  |>  33C0          xor     eax, eax
00401410  |.  85F6          test    esi, esi
00401412  |.  0F95C0        setne   al
00401415  |.  48            dec     eax
00401416  |.  5E            pop     esi
00401417  |.  C9            leave
00401418  \.  C2 0800       retn    8
0040141B  /$  56            push    esi
0040141C  |.  8B7424 08     mov     esi, dword ptr [esp+8]
00401420  |.  8935 9C314000 mov     dword ptr [40319C], esi
00401426  |.  57            push    edi
00401427  |.  8B46 3C       mov     eax, dword ptr [esi+3C]
0040142A  |.  03C6          add     eax, esi
0040142C  |.  A3 78314000   mov     dword ptr [403178], eax
00401431  |.  8B80 80000000 mov     eax, dword ptr [eax+80]
00401437  |.  85C0          test    eax, eax
00401439  |.  A3 74314000   mov     dword ptr [403174], eax
0040143E  |.  0F84 15010000 je      00401559
00401444  |.  03C6          add     eax, esi
00401446  |>  A3 88314000   /mov     dword ptr [403188], eax
0040144B  |.  8378 10 00    |cmp     dword ptr [eax+10], 0
0040144F  |.  0F84 04010000 |je      00401559
00401455  |.  8B40 0C       |mov     eax, dword ptr [eax+C]
00401458  |.  85C0          |test    eax, eax
0040145A  |.  0F84 F9000000 |je      00401559
00401460  |.  03C6          |add     eax, esi
00401462  |.  50            |push    eax                             ; /s2
00401463  |.  A3 8C314000   |mov     dword ptr [40318C], eax         ; |
00401468  |.  FF7424 14     |push    dword ptr [esp+14]              ; |s1
0040146C  |.  E8 FF030000   |call    <jmp.&MSVCRT._stricmp>          ; \_stricmp
00401471  |.  59            |pop     ecx
00401472  |.  85C0          |test    eax, eax
00401474  |.  59            |pop     ecx
00401475  |.  74 0A         |je      short 00401481
00401477  |.  A1 88314000   |mov     eax, dword ptr [403188]
0040147C  |.  83C0 14       |add     eax, 14
0040147F  |.^ EB C5         \jmp     short 00401446
00401481  |>  8B0D 88314000 mov     ecx, dword ptr [403188]
00401487  |.  33FF          xor     edi, edi
00401489  |.  8B01          mov     eax, dword ptr [ecx]
0040148B  |.  03C6          add     eax, esi
0040148D  |.  A3 80314000   mov     dword ptr [403180], eax
00401492  |.  8B49 10       mov     ecx, dword ptr [ecx+10]
00401495  |.  8325 50314000>and     dword ptr [403150], 0
0040149C  |.  03CE          add     ecx, esi
0040149E  |.  890D 94314000 mov     dword ptr [403194], ecx
004014A4  |.  8B00          mov     eax, dword ptr [eax]
004014A6  |.  85C0          test    eax, eax
004014A8  |.  0F84 AB000000 je      00401559
004014AE  |>  68 04010000   /push    104                             ; /maxlen = 104 (260.)
004014B3  |.  8D4430 02     |lea     eax, dword ptr [eax+esi+2]      ; |
004014B7  |.  FF7424 18     |push    dword ptr [esp+18]              ; |s2
004014BB  |.  A3 90314000   |mov     dword ptr [403190], eax         ; |
004014C0  |.  50            |push    eax                             ; |s1
004014C1  |.  E8 B6000000   |call    <jmp.&MSVCRT.strncmp>           ; \strncmp
004014C6  |.  83C4 0C       |add     esp, 0C
004014C9  |.  85C0          |test    eax, eax
004014CB  |.  74 15         |je      short 004014E2
004014CD  |.  8305 80314000>|add     dword ptr [403180], 4
004014D4  |.  A1 80314000   |mov     eax, dword ptr [403180]
004014D9  |.  47            |inc     edi
004014DA  |.  8B00          |mov     eax, dword ptr [eax]
004014DC  |.  85C0          |test    eax, eax
004014DE  |.^ 75 CE         \jnz     short 004014AE
004014E0  |.  EB 0A         jmp     short 004014EC
004014E2  |>  C705 50314000>mov     dword ptr [403150], 1
004014EC  |>  833D 50314000>cmp     dword ptr [403150], 0
004014F3  |.  74 64         je      short 00401559
004014F5  |.  A1 94314000   mov     eax, dword ptr [403194]
004014FA  |.  6A 1C         push    1C                               ; /BufSize = 1C (28.)
004014FC  |.  68 58314000   push    00403158                         ; |Buffer = fzzulin.00403158
00401501  |.  8D04B8        lea     eax, dword ptr [eax+edi*4]       ; |
00401504  |.  50            push    eax                              ; |Address
00401505  |.  A3 98314000   mov     dword ptr [403198], eax          ; |
0040150A  |.  FF15 04204000 call    dword ptr [<&KERNEL32.VirtualQue>; \VirtualQuery
00401510  |.  8B35 08204000 mov     esi, dword ptr [<&KERNEL32.Virtu>;  kernel32.VirtualProtect
00401516  |.  68 6C314000   push    0040316C                         ; /pOldProtect = fzzulin.0040316C
0040151B  |.  6A 04         push    4                                ; |NewProtect = PAGE_READWRITE
0040151D  |.  FF35 64314000 push    dword ptr [403164]               ; |Size = 0
00401523  |.  FF35 58314000 push    dword ptr [403158]               ; |Address = NULL
00401529  |.  FFD6          call    esi                              ; \VirtualProtect
0040152B  |.  85C0          test    eax, eax
0040152D      74 2A         je      short 00401559
0040152F  |.  8B0D 98314000 mov     ecx, dword ptr [403198]
00401535  |.  8B4424 18     mov     eax, dword ptr [esp+18]
00401539  |.  68 7C314000   push    0040317C                         ; /pOldProtect = fzzulin.0040317C
0040153E  |.  8901          mov     dword ptr [ecx], eax             ; |
00401540  |.  FF35 6C314000 push    dword ptr [40316C]               ; |NewProtect = 0
00401546  |.  FF35 64314000 push    dword ptr [403164]               ; |Size = 0
0040154C  |.  FF35 58314000 push    dword ptr [403158]               ; |Address = NULL
00401552  |.  FFD6          call    esi                              ; \VirtualProtect
00401554  |.  6A 01         push    1
00401556  |.  58            pop     eax
00401557  |.  EB 02         jmp     short 0040155B
00401559  |>  33C0          xor     eax, eax
0040155B  |>  5F            pop     edi
0040155C  |.  5E            pop     esi
0040155D  \.  C3            retn
2010-6-12 13:23
0
雪    币: 5704
活跃值: (3432)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
只看这个是解决不了问题的,什么也没有,
2010-6-12 14:10
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
你可以PM给我或你QQ联系也可以。
2010-6-12 16:27
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我今天再尝试一天吧,不行就联系您。。。想问下,现在看代码只能看懂 字面上 的意思,不能看出代码表达的

真正含义,请问有什么书好推荐的嘛?
2010-6-13 12:01
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我用strcmp函数又一次把程序004012D4 这里,过其门不得入啊。。。。
2010-6-13 13:57
0
游客
登录 | 注册 方可回帖
返回
//