一个简单dump工具的实现

一个简单dump工具的实现

ID:5288112

大小:189.11 KB

页数:3页

时间:2017-12-07

一个简单dump工具的实现_第1页
一个简单dump工具的实现_第2页
一个简单dump工具的实现_第3页
资源描述:

《一个简单dump工具的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、AMMINBANALYSEs0cket)前置知识VC关键讯编程、DumpT具一个简单dump工具的实现文/李霞Dump是从内存中抓取~块数据保存在硬盘除了用这个结构体以外,我们还可以使用中。在脱壳时到达0EP后就要进行DumP。自己其他的比如下面的结构体:写一个dumP工具很简单,通过本文我们将自己实现一个控制台版的dumP工具。DumP是从内存抓取数据到硬盘的.因此我们需要进程的lD和这个进程中的虚拟地址,这样才可以从内存中读出数据写入到硬盘当中。既然是控制台版的.我们就需要为程序提供两在LordPe中使用的就

2、是这个结构体。我们看个参数,第一个是进程lD,第二个是dumP起始一下0D里的代码处的虚拟地址。有了dumP的起始处的虚拟地20001845FFl5F0240020CALLDWORD址,还缺少一个dumP的长度,这个长度也可以PTRDS:l200024F0l:psapi.Enuml~oces$IvloduLes通过参数指定,指定我们要dumP多大的一块内2ooOl84B85C0TESTEAX,EAX存数据到磁盘上。由于我们这里的dumP是用在20ool84D75OCJNZSHORTDrocs.脱壳上的所以dumP

3、的长度可以不用指定,只2000185B要获得模块的映像大小就可以了。获得模块映2O00l84F56PUSItESI2o00l850FF15O8lO0o2OCALLDWORDPTR像大小可以通过下面的结构体得到:DS:[<&KERNEL32CloseHandl>tyl~defstructtagM0DULEENTRY32{:kerneL32.CloseHand~eDWORDdwSize;2O0ol856E96FFFFFFFJMPprocs.20o0l7CADWORDth32ModuleID:2ooOl85B6AOCP

4、USHOCDW0RDth32ProcessID:20ooI85D8D958CFCFFFFLEAEDX,DWORDDWORDGlbtcntUsage;PTRSS:IEBP374IDWORDProccntUsage;;这里是/'IODULEINFO结构体BYTEmodBaseAddr;2ooO186352PUSHEDXDWORDmodBaseSize;200018648B85g4FAFFFFMOVEAX,//模块映像大小DWORDPTRSS:[EBP57C】MODULE}1Module:2ooO186A50PUSHE

5、AXTCHARszModulelMAX—MODULE—AME32+1】;200Ol86B56PUSHESITCHARszExePathIMAXPATHI;2000l86CFFl5F4240020CAI

6、LDWORD//模块对应的磁盘文件路径PTRDS:l20oo24F4}}MODULEENTRY32;:I~api.tI.dulnforrna~iontypealefMODUIEENTRY32PMoDU1EENTRY32;2Of)(}i87285C0TESTEAX,EAX啊一—2010~.03●⋯⋯⋯⋯⋯一)栏目编辑

7、)socket)再看一下EBP-374的内容“O013F78CO0CloseHandte(hSnap);return—l:0O40OOO0O00100COE840O0,刚l’好~I:IMODULEINFO结构体对应。在我们的程序SetFi1ePointer(hFi1e,imgDos~eIfanew,0,里,将使用MODULEENTRY32这个结构体。好FILE—BEGIN);了,看下完整代码吧,具体如下:IMAGENTHEADERSimgNt=fO};ReadFile(hFile,&imgNt,sizeof#in

8、clude”stdafx.h”(IMAGENT—HEADERS)&dwReadNum,NULL);#include{#includeCloseHandle(hFife);intnmin(intargc,char*argvil)CloseHandle(hSnap);{return—l:if(argc!=3){f//在罐盘文件上的PE决中获取文件的映像大小DWORDB

9、aseSize:me32.modBaseSize;ret’tlrn1:printf("BaseSize=%x\r\n{f,BaseSize);}//进程IDprintfme32.modBaseSize=%x\r\n”,me32.DWORDdwPid=atoi(argv[11);modBaseSize);//避过铷建进程模块抉照得列谈避程横映所在磁盘//比较快照申荻褥的蛱像

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。