首页
社区
课程
招聘
[旧帖] [求助]W32Dasm反编译后,产生的一些困惑 0.00雪花
发表于: 2008-3-1 21:25 6223

[旧帖] [求助]W32Dasm反编译后,产生的一些困惑 0.00雪花

2008-3-1 21:25
6223
该程序为Delphi6.0~7.0,无壳,反编译查找关键字符串“注册”得到如下代码:(小弟实在是菜,找到关键call之后,竟然无从下手,用OD在关键CALL处下断,结果啥都没拦到)附代码如下:(望高手指点一二)
* Possible StringData Ref from Code Obj ->"狗狗注册成功,谢谢您的使用。"
                                  |
:0079BBE1 681CBD7900              push 0079BD1C
:0079BBE6 8BC3                    mov eax, ebx
:0079BBE8 E80B74CDFF              call 00472FF8
:0079BBED 50                      push eax

* Reference To: user32.MessageBoxA, Ord:0000h
                                  |
:0079BBEE E8A9C2C6FF              Call 00407E9C
:0079BBF3 C60601                  mov byte ptr [esi], 01
:0079BBF6 E8D9280000              call 0079E4D4
:0079BBFB E82C2B0000              call 0079E72C
:0079BC00 A1F444A200              mov eax, dword ptr [00A244F4]
:0079BC05 833800                  cmp dword ptr [eax], 00000000
:0079BC08 0F84BC000000            je 0079BCCA
:0079BC0E A1F444A200              mov eax, dword ptr [00A244F4]
:0079BC13 8B00                    mov eax, dword ptr [eax]
:0079BC15 8B80D4060000            mov eax, dword ptr [eax+000006D4]
:0079BC1B 33D2                    xor edx, edx
:0079BC1D E87E09CDFF              call 0046C5A0
:0079BC22 E9A3000000              jmp 0079BCCA

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0079BBD8(C)
|
:0079BC27 6A30                    push 00000030
:0079BC29 6810BD7900              push 0079BD10

* Possible StringData Ref from Code Obj ->"注册码错误,无法注册!"
                                  |
:0079BC2E 683CBD7900              push 0079BD3C
:0079BC33 8BC3                    mov eax, ebx
:0079BC35 E8BE73CDFF              call 00472FF8
:0079BC3A 50                      push eax

* Reference To: user32.MessageBoxA, Ord:0000h
                                  |
:0079BC3B E85CC2C6FF              Call 00407E9C
:0079BC40 E985000000              jmp 0079BCCA

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0079BBCF(C)
|
:0079BC45 6A30                    push 00000030
:0079BC47 6810BD7900              push 0079BD10

* Possible StringData Ref from Code Obj ->"注册码错误,无法注册!"
                                  |
:0079BC4C 683CBD7900              push 0079BD3C
:0079BC51 8BC3                    mov eax, ebx
:0079BC53 E8A073CDFF              call 00472FF8
:0079BC58 50                      push eax

* Reference To: user32.MessageBoxA, Ord:0000h
                                  |
:0079BC59 E83EC2C6FF              Call 00407E9C
:0079BC5E EB6A                    jmp 0079BCCA

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0079BBB9(C)
|
:0079BC60 8D45E4                  lea eax, dword ptr [ebp-1C]
:0079BC63 E88C34F7FF              call 0070F0F4
:0079BC68 8B4DE4                  mov ecx, dword ptr [ebp-1C]
:0079BC6B B201                    mov dl, 01

* Possible StringData Ref from Code Obj ->"XH"
                                  |
:0079BC6D A178034800              mov eax, dword ptr [00480378]
:0079BC72 E8B147CEFF              call 00480428
:0079BC77 8BF0                    mov esi, eax
:0079BC79 6A01                    push 00000001

* Possible StringData Ref from Code Obj ->"Flag"
                                  |
:0079BC7B B964BD7900              mov ecx, 0079BD64

* Possible StringData Ref from Code Obj ->"Register"
                                  |
:0079BC80 BA74BD7900              mov edx, 0079BD74
:0079BC85 8BC6                    mov eax, esi
:0079BC87 8B38                    mov edi, dword ptr [eax]
:0079BC89 FF5714                  call [edi+14]
:0079BC8C 8BC6                    mov eax, esi
:0079BC8E E82D7DC6FF              call 004039C0
:0079BC93 6A40                    push 00000040
:0079BC95 6810BD7900              push 0079BD10

* Possible StringData Ref from Code Obj ->"注册成功,谢谢您的使用。"
                                  |
:0079BC9A 6880BD7900              push 0079BD80
:0079BC9F 8BC3                    mov eax, ebx
:0079BCA1 E85273CDFF              call 00472FF8
:0079BCA6 50                      push eax

* Reference To: user32.MessageBoxA, Ord:0000h
                                  |
