远程内存加载exe

远程内存加载exe,第1张

css

PE(dll、exe)文件内存加载(手动映射)小记

魔法狮子

原创

关注

3点赞·1189人阅读

前言

        PE文件即Windos *** 作系统下的可执行文件的文件结构名称,其中包含但不限于.dll .exe .sys .ocx等等。内存加载PE顾名思义就是通过内存,而非文件。这里的内存指代的是直接加载源。

        这个技术其实很早之前就有了,网上也有很多开源可参考的代码,但是仅做一个伸手党那是绝对不行的,首先这些历史悠久的代码存在或多或少的bug,或莫名的崩溃咯,或32和64不兼容咯,各种问题皆是。当然,这些前辈先贤的代码一定是具有非常大的参考和开拓意义的。

技术用途

        所谓的内存加载其实就是在加载过程中不适用系统提供的方法,而自行实现这些方法。宏观一点来讲,加载这个 *** 作也包括调度和资源分配。这里调度自然是加载代码。但是资源其实这里仅仅涉及线程和内存的分配。这两项只能使用系统的,但是整个调度过程由我们自己实现。

        因此由于加载过程除掉内存和线程资源,其他在映射过程产生的记录信息等通通都不会存在。就是说除了线程和内存,模块的地址、名称、文件等正常加载记录的所有信息几乎都不存在。这样的一个包含可执行代码和资源的模块在非内存的层面几乎是隐身的。

        看到上面的用途很多人又开始想为所欲为了,但其实除开灰色的用途意外,该技术完全可以使用在正常的编程中,这可以很大限度上提升破解的难度。将编译型的语言一下子提升到解释语言类似的层次,我们对于内存资源的管控也可以随时让我们更新代码,实现热更新等功能。并且在很多需要授权验证等程序上也可以加大程序的保密性,将软件的破解难度大大提升。

实现要点

               PE映射主要分为3部分

                1、区段文件复制,将区段文件进行内存对齐复制到预定偏移位置

                2、重定位修复,将代码中涉及到重新定位的地方按照将要加载到凯耐的位置进行设置

                3、函数导入设置,被加载模块所用到的其他模块的函数进行导入 *** 作,保证函数可用

小技巧

        关于兼容性我们完全可以在源码中进行一些简单的判断,对其分别进行设置,毕竟在64位PE文件加载中只有少数字段扩展到了64位。

        并且可以进行一定的封装,将固定不动的部分进行隐匿封装,而将会不同的部分以接口的方式让其可以进行之后的覆盖实现。在这样简单的实现就可以在应用层和驱动层都愉快地玩耍了。

        当然在驱动层玩耍的谨基话,代码要稍微严谨一些。

我的实现

        应用层实现(内存加载kernelbase获取导出调用测试):

 内核实现(正常加载驱动A使用内存加载代码加载驱动B,b线程循环输出):

子类化覆盖接口实现:

 

 后记

       祥孙谨总共就1800行代码,其中将内存分配,获取地址的方法导出,可以让我们自行覆盖,这样的好处是可以在本进程也可以进行跨进程加载。

        整个代码写完后对PE文件的加载过程有了更清晰的认识,大概比以前清晰100倍把。

并且其中对空的运用也是十分的巧啊,直呼学到了学到了。

一、将制作好的【大蕃薯u盘启动盘】插入电脑的usb插口,随后重启电脑,在屏幕出现开机画面时按下电脑的启动快捷键,选择u盘启动后进入大番薯主菜单界面,接着选择“【02】运行大番薯Win2003PE增强版(装机液氏推荐)”后按回车键确认进闹族散入pe系统。

二、进入pe系统后,双击桌面上的“手动Ghost”工具。

三、运行“手动Ghost”工具之后,在d出的窗口中选择“OK”即可。

四、接着在窗口中依次选择”Local→Partition→To Image“,

五、上述 *** 作结束后会d出穗洞一个窗口,这个步骤是要我们选择所备份的物理磁盘,选择好物理磁盘点击“OK”即可,选择完毕后会d出窗口让我们选择所要备份的硬盘分区,选择我们所要备份的分区后,点击“OK”按钮,接着会让我们选择所存放在除了备份分区之后的其他分区,我们可以找一个空间比较大的分区进行存放,给备份出来的文件取名保存。

六、保存后会d出一个选择窗口,其中fast代表着时备份时的压缩比例低效率最快的选项,而high代表着备份时的压缩比例最好效率高的选项。通常情况下我们选择“fast”此选项。接着选择“yes”即可开始备份


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12288260.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存