首页
社区
课程
招聘
[旧帖] 用OD修改了,怎么保存? 0.00雪花
发表于: 2011-12-16 20:26 17838

[旧帖] 用OD修改了,怎么保存? 0.00雪花

2011-12-16 20:26
17838


求高手指教~我是新手,最好说的详细点啊~谢谢了~

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (42)
雪    币: 118
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
右键没有【复制到可执行文件】这个选项
2011-12-16 20:52
0
雪    币: 118
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
堆栈不能修改保存吗?
2011-12-16 22:01
0
雪    币: 104
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
似乎只能在上面的汇编代码保存吧
2011-12-16 22:26
0
雪    币: 118
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2011-12-16 22:28
0
雪    币: 170
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pbt
6
同样非常的迷惑。。。。。
2011-12-18 19:48
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
堆栈那里改不能存的。要在反汇编窗口或内存窗口,所修改的内容上右键,复制到可执行文件。
查看0012A47C内容,在OD的命令行输入:dd 0012A47C即可
2011-12-18 20:16
0
雪    币: 131
活跃值: (156)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hio
8
只有代码段的代码可以保存。选中修改过的代码,右键,复制到可执行文件,选中(只保存选中的);全部(保存全部修改过的地方)……然后会打开一个新子窗口,再点保存即可
2011-12-18 21:25
0
雪    币: 2210
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
看哪个汇编代码,引用了这个字符串
将对应的CALL NOP掉,右下角是堆栈区,无法保存下来的
只能保存左上角的汇编代码区
2011-12-19 09:19
0
雪    币: 49
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
堆栈动态的不能保存吧...只能改代码
2011-12-19 18:27
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
堆栈是临时数据(局部变量就保存在堆栈,或者准确的说,变量存在栈stack,对象存在堆heap)od右下角是stack,也就是局部变量的值,这肯定无法存到程序里的,正确的做法是找到生成数据的地方,修改代码使它生成你想要的数据
2011-12-20 00:10
0
雪    币: 139
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
右边的寄存器的内容无法修改啊,只能修改左边的反汇编代码啊!!
2011-12-20 16:48
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
曾经也碰到过类似的问题,不过最后放弃了
2011-12-22 21:51
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
14
要 nop 掉的不是字符串,而是调用 call ,逆向的基础是正向。
先踏实的从C学起吧
2011-12-22 23:31
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
只有代码段的代码可以保存。选中修改过的代码,右键,复制到可执行文件,选中(只保存选中的);全部(保存全部修改过的地方)……然后会打开一个新子窗口,再点保存即可
2011-12-23 00:34
0
雪    币: 45
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
你找到这个字符串在程序中出现的所有位置 弹提示框的话 很肯能会把这个字符串push进去 找到call的位置 然后记下偏移 用winhex打开后找到地方 直接改成90就可以了
2011-12-23 08:11
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
同意这位仁兄说的,楼主仔细琢磨下。
2011-12-23 08:36
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
在OD左下角数据窗口改  也可以的
2011-12-23 11:36
0
雪    币: 108
活跃值: (56)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
19
这个问题,我困惑我好久...这个问题要彻底搞清楚...需要一点PE知识的.要不然死活明白不了.
在OD  CPU窗口所看到的代码(内存中),在可执行文件中(磁盘文件中)都有对应的位置. 故可作操作  [复制到可执行文件] .  也就是说你在内存中把可执行文件代码改了...同时又要修改到对应的文件所在位置,就可以用这个操作,OD自动帮你定位.   很多人就用这项技术打补丁.这样你的操作就保存到文件中了.   按我的理解,只要可执行文件存在的节区范围.都可这样做. 在文件中没有对应的位置就做不了这项操作..
  如:堆栈,完全程序运行所需要临时内存空间,在文件中没有对应的空间.临时申请的内存空间等等...都不能做这项操作.....
2011-12-25 21:51
0
雪    币: 159
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
LZ的OD右键怎么会没有复制到可执行文件这个选项呢?我用的OD都有的,我用过好几个版本的OD。
2011-12-26 11:08
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
你改过的那行代码选中再右击选中复制到可执行代码 在保存
2012-1-5 19:00
0
雪    币: 34
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
栈中地址0x0012a47c 是经常变化的,应该在数据窗口中找到这个栈地址存放的字符串地址(0x001acb90),然后在数据窗口修改相应的字符。
2012-1-5 21:29
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
从堆栈选中处右键,反汇编窗口跟随,再到反汇编主窗口看看代码吧。
2012-1-6 07:06
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我用WinHex
2012-1-7 21:44
0
雪    币: 62
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
谢谢  学习了
2012-1-8 22:20
0
游客
登录 | 注册 方可回帖
返回
//