ollydbg打补丁

打补丁的对象可以是文件, 内存, 代码, 数据等
例子采用helloworld程序, 把hello world改成where is my pant?
方法一 修改字符串buffer
(注意直接覆盖原字符串不要越界, 如果覆盖了重要数据会引发内存错误
断点打到main函数
在这里插入图片描述
数据窗口go to 4092A0
在这里插入图片描述
ctrl + E打开编辑窗口, 修改字符串
在这里插入图片描述在这里插入图片描述
注意字符串最后应该以null结尾, 此处例子中自带了null, 所以没有额外修改null, 如果没有需要自己在hex中修改null

保存到可执行文件, 就可以把补丁修改之后的效果永久保存下来
数据窗口中选中修改后的字符串
在这里插入图片描述在这里插入图片描述在这里插入图片描述

方法二 其他内存区域生成新字符串再传给消息函数
选取内存区域需要PE和VA的知识, 这里乱选即可(
在数据窗口中下拉, 发现null的沙漠地区------这里有个小知识, 应用程序加载到内存时会有一个最小的分配大小, 一般为1000, 即便用不完也会分配1000, 所以内存数据最后大部分情况下都是null的荒漠 这里也就是可以乱玩的地方了
在这里插入图片描述

随意修改一处地址的数据为where is my trousers? 然后修改调用消息函数前压栈的参数就可以改变输出的字符串.
在这里插入图片描述
空格/双击修改汇编代码
在这里插入图片描述在这里插入图片描述在这里插入图片描述
但是这样修改的程序不能保存, 因为虽然可以改变内存内容, 但是实际上这样的数据不符合可执行文件的规则, 所以另存为可执行文件会报错.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值