安卓手机打开.exe文件的步骤:1、先安装exagear,将obb数据包放在手机内部存储的Android/obb/com.eltechs.ed目录下面;2、打开软件等待安装配置完成;3、把自己的exe软件放在内部存储的“download”目录下,然后“查找安装”;4、执行成功后就会进入软件界面。
exe文件介绍
EXE文件分为两个部分: EXE文件头和程序本体。exe文件比较复杂,属于一种多段的结构,是DOS最成功和复杂的设计之一。每个exe文件包含一个文件头和一个可重定位程序的映像。文件头包含MS-DOS用于加载程序的信息。例如程序的大小和寄存器的初始值。文件头还指向一个重明激定位表,该表包含指向程序映象中可重定位段地址的指针链表。
如何编辑exe文件内容
1、打开十六进制编辑器;
2、浏览并打开待编辑的十六进制文件;
3、查找待编辑的特征,可能是某个字符串,也有可能是尺纤某个地址值;
4、找到后,在相关位置双击,出现修改对话框,输入待修改的值。通常陵槐仿可以选择十六进制输入,也可以选择字符输入;
5、编辑后保存。
1 内存加载exe64是一种将64位可执行文件加载到 *** 作系统内存中进行运行的过程。2 加载64位可执行文件需要使用x64架构的处理器,同时 *** 作系统也必须是埋雀含64位的。
3 内存加载exe64与32位可执行文件的加载方式略有不同,但目的都是为了让程序能够在内存中运行。
此外,加载可执行文岁悔件还需要考虑内存分配、代码签名校验弯笑等因素。
cssPE(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倍把。
并且其中对空的运用也是十分的巧啊,直呼学到了学到了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)