首页 电脑 电脑学堂 查看内容

把执行文件内存中的DLL的代码全部保存下来

2008-9-18 16:40 571 0

摘要: 有时,有些软件有保护,看不到他程序内部是怎么一个样,如果想简单的把他的内存保存下来!我写了一个简单的函数,调用一下就可以把DLL和EXE的内存里的信息全部导到文件里!到时再慢慢查吧!uses ...
关键词: nbsp lppe index Hand Add Dword found File begin TFileStream

有时,有些软件有保护,看不到他程序内部是怎么一个样,如果想简单的把他的内存保存下来!我写了一个简单的函数,调用一下就可以把DLL和EXE的内存里的信息全部导到文件里!到时再慢慢查吧!uses TlHelp32;procedure GetDLLMemToFile;var  PID: Dword;  Hand: THandle;  lppe: TModuleEntry32;  found: boolean;  File111: TFileStream;  dd, Add1, Add2, index: dword;begin  Hand := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessID);  lppe.dwSize := SizeOf(lppe);  found := Module32First(Hand, lppe);  while found do  begin    File111 := TFileStream.Create('debug\' + extractfilename(lppe.szExePath), $FFFF);    Add1 := dword(lppe.modBaseAddr);    Add2 := Add1 + lppe.modBaseSize;    index := dword(lppe.modBaseAddr);    while true do    begin      dd := Pdword(index)^;      File111.WriteBuffer(dd, 4);      inc(index, 4);      if index >= Add2 - 4 then break;    end;    File111.Destroy;    found := Module32Next(Hand, lppe);  end;  CloseHandle(Hand); // 释放快照句柄end;
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部