首页
社区
课程
招聘
[旧帖] [求助]这些东西是什么意思?[代码] 0.00雪花
发表于: 2007-9-30 14:03 4445

[旧帖] [求助]这些东西是什么意思?[代码] 0.00雪花

2007-9-30 14:03
4445
004049CB: 55                             push ebp
004049CC: 8B EC                          mov ebp, esp
004049CE: 6A FF                          push -1
004049D0: 68 40 A2 40 00                 push 40A240
004049D5: 68 30 5F 40 00                 push 405F30
004049DA: 64 A1 00 00 00 00              mov eax, dword ptr fs:[0]
004049E0: 50                             push eax
004049E1: 64 89 25 00 00 00 00           mov dword ptr fs:[0], esp
004049E8: 83 EC 58                       sub esp, 58
004049EB: 53                             push ebx
004049EC: 56                             push esi
004049ED: 57                             push edi
004049EE: 89 65 E8                       mov dword ptr ss:[ebp-18], esp
004049F1: FF 15 F8 A0 40 00              call dword ptr ds:[40A0F8] ; GetVersion
004049F7: 33 D2                          xor edx, edx
004049F9: 8A D4                          mov dl, ah
004049FB: 89 15 B0 D1 40 00              mov dword ptr ds:[40D1B0], edx
00404A01: 8B C8                          mov ecx, eax
00404A03: 81 E1 FF 00 00 00              and ecx, FF
00404A09: 89 0D AC D1 40 00              mov dword ptr ds:[40D1AC], ecx
00404A0F: C1 E1 08                       shl ecx, 8
00404A12: 03 CA                          add ecx, edx
00404A14: 89 0D A8 D1 40 00              mov dword ptr ds:[40D1A8], ecx
00404A1A: C1 E8 10                       shr eax, 10
00404A1D: A3 A4 D1 40 00                 mov dword ptr ds:[40D1A4], eax
00404A22: 33 F6                          xor esi, esi
00404A24: 56                             push esi
00404A25: E8 DE 15 00 00                 call 00406008
00404A2A: 59                             pop ecx
00404A2B: 85 C0                          test eax, eax
00404A2D: 75 08                          jnz short 00404A37
00404A2F: 6A 1C                          push 1C
00404A31: E8 B0 00 00 00                 call 00404AE6
00404A36: 59                             pop ecx
00404A37: 89 75 FC                       mov dword ptr ss:[ebp-4], esi
00404A3A: E8 58 27 00 00                 call 00407197
00404A3F: FF 15 F4 A0 40 00              call dword ptr ds:[40A0F4] ; GetCommandLineA
00404A45: A3 C0 E7 40 00                 mov dword ptr ds:[40E7C0], eax
00404A4A: E8 16 26 00 00                 call 00407065
00404A4F: A3 00 D2 40 00                 mov dword ptr ds:[40D200], eax
00404A54: E8 BF 23 00 00                 call 00406E18
00404A59: E8 01 23 00 00                 call 00406D5F
00404A5E: E8 41 F5 FF FF                 call 00403FA4
00404A63: 89 75 D0                       mov dword ptr ss:[ebp-30], esi
00404A66: 8D 45 A4                       lea eax, dword ptr ss:[ebp-5C]
00404A69: 50                             push eax
00404A6A: FF 15 F0 A0 40 00              call dword ptr ds:[40A0F0] ; GetStartupInfoA
00404A70: E8 92 22 00 00                 call 00406D07
00404A75: 89 45 9C                       mov dword ptr ss:[ebp-64], eax
00404A78: F6 45 D0 01                    test byte ptr ss:[ebp-30], 1
00404A7C: 74 06                          je short 00404A84
00404A7E: 0F B7 45 D4                    movzx eax, word ptr ss:[ebp-2C]
00404A82: EB 03                          jmp short 00404A87
00404A84: 6A 0A                          push A
00404A86: 58                             pop eax
00404A87: 50                             push eax
00404A88: FF 75 9C                       push dword ptr ss:[ebp-64]
00404A8B: 56                             push esi
00404A8C: 56                             push esi
00404A8D: FF 15 EC A0 40 00              call dword ptr ds:[40A0EC] ; GetModuleHandleA
00404A93: 50                             push eax
00404A94: E8 A3 CC FF FF                 call 0040173C
00404A99: 89 45 A0                       mov dword ptr ss:[ebp-60], eax
00404A9C: 50                             push eax
00404A9D: E8 2F F5 FF FF                 call 00403FD1
00404AA2: 8B 45 EC                       mov eax, dword ptr ss:[ebp-14]
00404AA5: 8B 08                          mov ecx, dword ptr ds:[eax]
00404AA7: 8B 09                          mov ecx, dword ptr ds:[ecx]
00404AA9: 89 4D 98                       mov dword ptr ss:[ebp-68], ecx
00404AAC: 50                             push eax
00404AAD: 51                             push ecx
00404AAE: E8 D0 20 00 00                 call 00406B83
00404AB3: 59                             pop ecx
00404AB4: 59                             pop ecx
00404AB5: C3                             retn
00404AB6: 8B 65 E8                       mov esp, dword ptr ss:[ebp-18]
00404AB9: FF 75 98                       push dword ptr ss:[ebp-68]
00404ABC: E8 21 F5 FF FF                 call 00403FE2
00404AC1: 83 3D 08 D2 40 00 01           cmp dword ptr ds:[40D208], 1
00404AC8: 75 05                          jnz short 00404ACF
00404ACA: E8 73 28 00 00                 call 00407342
00404ACF: FF 74 24 04                    push dword ptr ss:[esp+4]
00404AD3: E8 A3 28 00 00                 call 0040737B
00404AD8: 68 FF 00 00 00                 push FF
00404ADD: FF 15 00 C7 40 00              call dword ptr ds:[40C700]
00404AE3: 59                             pop ecx
00404AE4: 59                             pop ecx
00404AE5: C3                             retn
00404AE6: 83 3D 08 D2 40 00 01           cmp dword ptr ds:[40D208], 1
00404AED: 75 05                          jnz short 00404AF4
00404AEF: E8 4E 28 00 00                 call 00407342
00404AF4: FF 74 24 04                    push dword ptr ss:[esp+4]
00404AF8: E8 7E 28 00 00                 call 0040737B
00404AFD: 59                             pop ecx
00404AFE: 68 FF 00 00 00                 push FF
00404B03: FF 15 C8 A0 40 00              call dword ptr ds:[40A0C8] ; ExitProcess
00404B09: C3                             retn
00404B0A: 56                             push esi
00404B0B: 8B F1                          mov esi, ecx
00404B0D: E8 9B 00 00 00                 call 00404BAD
00404B12: F6 44 24 08 01                 test byte ptr ss:[esp+8], 1
00404B17: 74 07                          je short 00404B20
00404B19: 56                             push esi
00404B1A: E8 D2 E4 FF FF                 call 00402FF1
00404B1F: 59                             pop ecx
00404B20: 8B C6                          mov eax, esi
00404B22: 5E                             pop esi
00404B23: C2 04 00                       retn 4
00404B26: 56                             push esi
00404B27: 57                             push edi
00404B28: 8B 7C 24 0C                    mov edi, dword ptr ss:[esp+C]
00404B2C: 8B F1                          mov esi, ecx
00404B2E: C7 06 50 A2 40 00              mov dword ptr ds:[esi], 40A250
00404B34: FF 37                          push dword ptr ds:[edi]
00404B36: E8 E5 EE FF FF                 call 00403A20
00404B3B: 40                             inc eax
00404B3C: 50                             push eax
00404B3D: E8 10 E8 FF FF                 call 00403352
00404B42: 59                             pop ecx
00404B43: 89 46 04                       mov dword ptr ds:[esi+4], eax
00404B46: 85 C0                          test eax, eax
00404B48: 59                             pop ecx
00404B49: 74 0A                          je short 00404B55
00404B4B: FF 37                          push dword ptr ds:[edi]
00404B4D: 50                             push eax
00404B4E: E8 DD ED FF FF                 call 00403930
00404B53: 59                             pop ecx
00404B54: 59                             pop ecx
00404B55: C7 46 08 01 00 00 00           mov dword ptr ds:[esi+8], 1
00404B5C: 8B C6                          mov eax, esi
00404B5E: 5F                             pop edi
00404B5F: 5E                             pop esi
00404B60: C2 04 00                       retn 4
00404B63: 56                             push esi
00404B64: 57                             push edi
00404B65: 8B 7C 24 0C                    mov edi, dword ptr ss:[esp+C]
00404B69: 8B F1                          mov esi, ecx
00404B6B: C7 06 50 A2 40 00              mov dword ptr ds:[esi], 40A250
00404B71: 8B 47 08                       mov eax, dword ptr ds:[edi+8]
00404B74: 85 C0                          test eax, eax
00404B76: 89 46 08                       mov dword ptr ds:[esi+8], eax
00404B79: 74 25                          je short 00404BA0
00404B7B: FF 77 04                       push dword ptr ds:[edi+4]
00404B7E: E8 9D EE FF FF                 call 00403A20
00404B83: 40                             inc eax
00404B84: 50                             push eax
00404B85: E8 C8 E7 FF FF                 call 00403352
00404B8A: 59                             pop ecx
00404B8B: 89 46 04                       mov dword ptr ds:[esi+4], eax
00404B8E: 85 C0                          test eax, eax
00404B90: 59                             pop ecx
00404B91: 74 13                          je short 00404BA6
00404B93: FF 77 04                       push dword ptr ds:[edi+4]
00404B96: 50                             push eax
00404B97: E8 94 ED FF FF                 call 00403930
00404B9C: 59                             pop ecx
00404B9D: 59                             pop ecx
00404B9E: EB 06                          jmp short 00404BA6
00404BA0: 8B 47 04                       mov eax, dword ptr ds:[edi+4]
00404BA3: 89 46 04                       mov dword ptr ds:[esi+4], eax
00404BA6: 8B C6                          mov eax, esi
00404BA8: 5F                             pop edi
00404BA9: 5E                             pop esi
00404BAA: C2 04 00                       retn 4
00404BAD: 83 79 08 00                    cmp dword ptr ds:[ecx+8], 0
00404BB1: C7 01 50 A2 40 00              mov dword ptr ds:[ecx], 40A250
00404BB7: 74 09                          je short 00404BC2
00404BB9: FF 71 04                       push dword ptr ds:[ecx+4]
00404BBC: E8 30 E4 FF FF                 call 00402FF1
00404BC1: 59                             pop ecx
00404BC2: C3                             retn
00404BC3: 8B 41 04                       mov eax, dword ptr ds:[ecx+4]
00404BC6: 85 C0                          test eax, eax
00404BC8: 75 05                          jnz short 00404BCF
00404BCA: B8 58 A2 40 00                 mov eax, 40A258

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 462
活跃值: (53)
能力值: ( LV9,RANK:460 )
在线值:
发帖
回帖
粉丝
2
这是Visual C++为可执行文件生成的初始化代码。
它的作用主要是:
1. 前两条指令用于设置标准堆栈帧。
2. 接下来的六条指令用来设置SEH处理程序。
3. 接下来的一条指令用来为函数使用的局部变量保留空间。
4. 接下来的三条指令用来保护现场。
5. 接下来的一条指令也用于SEH处理程序。
6. 接下来是调用GetVersion函数并进行了一系列MOV(赋值)操作。如果你记得Visual C++中的main函数比ANSI C标准的main函数多一个环境变量参数的话,你就会知道这个调用的意义。
7. 接下来对GetCommandLine的调用是为了准备main(WinMain)函数的第三个参数。
8. 接下来对GetStartupInfo函数的调用是为了准备WinMain函数的最后一个参数。
9. 接下来对GetModuleHandle函数的调用是为了准备WinMain函数的第一个参数。
(WinMain函数的第二个参数用于16位的Windows,现已被废弃,不再使用)
10. 接下来是启动你的WinMain函数。
11. 正常执行完你的WinMain函数后返回,然后调用ExitProcess结束进程。
12. 最后是一些异常处理代码。
2007-9-30 15:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=;]...[/QUOTE]
楼上的 能够理解 这么的深刻 ,看来功底也是很深厚的了 ,不知 要做到这种程度,需要进行怎样的修炼呢?
2007-9-30 18:48
0
雪    币: 462
活跃值: (53)
能力值: ( LV9,RANK:460 )
在线值:
发帖
回帖
粉丝
4
经常调试程序,参考一些相关资料,如《Debugging Applications》、MSDN Magazine Under The Hood专栏相关文章,再有就是VC运行时库源代码
2007-10-1 05:19
0
雪    币: 105
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
晕。。这如何看的明白。只有在调试器中才能看明白
只能看些API
2007-10-1 08:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
很厉害啊,我也想做到这种程度。
2007-10-1 08:18
0
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
2楼的果然理解的深刻 呀~~
2007-10-2 18:30
0
雪    币: 222
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
佩服,支持一下二楼的同志
2007-10-2 19:27
0
游客
登录 | 注册 方可回帖
返回
//