:0079BCA7 E8F0C1C6FF              Call 00407E9C
:0079BCAC A1F444A200              mov eax, dword ptr [00A244F4]
:0079BCB1 833800                  cmp dword ptr [eax], 00000000
:0079BCB4 7414                    je 0079BCCA
:0079BCB6 A1F444A200              mov eax, dword ptr [00A244F4]
:0079BCBB 8B00                    mov eax, dword ptr [eax]
:0079BCBD 8B80D4060000            mov eax, dword ptr [eax+000006D4]
:0079BCC3 33D2                    xor edx, edx
:0079BCC5 E8D608CDFF              call 0046C5A0

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0079BB39(C), :0079BC08(C), :0079BC22(U), :0079BC40(U), :0079BC5E(U)
|:0079BCB4(C)
|
:0079BCCA 33C0                    xor eax, eax
:0079BCCC 5A                      pop edx
:0079BCCD 59                      pop ecx
:0079BCCE 59                      pop ecx
:0079BCCF 648910                  mov dword ptr fs:[eax], edx
:0079BCD2 6809BD7900              push 0079BD09

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0079BD07(U)
|
:0079BCD7 8D45E4                  lea eax, dword ptr [ebp-1C]
:0079BCDA E8B18BC6FF              call 00404890
:0079BCDF 8D45E8                  lea eax, dword ptr [ebp-18]
:0079BCE2 BA03000000              mov edx, 00000003
:0079BCE7 E8C88BC6FF              call 004048B4
:0079BCEC 8D45F4                  lea eax, dword ptr [ebp-0C]
:0079BCEF E89C8BC6FF              call 00404890
:0079BCF4 8D45F8                  lea eax, dword ptr [ebp-08]
:0079BCF7 BA02000000              mov edx, 00000002
:0079BCFC E8B38BC6FF              call 004048B4
:0079BD01 C3                      ret

:0079BD02 E94D84C6FF              jmp 00404154
:0079BD07 EBCE                    jmp 0079BCD7
:0079BD09 5F                      pop edi
:0079BD0A 5E                      pop esi
:0079BD0B 5B                      pop ebx
:0079BD0C 8BE5                    mov esp, ebp
:0079BD0E 5D                      pop ebp
:0079BD0F C3                      ret
-------------------------------------------
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00403FBF(U), :00404147(U)
|
:004039C0 85C0                    test eax, eax
:004039C2 7407                    je 004039CB
:004039C4 B201                    mov dl, 01
:004039C6 8B08                    mov ecx, dword ptr [eax]
:004039C8 FF51FC                  call [ecx-04]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004039C2(C)
|
:004039CB C3                      ret
××××××××××××××××××××××××××××××××××××××
调用OD在004039C2处下断,拦不到,用bp messageboxa断点可以拦截,可里面的代码绕来绕去,都绕不回来,唉,水平太菜。。。。埋头读书先,大侠,就拉兄弟一把吧!!!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 200
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
W32Dasm
爆破不行吗?

我向可以吧!
2008-3-1 21:59
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
3
判断应该在你发出代码的前面
2008-3-2 13:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
前面的代码如下:
0079BB0C   55                     push    ebp
0079BB0D   8BEC                   mov     ebp, esp
0079BB0F   6A00                   push    $00
0079BB11   6A00                   push    $00
0079BB13   6A00                   push    $00
0079BB15   6A00                   push    $00
0079BB17   6A00                   push    $00
0079BB19   6A00                   push    $00
0079BB1B   6A00                   push    $00
0079BB1D   53                     push    ebx
0079BB1E   56                     push    esi
0079BB1F   57                     push    edi
0079BB20   8BF1                   mov     esi, ecx
0079BB22   8BD8                   mov     ebx, eax
0079BB24   33C0                   xor     eax, eax
0079BB26   55                     push    ebp

* Possible String Reference to: '镸勂胛_^[嬪]孟低程崾?
|
0079BB27   6802BD7900             push    $0079BD02

***** TRY
|
0079BB2C   64FF30                 push    dword ptr fs:[eax]
0079BB2F   648920                 mov     fs:[eax], esp
0079BB32   83BB4C02000001         cmp     dword ptr [ebx+$024C], +$01
0079BB39   0F858B010000           jnz     0079BCCA
0079BB3F   8D55FC                 lea     edx, [ebp-$04]

* Reference to control ed_serverorIp : TEdit
|
0079BB42   8B832C030000           mov     eax, [ebx+$032C]

* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
0079BB48   E8330BCDFF             call    0046C680
0079BB4D   837DFC00               cmp     dword ptr [ebp-$04], +$00
0079BB51   7416                   jz      0079BB69
0079BB53   8D55F8                 lea     edx, [ebp-$08]

* Reference to control ed_serverorIp : TEdit
|
0079BB56   8B832C030000           mov     eax, [ebx+$032C]

* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
0079BB5C   E81F0BCDFF             call    0046C680
0079BB61   8B45F8                 mov     eax, [ebp-$08]

