首页
社区
课程
招聘
[旧帖] 用OD修改代码遇到相对地址的问题。 0.00雪花
发表于: 2008-10-23 17:31 3080

[旧帖] 用OD修改代码遇到相对地址的问题。 0.00雪花

2008-10-23 17:31
3080
一个dll程序,用PeEdit加了一个输入函数User32.GlobalLock及其它函数
然后用OD把某一个指令
1000151A      68 00B00010               push    1000B000
改为:
1000151A     |E9 F1450000               jmp     10005B10
但是用ultraedit修改dll文件之后,发现它出错了,原来dll的映像基址变了。
试着用LordPE和ImportRec把它Dump出来,还是用了绝对地址。

2、我在程序的数据段后面加了一个字符串adsw_acadMainWnd
1000B210  4C 54 20 54 65 78 74 00 41 75 74 6F 43 41 44 20  LT Text.AutoCAD
1000B220  54 65 78 74 00 00 00 00 4B 45 59 53 00 00 00 00  Text....KEYS....
1000B230  61 64 73 77 5F 61 63 61 64 4D 61 69 6E 57 6E 64 adsw_acadMainWnd

//////////////////////////////////////
用OD修改了程序代码后,发现相样是相对地址的问题。
这是我修改的代码:
10005B27    68 30B20010     push    1000B230        ; ASCII "adsw_acadMainWnd"
用UltraEdit打开dll文件也是6830B20010
内存:
1000B220  54 65 78 74 00 00 00 00 4B 45 59 53 00 00 00 00  Text....KEYS....
1000B230  61 64 73 77 5F 61 63 61 64 4D 61 69 6E 57 6E 64 adsw_acadMainWnd

而原程序中这种代码却可以转换成绝对地址
用UltraEdit打开dll跳到0x1018,看到BF 1000b000
再用OD载入DLL,如下,可以看出已经转换为绝对地址
10001032    BF 14B10010     mov     edi, 1000B114                    ; ASCII "ABCDEFGHIJKLMNini"

内存段:
1000B114  41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 69 6E  ABCDEFGHIJKLMNin
1000B124  69 00 00 00 41 75 74 6F 43 41 44 20 32 30 30 36  i...AutoCAD 2006

请问我应该怎样修改代码?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//