反向进程注入及隐藏--动手做一个最简单的PELoader.docxVIP

反向进程注入及隐藏--动手做一个最简单的PELoader.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
反向进程注入及隐藏--动手做一个最简单的PELoader

反向进程注入及隐藏--动手做一个最简单的PELoader动手做一个最简单的PELoader一.最近因为公司的项目需要,顺带的学习了一点和PELoader相关的东西,恰见网上正在沸沸扬扬的谈论虚拟脱壳。本人不才,实在是没能力也没精力去写一个真正意义上的虚拟机,因此尝试做了一个简单而偷懒的PE加载器。这个PE加载器也可以看做是VM的前身吧。我想它可以成为一个简易脱壳工具或者用户态的进程内调试器基础。二.?1.公司的项目需要实现但进程内多插件并发运行,也就是说,1个PID需要同时给n个进程使用,这牵扯到更麻烦的进程内内存切换工作。2.实现反向进程注入,隐藏进程,这样做的RK更不容易被发现。3.自从离开了安全的伤心地之后,一直堕落于做IM软件的Server,很久没有碰windows了,需要活动一下大脑三.PELoader完成了什么工作?这个PELoader写得很乱很粗糙,全部代码+调试基本上是在两天之内堆完的。由于时间关系,我只实现了它如下几个特性:1.????在普通用户权限下实现用户态的PE文件启动执行。2.????被启动的程序无进程,而嵌与宿主(PELoader)程序体内,与宿主共享一个进程ID3.????实现了大部分资源文件的加载4.????实现了进程内API调试,跟踪5.????最基础的内存Dump脱壳(没做OEP等的修正工作)6.????宿主可在程序被加载启动后继续执行7.????支持console和gui程序执行四.目前可支持的程序1.cmd.exe 经过测试,我发现存一些显示资源的小问题,但仍然可以比较健壮的运行2.Excel.exe(Office10) 这个程序在PELoader里运行的非常好,但还是有一个小Bug,就是窗体资源图标不是很对劲…问题还没找到五.目前的问题还是因为时间的问题,好多东西我没处理好,如果有朋友能改出一个不错的版本,希望可以mail我一份:msfocus@1.目前我正在做多进程共享的问题,在进程间切换的时候,如果完全切换所有被使用的内存,程序将异常的慢。如果仅切换部分需要使用的内存,将牵扯到复杂的虚拟页表切换,搞得很头大2.由于进程自身资源错位,因此需要拦截非常多的API,写到手酸,还是没有写全,不知道哪里能有个完整的需要拦截的API的列表。3.在debug状态下运行,经常崩溃,烦躁…4.很多程序在加载时候会失败或者启动之后崩溃,我一直没功夫检查这个错误六.技术原理说明正常情况下,一个PE文件被系统加载后,系统会自动处理好IAT和IID表,然后找到OEP开始执行代码,一般情况下call OEP后的第一条API为GetVersion。我们要动手做一个PELoader则必须先将进程代码注入自己的内存空间,并手工解决IAT,定位OEP,如果你以为仅仅如此,那么我保证你的代码最多运行你自己写的一小段shellcode要运行一个真正的进程,还需要做类似资源管理,句柄管理等很多的工作。没关系,我们一个一个来:首先解决加载问题。加载可以有很多方式如:alloc一块内存保存或利用LoadLiarbryEx作为一个数据文件加载。但无论是哪种方法都没有解决IAT的问题,如果我们自己手工解决IAT,可能需要比较多的计算过程,这个过程可以参考kanxue的Linxer写的PE重定位函数。但本文所要提的并不是这种方法。也许有人说,有文章提到过ntdll.dll中自己有哪些信誉好的足球投注网站并导出LdrLoadDllEx就可以实现加载并解决IAT,但实际上这种方法至少在我的winxp系统上是失败的。所以我采用了另外一种方式用LoadLibrary来加载:A.????修改PE头中的Characteristics属性,为其增加IMAGE_FILE_DLL属性,此外我还为其增加了一个非必须的 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP属性。让LoadLibrary误认为这是一个DLL文件。B.????将PE选项部分的AddressOfEntryPoint设置为空,至于原因不要奇怪,msdn是这样描述的:AddressOfEntryPoint?Pointer to the entry point function, relative to the image base address. The entry point function is optional for DLLs. When no entry point is present, this member is zero.?我们这样做只是为了让LoadLibrary认为这个假DLL文件没有dll_main入口点。因为实际上,我们的EXE文件只有main入口点。C.????HOOK API,我们需要HOOK非常多的API来保证这个PE文件能够正确的获取自身句柄,资源等

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档