快乐虾
http://blog.csdn.net/lights_joy/
本文适用于
Xp sp3
vs2008
欢迎转载,但请保留作者信息
一个程序要想执行,总是要加载到内存里面的,为此我们使用下面的代码查询所有模块的信息,再找到它们在内存里面的对应位置:
HANDLE hProcess;
HMODULE hModule[0x70];
TCHAR strFileName[MAX_PATH];
DWORD cbNeeded;
MODULEINFO modinfo;
hProcess = GetCurrentProcess();
if(EnumProcessModules(hProcess, hModule, sizeof(HMODULE) * 0x30, &cbNeeded))
{
for(n = 0; n < cbNeeded / sizeof(HMODULE); n++)
{
GetModuleFileName(hModule[n], strFileName, MAX_PATH);
GetModuleInformation( hProcess, hModule[n], &modinfo, sizeof(MODULEINFO) );
// 根据lpBaseOfDll得到其它的数据
……………
}
}
于是就得到了下面的结果(数值均为十六进制):
名称 |
基址 |
大小 |
入口点 |
f:\embed\etools\Debug\bin\bash.exe |
00400000 |
0006f000 |
0045bb30 |
E:\WINDOWS\system32\ntdll.dll |
7c920000 |
00093000 |
7c932c28 |
E:\WINDOWS\system32\kernel32.dll |
7c800000 |
0011e000 |
7c80b63e |
E:\WINDOWS\system32\WS2_32.dll |
71a20000 |
00017000 |
71a21273 |
E:\WINDOWS\system32\ADVAPI32.dll |
77da0000 |
000a9000 |
77da70fb |
E:\WINDOWS\system32\RPCRT4.dll |
77e50000 |
00092000 |
77e5628f |
E:\WINDOWS\system32\Secur32.dll |
77fc0000 |
00011000 |
77fc2126 |
E:\WINDOWS\system32\msvcrt.dll |
77be0000 |
00058000 |
77bef2a1 |
E:\WINDOWS\system32\WS2HELP.dll |
71a10000 |
00008000 |
71a11638 |
f:\embed\etools\Debug\bin\cygwin.dll |
10000000 |
0022f000 |
100a17e0 |
E:\WINDOWS\system32\NETAPI32.dll |
5fdd0000 |
00055000 |
5fdd8b48 |
E:\WINDOWS\system32\PSAPI.DLL |
76bc0000 |
0000b000 |
76bc10f1 |
E:\WINDOWS\system32\WINMM.dll |
76b10000 |
0002a000 |
76b12b61 |
E:\WINDOWS\system32\GDI32.dll |
77ef0000 |
00049000 |
77ef6587 |
E:\WINDOWS\system32\USER32.dll |
77d10000 |
00090000 |
77d1b217 |
E:\WINDOWS\system32\SHELL32.dll |
7d590000 |
007f4000 |
7d5b74d6 |
E:\WINDOWS\system32\SHLWAPI.dll |
77f40000 |
00076000 |
77f451fb |
E:\WINDOWS\system32\ole32.dll |
76990000 |
0013d000 |
769ad0b9 |
E:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\MSVCP90D.dll |
10480000 |
000d6000 |
104f51b0 |
E:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\MSVCR90D.dll |
00470000 |
00123000 |
004ac6f0 |
E:\WINDOWS\system32\IMM32.DLL |
76300000 |
0001d000 |
763012c0 |
E:\WINDOWS\system32\LPK.DLL |
62c20000 |
00009000 |
62c22ead |
E:\WINDOWS\system32\USP10.dll |
73fa0000 |
0006b000 |
73fbe409 |
E:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll |
77180000 |
00103000 |
77184256 |
E:\WINDOWS\system32\comctl32.dll |
5d170000 |
0009a000 |
5d1734ba |
咱先找几个有意思的看看。
xp下用户程序空间分配(2):栈(2009-8-26)
xp下用户程序空间分配(1):大致框架(2009-8-26)