社区
硬件/系统
帖子详情
如何在PE可执行文件嵌入自己的可执行程序
bojue520
2009-06-25 11:08:38
如何在PE可执行文件嵌入自己的可执行程序
...全文
95
4
打赏
收藏
如何在PE可执行文件嵌入自己的可执行程序
如何在PE可执行文件嵌入自己的可执行程序
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
一笑拔剑
2009-06-25
打赏
举报
回复
先把自身程序写入资源内
然后修改入口的跳转
先跳到自己的程序运行完毕后跳会原先入口就可以了
gyk120
2009-06-25
打赏
举报
回复
找到PE相应的节,把自身作为资源形式注入
skyxie
2009-06-25
打赏
举报
回复
www.pediy.com有文章
DocsEmbedder:在
PE
文件
上
嵌入
文档的工具
DocsEmbedder 请注意,这是Beta软件。 我对任何数据丢失概不负责。 DocsEmbedder是一种工具,可以将一组与html相关的文档
文件
嵌入
到
PE
(便携式可
执行
文件
)
文件
中。 然后可以使用带有兼容浏览器或ActiveX控件的res://协议来引用和可视化该文档。
嵌入
文档的一种方法是编写所需的markdown
文件
,使用构建站点,然后使用
嵌入
生成的
文件
,然后首先对其进行拼合。 该文档实际上
嵌入
在DocsEmbedder的二进制发行版中,可以通过单击其“帮助”菜单项将其可视化。 下载 构建存档。 档案
文件
名称 描述 docs \ 包含文档的
文件
夹,使用MkDocs构建。 RES \ 包含图标资源和
程序
徽标的
文件
夹。 影印 GNU通用公共许可证。 复制少 GNU较小通用公共许可证。 DocsEmbedder.ahk 主源
文件
。 LibSetup.ahk
AutoIt-Rip
pe
r:提取
嵌入
在
PE
二进制
文件
中的AutoIt脚本
自动开膛手 这是什么 这是一个(半)简短的python脚本,允许从
PE
可
执行
文件
中提取“已编译”的AutoIt脚本。 参考 该脚本主要基于2个3种资源,如果您想更深入地了解整个AutoIt内容,请肯定地将它们检查出来: 支持的AutoIt版本 准备好: EA05 AutoIt3.00 EA06 AutoIt3.26 未知: JB01 AutoHotKey JB01 AutoIT2 安装 python3 -m pip install autoit-rip
pe
r 或者,如果您想从源代码安装该版本,请
执行
以下操作: git clone https://github.com/nazywam/AutoIt-Rip
pe
r.git cd AutoIt-Rip
pe
r python3 setup.py develop 跑步 从python脚本中: from autoit_rip
pe
r i
SVN 使用方式基础实战精讲(大神必经之路)
(6)一致的数据处理方式 Subversion 使用二进制差异算法来异表示
文件
的差异, 它对文字(人类可理解的)与二进制
文件
(人类无法理解的) 两类的
文件
都一视同仁。 这两类的
文件
都同样地以压缩形式储存在档案库中, 而且...
一种
PE
文件
RSA验证加密算法 (2005年)
研究了非对称RsA加密算法及
PE
文件
结构,基于Derome的RSA密钥快速生成方法,提出了利用高级语言ASM编写
嵌入
RSA验证DLL和直接修改
PE
文件
来加密Win32平台下的
PE
可
执行
文件
的方法。该方法避免了耗时的Euclidean算法,可并行处理,同时在
PE
文件
验证时
嵌入
了DLL来实现,具有很好的安全强度。
windows上可编译Linux内核
编译过程: 1). 解压后默认的
文件
夹位置是在D:\Linux-0.11,如果你不是将
文件
解压到该目录下, 你要修改MinGW32目录下的MinGW32.bat
文件
,将里面的PATH指向MinGW32的bin目录. 2). 打开Linux-0.11目录,双击MinGW32.bat快捷方式,打开控制台. 3). make 一下,生成1.44M的Boot.img软盘镜像,要清除编译结果请"make clean" 4). 如果安装了bochs,直接双击bochsrc.bxrc即可运行Linux-0.11了. 5). 也可用其它虚拟机加载Boot.img后运行,如果出现Kernel panic,请把虚拟机里的硬盘删了 6). 在出现Insert root floppy and press ENTER以后,将rootimage-0.11.img载入虚拟软驱,回车 这就是能在windows环境下编译的Linux 0.11了,不是在Cygwin,也不是在虚拟机里,而是使用MinGW. 下面是在Windows下编译Linux 0.11会遇到的问题和对原
文件
作的修改: 1.赵炯博士已经将汇编
程序
中引用的C变量(包括
嵌入
汇编的C变量)的下划线去掉了,但MinGW的gcc可能是为了与其它Windows下的编译器保持兼容,并不能识别这些不带下划线的C变量,因而还得把原先已经在汇编
程序
中去掉下划线的C变量加上下划线,同时也要把被C
程序
引用的汇编
程序
中的变量加上下划线. 2.MinGW中不带as86编译器,因而把boot目录下原先用as86编译的bootsect.s和setup.s两个
程序
修改成能用nasm编译的
程序
.并且更名为bootsect.asm和setup.asm. 3.在Makefile作的主要修改: 在LDFLAGS中加了--image-base 0x0000 将elf_i386改成i386
pe
将cd 与 make 之间的;改成&,如cd kernel ; make 改成cd kernel & make MinGW中没有sync这个
程序
,可以把它注释掉,更简单的办法是写一个sync.c,这个sync.c只包含一个空的main函数,编译成sync.exe 因为类似的原因,make dep会出错 4.生成的system
文件
是
PE
格式的(
PE
是Portable Executable的简称),这是windows下的可
执行
文件
的格式,显然是不能直接
执行
的,必须加以转化.我实现了通过两种方式加以转化. 1)写一个
程序
Trans.cpp将system.exe里的代码和数据从
PE
文件
里解析出来,生成一个system.bin
文件
,这个
文件
是能被setup模块直接加载的.我已经将这个
程序
放在了Linux-0.11的tools目录下,要微软的编译器编译. 2)自己写一个
PE
Loader,这种方式比较麻烦,但是想想自己也能做一个
PE
Loader,还是满有成就感的,尽管这是一个最简单的Loader.代码是加在Linux-0.11-With-
PE
-Loader\boot目录下的setup.asm
文件
里,里面有详细的注释. 5.对tools下的build.c作了修改,使其能生成可引导的1.44M的软盘镜像
文件
Boot.img 6.在Link的过程中,init目录下的main.c会出现以下错误: boot/head.o(.text+0x540c):fake: undefined reference to `_main' init/main.o(.text+0x16f):main.c: undefined reference to `_alloca' init/main.o(.text+0x174):main.c: undefined reference to `__main' make: *** [tools/system.exe] Error 1 第一个和最后一个错误还好理解,但中间那个错误那就莫明其妙了,因为Linux 0.11根本没有这个函数,在gcc的编译选项里也有-nostdinc .有一个解释是main函数不是一个普通的函数,MinGW gcc会对它作特殊的处理.解决的办法其实也很简单,把main.c下面的main函数改名为_main,或者是干脆把它改成另外一个函数,就改成start吧.记得把head.s里的_main也改了. 在最后,要感谢《自己动手写操作系统》的作者于渊,其实我也是先将原先只能在Linux下编译的书里源代码用MinGW移植到Windows下编译的过程中才试着在Windows下编译Linux 0.11源代码的,有了在Windows下编译Linux 0.11源代码的经验,移植高版本的源代码,像0.12,0.95,0.96等等版本应该不会有太大的麻烦了。 也要感谢Linux内核完全注释的作者赵炯博士,是他拉接了操作系统与操作系统爱好者的距离. 最后,我也非常想和操作系统爱好者们共同交流心得体会,也希望能多认识一些朋友. 我的网名:flyfish 我的QQ:785606288 E-mail:I2CBus@126.com 另外,要转载请保持本
文件
的完整性,请尊重别人的劳动果实. 修改日志: 08/3/29 修改了一下Makefile,旧的Makefile在某些
文件
更新后还会重新编译。 修改了Trans.cpp中的一个dug,该dug在translate MinGW gcc编译的
程序
时可能会出错。用MinGW gcc 编译的
程序
的VirtualAddress的形式可能是0xFFC1000这样的形式,其实0x1000才是它的VirtualAddress 08/4/2 修改了下MinGW32.bat,现在已经不用重设路径了。 08/4/4 Trans.cpp还是有错,如果VirtualAddress>0xffff,那么生成的system.bin就错了,bochs调试时会一直重启。 权宜之计,把0xffff再改成0x3ffff,这样VirtualAddress就不能大于0x3ffff,不知谁有更好的解决方法,
硬件/系统
2,641
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章