打补丁方法可以修复程序的BUG,给程序添加新功能。


打补丁的对象可以是文件,内存,数据,代码,等等。。。


我们今天就用打补丁的方法来把helloworld程序中的字符串改掉!


首先呢,OD载入程序,


然后,我们跳到程序入口点,也就是main函数,之前我们讲过,可能大家也记得,0x401000.





我们可以清楚的看到helloworld字符串存放在了push    0x40ED00,这个地址,然后,我们在数据区(左下角),跳过去。



我们看到了字符串,然后呢,我们选中helloworld这几个字,然后按下Ctrl+E,快速编辑。


编辑的时候要在Unicode里面编辑,最好字数相同,防止内存溢出。





然后确定。



然后我们F9运行起来,看看效果:





当然,这还没有完事,因为如果我们关掉OD,程序还是没有被修改的,我们现在的修改只是暂时的。


我们如何保存我们修改的程序呢?


很简单,


选中我们修改的字符串,当然也可以往后多选中一点。


鼠标右键:




点击复制到可执行文件,然后在弹出的窗口继续鼠标右键,保存文件:




保存到桌面:


我们双击运行一下测试:





成功!



大家有没有新的收获呢?


逆向工程核心原理学习笔记(五):实战“打补丁方法”修改字符串相关推荐

  1. 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串

    首先我们跳转到程序的入口点,然后观察 00401007      68 00ED4000   push    0x40ED00                         ;  Hello Wor ...

  2. 逆向工程核心原理学习笔记(十四):栈帧1

    栈帧的话,直接截了一些图,大家看一下就好了,理解起来很简单,就是简单的参数转存. 看完之后,我们需要用一个小程序来进一步学习我们的栈帧了. 下载地址:http://t.cn/RaUSglI 代码写法: ...

  3. 逆向工程核心原理学习笔记(七):总结

    首先就是上一节,我们尝试把修改后的代码保存后运行,发现不可以,. 这是由于我们修改的那部分缓冲区造成的. 可执行文件加大再到内存中兵役进程的形式运行并非原封不动的载入内存,而是遵循一定的规则进行,这一 ...

  4. 逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈

    还是上一次的abex' crackme #1,我们用OD附加看一下. 我们发现在调用这个MessageBox函数的时候,用了4个PUSH指令,我们在后面的注释中可以清楚的看到压入参数的内容. 如果我们 ...

  5. 逆向工程核心原理学习笔记(十二):分析abex' crackme #1

    程序下载地址:http://t.cn/RX1wpX7 我们首先运行一下,看看提示什么: 我们初步推测,这个程序应该是判断磁盘是否运行在一个CD-ROM上. 为了验证我们的推测,我们拖进OD看一下. 我 ...

  6. 逆向工程核心原理学习笔记(十一):栈

    栈(stack)用途广泛,通常用于存储局部变量.传递函数参数,保存函数返回地址等. 调试程序需要不断查看栈内存,这是很有必要的. 栈是一种数据结构,按照后进先出的原则存储数据. 栈的特征: 一个进程中 ...

  7. 逆向工程核心原理学习笔记(十):IA-32寄存器基本讲解

    什么是CPU寄存器: 为什么要学习寄存器: IA-32寄存器: 基本程序运行寄存器: 下面介绍一下各种寄存器:

  8. 逆向工程核心原理学习笔记(九):小端序标记法2

    程序地址:http://t.cn/RXnT2pD 我们用OD查看小端序. 代码如下: 我们编译,然后拖进OD查看,直接跳到0x401000入口点. 我们看到几个位置: 由此处我们可以推测后面括号中存放 ...

  9. 逆向工程核心原理学习笔记(八):小端序标记法1

    顶 0 踩

最新文章

  1. WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载
  2. ue4小白人骨骼定义_动画短片在UE4中的工作流程都有哪些?来看游戏建模师如何分析的...
  3. Memcached 使用 及.NET客户端调用
  4. 网页滚动文字特效的代码
  5. JAVA设计模式初探之组合模式
  6. 使用Red Hat OS为Amazon EC2实例安装SQL Server Linux
  7. [数据仓库]大数据体系下的工作者分类
  8. 利用cloudera manager搭建Hadoop集群
  9. 日志打印longging模块(控制台和文件同时输出)
  10. 关于:win远程桌面连接命令怎么用
  11. SCT芯洲DC-DC-SCT2430是一款输出电流高达3.5A的高功率密度全集成同步降压DCDC转换器。其输入电压范围为3.8V到40V,替代TPS54340
  12. 金蝶kis专业版公网访问_金蝶KIS远程服务器端和远程客户端配置说明
  13. win7安装系统后关闭计算机,完美重装系统win7后电脑为什么总是自动关机?
  14. 七雄争霸如何获得鸿蒙碎片,七雄争霸手游资源如何获取
  15. 如何使用Transformers和Tokenizers从头开始训练新的语言模型
  16. 2020年数学建模国赛B题题目和解题思路
  17. 2019税务师课件视频题库分享
  18. 安卓手机的证书信任设置在哪_如何在Android设备上安装受信任的CA证书?
  19. mysql 过程if语句,mysql存储过程之if语句用法实例详解
  20. 开源规则引擎比较_开源物联网平台ThingsBoard

热门文章

  1. RocketMQ集群特点
  2. dom4kj解析xml
  3. linux x86板级文件,Linux driver 板级文件跟踪一般方法
  4. Spring Cloud Context
  5. oracle数据结构是什么意思,Oracle数据结构知多少(一)
  6. html动画效果放大,一个CSS+jQuery实现的放大缩小动画效果
  7. linux ftp图片服务器,linux ftp 图片服务器
  8. HX720/HX711 数据采集及处理姿态解析(公式及源码)
  9. Linux服务器---安装bind
  10. Laravel Model 利用 Macroable 为数据模型添加宏能力