OD修改软件文本字符串内容

软件没有壳的状态下,可以修改软件的资源,达到替换软件内容的功能。下面演示如何使用OD修改内容。

要修改的软件,运行效果如图

要求把内容:“大家好” 修改成“你好吗” 或者“我是古天乐”

一样长度的文本很好修改,不一样的长度的文本修改起来就要困难一点。

修改方法

“大家好” 修改成“你好吗”

1.使用OD载入软件,拖到最上面,在旁边的注释窗口,已经给我们显示出来了内容了,那么我们就可以很方便的修改了。

修改之前,先看看程序运行的原理,这儿拿易语言演示。

信息框 (“大家好”, 0, “我是渣渣辉”, ),这段代码,在机器执行的时候,把参数从右到左推入栈中

所以从上面的OD可以看到先PUSH的是“我是渣渣辉”

入栈后,就会调用相关命令,机器码中是使用的CALL方法,如下图,红色标注的为CALL方法

既然知道了原理,那么我们就动手开始修改吧。我们的第一个目标是修改“大家好”为“你好吗”

选择 0040102C |. 68 8FD54700 push 测试.0047D58F ; ASCII "大家好" 这行数据,右键->在数据窗口中跟随->立即数

可以在下面的HEX数据窗口看到已经跳到了指定的地址0047D58F,和上面机器码push 测试.0047D58F 的十六进制数一样

选择要修改的内容,双击或者任意按键内容,会弹出一个窗口,这个窗口就可以修改数据了

我们在上面的ASCII窗口输入要修改的内容:“你好吗”

输入内容显示为乱码,没关系,点击确定即可

【关于保持大小选项,取消勾选,则内容可以随意长度,不过可能保存后会溢出,导致程序运行报错的情况】

可以看到,内容已经成功的被修改成了你好吗

这个时候运行程序,可以看到弹窗提示为“你好吗”

“大家好” 修改成“我是古天乐”

上面的修改很简单,只要长度一致就可以任意修改。如果长度不一致,尽管有些时候可以取消勾选保持大小,但是很容易报错。可行的办法则是在数据窗口找一块空白的数据地址,键入内容。

首先找一块空白的区域,可以看到程序尾部有一大段空白的区域,那么这儿就能随意的填充内容。

按照上面的修改方法,修改内容

文本开始的地址为0048ED5F,这个则为数据地址,那么入栈也需要把这个数据推入

找到指令0040102C |. 68 8FD54700 push 测试.0047D58F ; ASCII "大家好"

双击修改汇编代码,默认入栈的地址为0047D58F,我们需要修改成我们添加文本的地址:0048ED5F

修改好以后,点击汇编,则修改成功

运行后成功,可以看到如下图,提示被成功的修改了

课件下载

https://storage.tirr.com.cn/s/apj7yn44

上一篇 Android Studio 关闭Lint检测
下一篇 【OD&x64dbg破解01】简单爆破序列号验证
applek

applek管理员

个人说明在个人中心里面设置

本月创作热力图

最新评论
西风
西风
3月7日
暂时不需要也能跑
Kevin
Kevin
3月6日
请教,小网站,1000ip不到,小主机,2c4g,到底 redis 还是 macached 合适啊
hfloke
hfloke
3月1日
新版本安装更新后,页面有问题哦
丙氨酸
丙氨酸
2月27日
测试
评论于关于本站
RiseForever
RiseForever
2月23日
听说新主题发布了,来测试下评论区。