反汇编分析(跪求高手解答)

.text:100029FF loc_100029FF: ; CODE XREF: DllMain(x,x,x)+C7j
.text:100029FF call ?AfxLockTempMaps@@YGXXZ ; AfxLockTempMaps(void)
.text:10002A04 push 0FFFFFFFFh ; int
.text:10002A06 call ?AfxUnlockTempMaps@@YGHH@Z ; AfxUnlockTempMaps(int)
.text:10002A0B call ?AfxWinTerm@@YGXXZ ; AfxWinTerm(void)
.text:10002A10 push 1 ; int
.text:10002A12 push offset unk_100064E0 ; struct AFX_EXTENSION_MODULE *
.text:10002A17 call ?AfxTermExtensionModule@@YGXAAUAFX_EXTENSION_MODULE@@H@Z ; AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int)
.text:10002A1C jmp short loc_10002A4E
.text:10002A1E ; ---------------------------------------------------------------------------
.text:10002A1E
.text:10002A1E loc_10002A1E: ; CODE XREF: DllMain(x,x,x)+A7j
.text:10002A1E cmp [ebp+fdwReason], 3
.text:10002A22 jnz short loc_10002A4E
.text:10002A24 push offset unk_10005450
.text:10002A29 lea ecx, [ebp+var_8]
.text:10002A2C call ??0AFX_MAINTAIN_STATE2@@QAE@PAVAFX_MODULE_STATE@@@Z ; AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *)
.text:10002A31 call ?AfxLockTempMaps@@YGXXZ ; AfxLockTempMaps(void)
.text:10002A36 push 0FFFFFFFFh ; int
.text:10002A38 call ?AfxUnlockTempMaps@@YGHH@Z ; AfxUnlockTempMaps(int)
.text:10002A3D push [ebp+hinstDLL] ; struct HINSTANCE__ *
.text:10002A40 call ?AfxTermThread@@YGXPAUHINSTANCE__@@@Z ; AfxTermThread(HINSTANCE__ *)
.text:10002A45 mov eax, [ebp+var_4]
.text:10002A48 mov ecx, [ebp+var_8]
.text:10002A4B mov [eax+4], ecx
.text:10002A4E
.text:10002A4E loc_10002A4E: ; CODE XREF: DllMain(x,x,x)+EDj
.text:10002A4E ; DllMain(x,x,x)+F3j
.text:10002A4E push 1
.text:10002A50 pop eax
.text:10002A51
.text:10002A51 loc_10002A51: ; CODE XREF: DllMain(x,x,x)+A1j
.text:10002A51 pop esi
.text:10002A52 leave
.text:10002A53 retn 0Ch
.text:10002A53 _DllMain@12 endp

由于输入限制 这只是一小部分 出错的地方是.text:10002A38 想知道具体是哪个函数出的问题 还请高手帮忙分析下~~~

在线等~~

第1个回答  2010-03-23
防止Windows自动删除临时映射表,调用AfxLockTempMaps将临时映射表锁定,而在使用结束后调用AfxUnlockTempMaps解锁。
相似回答