浅谈脱壳中的Dump技术7
本帖最后由 whypro 于 2010-5-27 17:34 编辑第二章. Dump程序的改进
“发展才是硬道理”
----邓小平
正如我们上面一节所做的,一个dump的雏形已经形成了,现在要做的是给它在原来的基础上做进一步的改进。
一. 获取Imageofsize
相信大家也感觉到了,在前面一章介绍的获取ImageofSize的办法实在很不可靠,对于一个加壳程序随意的修改他载入了内存中的PE头,是很稀疏平常的事情。所以用读取目标进程中的PE头并不是一个好主义。
现在我就来介绍一下一般的办法。对于LordPE他的dump是采用什么方法呢?它采用了对Module32Next来获取dump的进程的基本信息的。
BOOL WINAPI Module32First(
HANDLE hSnapshot, //这是先前的CreateToolhelp32Snapshot函数返回的快照
LPMODULEENTRY32 lpme //这个是指向MODULEENTRY32结构的指针
);
下面是MUDULEENTRY32结构:
typedef struct tagMODULEENTRY32 {
DWORD dwSize;
DWORD th32ModuleID;
DWORD th32ProcessID;
DWORD GlblcntUsage;
DWORD ProccntUsage;
BYTE *modBaseAddr;
DWORD modBaseSize; //这个是是我们要获取的关键
HMODULE hModule;
TCHAR szModule;
TCHAR szExePath;
DWORD dwFlags;
} MODULEENTRY32, *PMODULEENTRY32, *LPMODULEENTRY32;
下面就给出重新写的新的GetSizeOfImage的函数
int GetSizeOfImage(HWND hDlg,DWORD IDProcess)
{ 楼主很连续的发啊 谢谢了
页:
[1]