在以前学习的时候,无法想象在没有源码的时候如何对exe文件添加功能,觉得简直不可思议,在了解汇编和反编译的一些知识后,原来这种想法是可以实现的。我们需要对exe文件进行直接修改,把我们的代码直接写入exe文件,这样就能实现我们的功能了。
    当然,要想直接对exe文件进行直接修改必须有较好的汇编基础,对反汇编技术有一定的基础。否则会很茫然的。
    一般有两种方法可以对exe文件添加我们需要的功能。
    第一种是利用页面的对齐机制,因为一般来说,每节的最后一页多少都有空余的空间,也就是说最后一页一般不会被用完,由于下一个节开始的时候是要对齐页面的,所以这中间就由多余的空间让我们写代码了。我们可以利用工具直接把内存虚拟和文件偏移地址进行转换来得到文件偏移位置,这个位置就是我们最终要把机器码写入的地方。
    第二种是我们自己在exe文件种添加一个节,这个节专门用来写我们的代码。这样做好处更多,因为我们可以任意指定这个节的大小,而上一种方法是利用节之间的空隙来写我们的代码,如果代码较多的时候我们能就不好办了,所以第二种方法更具有通用性,但相对来说第一种更容易些。这里大家要注意一下,如果我们直接增加节的话,最好把节分配的空间设置为页面大小的整数倍,文件中分配空间的大小也分配成和虚拟空间的大小一样即可,一般文件的块对齐大小比页面的块对齐尺寸更小。
    还要注意的一点就是,如果我们对exe文件增加节以后,可能会出现exe文件无法运行的情况,这时候一般我们对exe文件进行重建就可以了。
    希望能对喜欢反汇编的朋友能有帮助

如何直接修改exe文件相关推荐

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

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

  2. 修改exe文件的图标

    修改exe文件的图标: 点击项目的属性,找到图标和清单,修改图标就ok,但是图标必须是ico格式的,如下图: jpg转ico: 把jpg格式的图片先用系统自带的画图工具打开,可以调整属性,然后另存为b ...

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

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

  4. 尝试用studyPE和x32dbg修改.exe文件

    标题尝试用studyPE和x32dbg修改.exe文件 首先,准备一个exe文件,这里我使用自己用c++编写的exe文件,在程序中调用了LoadLibraryA函数动态加载dll文件,并使用GetPr ...

  5. 尝试用studyPE和x32dbg修改.exe文件01

    标题尝试用studyPE和x32dbg修改.exe文件01 首先,准备一个exe文件,这里我使用自己用c++编写的exe文件,在程序中调用了LoadLibraryA函数动态加载dll文件,并使用Get ...

  6. 使用rcedit修改exe文件信息(图标、版本、版权等)

    文章目录 目的 使用说明与演示 version-string key 总结 目的 我在使用Electron的时候由electron-forge打包出来的exe中部分文件信息没法通过配置或打包时修改: ...

  7. Qt修改exe文件图标

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

  8. 用UpdateResource修改EXE文件图标的多源码(已修正) 注:转帖请包函作者信息.(作者:菜新)

    微软官网UpdateResource 其它参考信息: https://msdn.microsoft.com/zh-cn/library/ms648008.aspx#_win32_Updating_Re ...

  9. 使用ollydbg修改exe文件

    使用ollydbg 修改一段文字. 下载解压 ollydbg http://www.ollydbg.de/ 左上角file -> open, 打开你的exe文件. 按快捷键 ctrl + b, ...

最新文章

  1. Linux 下 VuePress 的安装使用
  2. [loj556][Antileaf's Round]咱们去烧菜吧
  3. android 获取蓝牙设备id_不需要任何权限获得Android设备的唯一ID
  4. TIOBE 2月编程语言排行榜新鲜出炉!C# 获3.08%增长率!
  5. 取出字符串中的数字部分
  6. 生成并绘制图像的直方图
  7. 解决 “Microsoft.Jet.Oledb.4.0 找不到提供者 或 未正确安装” 的方法
  8. web前端设计与开发大作业(一)----黄山风景区
  9. 如何走向真正的智能?
  10. 微信小程序之授权登录的实现(button按钮)
  11. echarts实现地图飞线
  12. 华硕FL8000U拆换机械硬盘
  13. Matlab中set函数
  14. 微信支付body中文乱码解决方案
  15. Knuth-Morris-Pratt Algorithm(KMP算法)探赜索隐(一)
  16. Google Dremel数据模型详解
  17. 1034: 夏季促销 Python
  18. “安心记加班”完成亿元级B轮融资,蚂蚁金服领投
  19. LSM tree(日志结构合并树)_笔记
  20. keil删除工程_管理keil工程目录的详细步骤

热门文章

  1. (0001) H5开发之WebStorm 开发H5如何用手机打开测试
  2. python爬虫BeautifulSoup库抓取500彩票网竞彩足球信息并在excel表中对中奖赔率设置格式
  3. stm32学习笔记-1 STM32简介
  4. aspose-words,pdf
  5. 【浏览器】1219- 换一种风格理解 Chrome 浏览器渲染全过程
  6. 让chrome浏览器变成在线编辑器
  7. Android仿QQ通讯录分组展示ExpandableListView
  8. ai俄罗斯方块java_俄罗斯方块进阶--AI俄罗斯方块
  9. 风枪,烙铁使用方法--焊接注意事项
  10. ACM数论----中国剩余定理与拓展中国剩余定理