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