|
0079BB64   E8772D0000             call    0079E8E0
0079BB69   C60600                 mov     byte ptr [esi], $00
0079BB6C   8D55F0                 lea     edx, [ebp-$10]

* Reference to control ed_Register : TEdit
|
0079BB6F   8B8314030000           mov     eax, [ebx+$0314]

* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
0079BB75   E8060BCDFF             call    0046C680
0079BB7A   8B45F0                 mov     eax, [ebp-$10]
0079BB7D   8D55F4                 lea     edx, [ebp-$0C]

* Reference to: SysUtils.Trim(AnsiString):AnsiString;overload;
|
0079BB80   E8D3DAC6FF             call    00409658
0079BB85   837DF400               cmp     dword ptr [ebp-$0C], +$00
0079BB89   742B                   jz      0079BBB6
0079BB8B   8D55EC                 lea     edx, [ebp-$14]

* Reference to control ed_Register : TEdit
|
0079BB8E   8B8314030000           mov     eax, [ebx+$0314]

* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
0079BB94   E8E70ACDFF             call    0046C680
0079BB99   8B45EC                 mov     eax, [ebp-$14]
0079BB9C   50                     push    eax
0079BB9D   8D55E8                 lea     edx, [ebp-$18]

* Reference to control ed_Source : TEdit
|
0079BBA0   8B8310030000           mov     eax, [ebx+$0310]

* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
0079BBA6   E8D50ACDFF             call    0046C680
0079BBAB   8B45E8                 mov     eax, [ebp-$18]
0079BBAE   5A                     pop     edx

* Reference to: XMLDoc.CopyChildNodes(IXMLNode;IXMLNode);
|
0079BBAF   E880220000             call    0079DE34
0079BBB4   8806                   mov     [esi], al
0079BBB6   803E00                 cmp     byte ptr [esi], $00
0079BBB9   0F85A1000000           jnz     0079BC60

* Reference to control cb_IsDog : TCheckBox
|
0079BBBF   8B8330030000           mov     eax, [ebx+$0330]
0079BBC5   8B10                   mov     edx, [eax]
0079BBC7   FF92C4000000           call    dword ptr [edx+$00C4]
0079BBCD   84C0                   test    al, al
0079BBCF   7474                   jz      0079BC45

|
0079BBD1   E8F62D0000             call    0079E9CC
0079BBD6   84C0                   test    al, al
0079BBD8   744D                   jz      0079BC27
0079BBDA   6A40                   push    $40

* Possible String Reference to: '系统提示'
|
0079BBDC   6810BD7900             push    $0079BD10

* Possible StringData Ref from Code Obj ->"狗狗注册成功,谢谢您的使用。"
————————————————————————————————————————
2008-3-2 17:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
晕菜 ,只能建议你 多去 看看 基础了 ,给你个提示吧 ,关键在这里 jz      0079BC27
2008-3-2 18:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼上的大哥,jz 0079BC27 这里改成NOP,就无法运行了
另外,在上面的那个call下断也下了,没用,这是狗狗的注册,不是注册码,这个程序分两种认证方式,狗狗的用不上,主要是注册码认证
2008-3-2 23:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
等待中。。。。。
2008-3-9 17:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不懂                                            ,
2008-3-9 17:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不懂   !!!!!!1111111
2008-3-9 18:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
jz  改成jmp
2008-3-9 20:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
没用,大兄弟
2008-3-9 21:02
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
12
0079BBAF   E880220000             call    0079DE34
0079BBB4   8806                   mov     [esi], al  ;保存注册标志,这里应该为1
0079BBB6   803E00                 cmp     byte ptr [esi], $00  ; 如果为零,则判断狗狗注册,否则则是注册码注册
0079BBB9   0F85A1000000           jnz     0079BC60 ; 这里修改为jmp就是注册码注册成功了。
2008-3-9 21:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼上的是高手,分析得很对。
2008-3-9 21:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
[QUOTE=小虾;426114]0079BBAF   E880220000             call    0079DE34
0079BBB4   8806                   mov     [esi], al  ;保存注册标志,这里应该为1
0079BBB6   803E00            ...[/QUOTE] 斑斑,照你说的改了。。把原地址的:0F85,修改成00EB,运行出错,是不是我改得不对?
2008-3-10 01:24
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
15
你当然改错了,你应该将“0F85A1000000”改成“E9A200000090”才对。
2008-3-10 09:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
我也在学习中!!!!
2008-3-10 10:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
斑斑,谢谢啦!!!!!!!!!!!!!!!!!!!!!小弟太菜。。。努力啃汇编先。。。PS:这个程序的关键CALL是否为:0079BBAF   E880220000         call    0079DE34,如果想做注册机,就得把里面的算法啃下来,是吗?
2008-3-10 13:47
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
18
这个,只有动态调试才能知道了,可能是这个,也可能是前面几个的其中一个。
2008-3-10 14:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
嗯嗯,收到。。。小虾斑斑。。。
2008-3-10 14:08
0
游客
登录 | 注册 方可回帖
返回
//