遇到一个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,给他人程序添加皮肤相关推荐

  1. golang EXE程序添加图标和详细信息(版本号,版权,公司信息等)

    golang EXE程序添加图标和详细信息(版本号,版权,公司信息等) 为什么要添加图标和详细信息 作为桌面程序,有一个图标,显得更正式一些.详细信息有版本号方便做版本识别.算了,编不下去了.不管那么 ...

  2. Qt发布exe软件及修改exe应用程序图标

    1.修改exe应用程序图标 1)准备一个ico图标   需要准备一个ico图标,可以将png图片转换成ico图标,图标大小可以设置成128x128. 可以在图标在线转换网站进行在线转换.转换完毕将xx ...

  3. qt修改程序图标名称_解决Qt应用程序添加icon图标,修改窗口图标以及添加系统托盘问题...

    一.Qt应用程序添加icon图标的方法: 首先,我们需要先准备两个文件,一个是icon图标,另一个是rc文件,我分别命名为"myApp.rc"和"soft.ico&quo ...

  4. HOOK大法实现不修改程序代码给程序添加功能

    [文章标题]: HOOK大法实现不修改程序代码给程序添加功能 [文章作者]: 0x18c0 [软件名称]: Scylla [使用工具]: OD.Stub_PE.ResHacker [版权声明]: 本文 ...

  5. qt 修改.exe文件图标_如何在没有错误的情况下更改压缩的.EXE文件上的图标

    qt 修改.exe文件图标 We've previously shown you how to modify the icon on an .EXE file, but if you've tried ...

  6. win10 + Terminal + WSL+ oh-my-zsh 配置漂亮实用的windows终端及配置ubuntu不加.exe打开windows程序

    win10 + Terminal + WSL+ oh-my-zsh 配置漂亮实用的windows终端及配置ubuntu不加.exe打开windows程序 未安装wsl/wsl2的请参照以下链接自行安装 ...

  7. Qt修改exe文件图标

    修改Qt生成exe的图标 1. 直接添加.ico 首先要注意的一点是,你的.ico文件不可以是直接用过jpg等图片格式直接修改后缀名形成的,必须是用转换工具来通过jpg转换成ico的格式,不然就会出现 ...

  8. [WinForm]写一个小程序把指定目录的程序添加到开机自动启动(无法绕过360检查)

    网友阿东提示了这样一个需求:写一个小程序把指定目录的程序添加到开机自动启动,跳过360 我就到百度上搜了一下:C# 将程序添加到启动项 (写入注册表),及从启动项中删除 - 赤狐(zcm123) - ...

  9. VC++编程实现修改EXE文件图标

    VC++编程实现修改EXE文件图标 刚才发现论坛上面有网友问:如何通过编程实现修改EXE文件的图标,类似于 熊猫烧香 的效果!自己也对这个比较感兴趣网上找了找,找到了两种方法,可以满足大家都要求了,这 ...

最新文章

  1. APP开发两年的心得:App代码架构设计(1)
  2. 金笛邮件分布式邮件设置指南
  3. @classmethod和@staticmethod对初学者的意义? [重复]
  4. 站长们都会,但是都会写错的robots!
  5. 抓取html 中文乱码,利用代码抓取网页数据,出现中文乱码问题
  6. Tensorflow2.0版本 笔记
  7. 常见 Java 字节码 指令 助记符
  8. ACL访问控制列表【笔记|实验】
  9. 二.路径规划---二维路径规划实车实现---gmapping+amcl+map_server+move_base
  10. 三. 2d-2d三角化求路标point
  11. Pytorch实战从入门到精通第一部分——手写字符识别全流程
  12. 机器学习:多变量线性回归
  13. 博时基金的大数据平台建设之道
  14. 桌面无计算机 win10,win10雨木林风系统桌面无计算机图片的处理办法
  15. Java实习日记(2-2)
  16. 2020 JUSTCTF F@k3 0ff1c@l REVERSE WP
  17. 论文学习笔记-M2Det
  18. matlab加特定频率的噪声,如何在Matlab/Simulink中生成指定的白噪声和有色噪声
  19. AtCoder Beginner Contest 178 C
  20. 基于RT1052 Aworks 测试PXP图像混合功能(十三)

热门文章

  1. 短信平台的相关资料之短信猫
  2. peer probe: failed: Probe returned with 传输端点尚未连接
  3. Excel 2013 下拉为“快速分拆”调整为“填充序号”
  4. EmEditor 下载
  5. oppo 升级 android 8.1,OPPO首发安卓8.1更新了什么
  6. 代码出现Bug的三种表情,太传神了!
  7. 3D建模好学吗?日积月累,方能成事
  8. 通过nodeJS如何实现爬虫功能
  9. Python wordcloud 库 自学2
  10. 图像处理(九)高斯金字塔及拉普拉斯金字塔