动手修改EXE,给他人程序添加皮肤
遇到一个MFC程序,想给它加上皮肤,涉及到一些PE文件的修改,下面与大家分享一下。
我选择的皮肤库是SkinMagic,它的使用还是比较简单的。
一个MFC小程序,先用PEiD扫描,看看概况:
LordPE重构PE设置中勾选“使PE可用”和“清除重定位”,重构后发现程序运行异常,是因为LordPE将重定位段去除后,没有去掉文件特征中相应的值,按下图勾选保存即可:
勾选后值为0x103,此时程序已经可以正常运行了。
皮肤库我准备用的是SkinMagic,使用前先破解SkinMagic.dll,去掉烦人的NAG。如果此时加入IID(镜像导入描述符),LordPE会重新生成导入表到新区段,.rsrc资源段不再是最后一个区段,再加入皮肤文件进资源时会出错(当然外置皮肤文件就没关系了),所以我先加入皮肤文件进资源部分:
加入后程序又运行不了了,应该是加入资源后,镜像大小没有修正的缘故。LordPE再次重建,只勾选“使PE可用”。
现在加入IID。在LordPE中打开导入表,添加镜像导入描述符:
看到LordPE添加的区段,只装有导入表信息和刚才新加的IID、Thunks:
接下来用C32Asm扩大区段,向文件末尾也就是新区段的尾部追加空数据:
共添加了256(0x100)字节,保存文件。用LordPE扩大区段大小:
RawSize更改为1D4h+100h=2D4h,VirtualSize在1000h以内,虚拟内存页4K对齐,VS不改。同时将区段特征中勾选“包含可执行代码”、“可执行”:
原本的大小是1D4,也就是LordPE添加IID、Thunks所用的大小,我们的代码要在它们之后添加。
区段RVA是00B5B000,将00B5B1D4设置为入口点,保存文件。
然后计算一下刚才添加的三个函数的IAT位置:
加上镜像基址为00F5B048(InitSkinMagicLib)、00F5B04C(LoadSkinFromResource)、00F5B050(SetDialogSkin),它们的调用方式如下,其中第二个函数的后面两个参数是皮肤文件在资源中的位置,在开始用Restorator添加资源时看到的。
载入到Ollydbg中,添加调用代码,需要用到字符串的直接在代码后面一点的位置写入就好了,最后记得跳回原入口点,RVA是002F40C0,加上镜像基址为006F40C0。
保存文件,大功告成~
做壳那么久,我对PE格式有了大概的认识。PE文件是有灵魂的文件,只有它们能直接在Windows上运行。本文尚有不到之处,恳请网友与前辈们多指教!
任天(Ratin)
2015-02-05
动手修改EXE,给他人程序添加皮肤相关推荐
- golang EXE程序添加图标和详细信息(版本号,版权,公司信息等)
golang EXE程序添加图标和详细信息(版本号,版权,公司信息等) 为什么要添加图标和详细信息 作为桌面程序,有一个图标,显得更正式一些.详细信息有版本号方便做版本识别.算了,编不下去了.不管那么 ...
- Qt发布exe软件及修改exe应用程序图标
1.修改exe应用程序图标 1)准备一个ico图标 需要准备一个ico图标,可以将png图片转换成ico图标,图标大小可以设置成128x128. 可以在图标在线转换网站进行在线转换.转换完毕将xx ...
- qt修改程序图标名称_解决Qt应用程序添加icon图标,修改窗口图标以及添加系统托盘问题...
一.Qt应用程序添加icon图标的方法: 首先,我们需要先准备两个文件,一个是icon图标,另一个是rc文件,我分别命名为"myApp.rc"和"soft.ico&quo ...
- HOOK大法实现不修改程序代码给程序添加功能
[文章标题]: HOOK大法实现不修改程序代码给程序添加功能 [文章作者]: 0x18c0 [软件名称]: Scylla [使用工具]: OD.Stub_PE.ResHacker [版权声明]: 本文 ...
- qt 修改.exe文件图标_如何在没有错误的情况下更改压缩的.EXE文件上的图标
qt 修改.exe文件图标 We've previously shown you how to modify the icon on an .EXE file, but if you've tried ...
- win10 + Terminal + WSL+ oh-my-zsh 配置漂亮实用的windows终端及配置ubuntu不加.exe打开windows程序
win10 + Terminal + WSL+ oh-my-zsh 配置漂亮实用的windows终端及配置ubuntu不加.exe打开windows程序 未安装wsl/wsl2的请参照以下链接自行安装 ...
- Qt修改exe文件图标
修改Qt生成exe的图标 1. 直接添加.ico 首先要注意的一点是,你的.ico文件不可以是直接用过jpg等图片格式直接修改后缀名形成的,必须是用转换工具来通过jpg转换成ico的格式,不然就会出现 ...
- [WinForm]写一个小程序把指定目录的程序添加到开机自动启动(无法绕过360检查)
网友阿东提示了这样一个需求:写一个小程序把指定目录的程序添加到开机自动启动,跳过360 我就到百度上搜了一下:C# 将程序添加到启动项 (写入注册表),及从启动项中删除 - 赤狐(zcm123) - ...
- VC++编程实现修改EXE文件图标
VC++编程实现修改EXE文件图标 刚才发现论坛上面有网友问:如何通过编程实现修改EXE文件的图标,类似于 熊猫烧香 的效果!自己也对这个比较感兴趣网上找了找,找到了两种方法,可以满足大家都要求了,这 ...
最新文章
- APP开发两年的心得:App代码架构设计(1)
- 金笛邮件分布式邮件设置指南
- @classmethod和@staticmethod对初学者的意义? [重复]
- 站长们都会,但是都会写错的robots!
- 抓取html 中文乱码,利用代码抓取网页数据,出现中文乱码问题
- Tensorflow2.0版本 笔记
- 常见 Java 字节码 指令 助记符
- ACL访问控制列表【笔记|实验】
- 二.路径规划---二维路径规划实车实现---gmapping+amcl+map_server+move_base
- 三. 2d-2d三角化求路标point
- Pytorch实战从入门到精通第一部分——手写字符识别全流程
- 机器学习:多变量线性回归
- 博时基金的大数据平台建设之道
- 桌面无计算机 win10,win10雨木林风系统桌面无计算机图片的处理办法
- Java实习日记(2-2)
- 2020 JUSTCTF F@k3 0ff1c@l REVERSE WP
- 论文学习笔记-M2Det
- matlab加特定频率的噪声,如何在Matlab/Simulink中生成指定的白噪声和有色噪声
- AtCoder Beginner Contest 178 C
- 基于RT1052 Aworks 测试PXP图像混合功能(十三)
热门文章
- 短信平台的相关资料之短信猫
- peer probe: failed: Probe returned with 传输端点尚未连接
- Excel 2013 下拉为“快速分拆”调整为“填充序号”
- EmEditor 下载
- oppo 升级 android 8.1,OPPO首发安卓8.1更新了什么
- 代码出现Bug的三种表情,太传神了!
- 3D建模好学吗?日积月累,方能成事
- 通过nodeJS如何实现爬虫功能
- Python wordcloud 库 自学2
- 图像处理(九)高斯金字塔及拉普拉斯金字塔