0012F2F4 00FC1056 /CALL 到 DispatchMessageW 来自 00FC1054
0012F2F8 0012F380 \pMsg = WM_PAINT hw = 420384 ("Form1")
00FC1025 51 push ecx
00FC1026 52 push edx
00FC1027 64:8B1D 380E000>mov ebx, dword ptr fs:[E38]
00FC102E 8B7B 0C mov edi, dword ptr [ebx+C]
00FC1031 897E 04 mov dword ptr [esi+4], edi
00FC1034 8973 0C mov dword ptr [ebx+C], esi
00FC1037 68 00000000 push 0
00FC103C 68 3EB341C8 push C841B33E
00FC1041 FF76 E4 push dword ptr [esi-1C]
00FC1044 C643 08 00 mov byte ptr [ebx+8], 0
00FC1048 F643 04 5F test byte ptr [ebx+4], 5F
00FC104C 75 29 jnz short 00FC1077
00FC104E 8B46 08 mov eax, dword ptr [esi+8]
00FC1051 8B40 1C mov eax, dword ptr [eax+1C]
00FC1054 FF10 call dword ptr [eax]
下面是寄存器的值:
有谁能告诉我 DispatchMessageW() 函数的参数在哪里?
还有 EAX 7B44332C System_W.7B44332C 是什么东西?C#程序 的架构是不是与 WIN32程序 的不太一样?
反汇编 PhotoShop.EXE 那么大的程序,都能找到 DispatchMessageW() 的参数,怎么这个小小的C#程序就找不到?
4 个解决方案
#1
这个问题很难吗?诸位各位帮帮忙看看啊,呵呵,,,,,
#2
你看寄存器的值有啥用?要看堆栈中的值
DispatchMessageW的参数正常情况下应该被压入堆栈。
DispatchMessageW的参数正常情况下应该被压入堆栈。
#3
呵呵,我就是在找堆栈哎,版主帮忙看一下到底在哪里?
0012F2F4 00FC1056 /CALL 到 DispatchMessageW 来自 00FC1054
0012F2F8 0012F380 \pMsg = WM_PAINT hw = 420384 ("Form1")
00FC1025 51 push ecx
00FC1026 52 push edx
00FC1027 64:8B1D 380E000>mov ebx, dword ptr fs:[E38]
00FC102E 8B7B 0C mov edi, dword ptr [ebx+C]
00FC1031 897E 04 mov dword ptr [esi+4], edi
00FC1034 8973 0C mov dword ptr [ebx+C], esi
00FC1037 68 00000000 push 0
00FC103C 68 3EB341C8 push C841B33E
00FC1041 FF76 E4 push dword ptr [esi-1C]
00FC1044 C643 08 00 mov byte ptr [ebx+8], 0
00FC1048 F643 04 5F test byte ptr [ebx+4], 5F
00FC104C 75 29 jnz short 00FC1077
00FC104E 8B46 08 mov eax, dword ptr [esi+8]
00FC1051 8B40 1C mov eax, dword ptr [eax+1C]
00FC1054 FF10 call dword ptr [eax]
难道是在这里?不太明白C#的程序参数位置怎么不太一样呢?
00FC1041 FF76 E4 push dword ptr [esi-1C]
#4
1堆栈不全
2 确定堆栈捕捉的时机正确
3 确定你调用的是你想要的api
2 确定堆栈捕捉的时机正确
3 确定你调用的是你想要的api
#1
这个问题很难吗?诸位各位帮帮忙看看啊,呵呵,,,,,
#2
你看寄存器的值有啥用?要看堆栈中的值
DispatchMessageW的参数正常情况下应该被压入堆栈。
DispatchMessageW的参数正常情况下应该被压入堆栈。
#3
呵呵,我就是在找堆栈哎,版主帮忙看一下到底在哪里?
0012F2F4 00FC1056 /CALL 到 DispatchMessageW 来自 00FC1054
0012F2F8 0012F380 \pMsg = WM_PAINT hw = 420384 ("Form1")
00FC1025 51 push ecx
00FC1026 52 push edx
00FC1027 64:8B1D 380E000>mov ebx, dword ptr fs:[E38]
00FC102E 8B7B 0C mov edi, dword ptr [ebx+C]
00FC1031 897E 04 mov dword ptr [esi+4], edi
00FC1034 8973 0C mov dword ptr [ebx+C], esi
00FC1037 68 00000000 push 0
00FC103C 68 3EB341C8 push C841B33E
00FC1041 FF76 E4 push dword ptr [esi-1C]
00FC1044 C643 08 00 mov byte ptr [ebx+8], 0
00FC1048 F643 04 5F test byte ptr [ebx+4], 5F
00FC104C 75 29 jnz short 00FC1077
00FC104E 8B46 08 mov eax, dword ptr [esi+8]
00FC1051 8B40 1C mov eax, dword ptr [eax+1C]
00FC1054 FF10 call dword ptr [eax]
难道是在这里?不太明白C#的程序参数位置怎么不太一样呢?
00FC1041 FF76 E4 push dword ptr [esi-1C]
#4
1堆栈不全
2 确定堆栈捕捉的时机正确
3 确定你调用的是你想要的api
2 确定堆栈捕捉的时机正确
3 确定你调用的是你想要的api