当前位置: 技术问答>linux和unix
修改程序地址
来源: 互联网 发布时间:2014-12-03
本文导语: 现在有一个EXE的可执行程序,已知其中用到了0xd0000起始的一段地址, 现想将其改成0xcc000,没有源程序,只知道源程序中只在把该地址附给 一个指针变量时出现一次。 我想用反汇编的方式直接改,可是只能找到偏址...
现在有一个EXE的可执行程序,已知其中用到了0xd0000起始的一段地址,
现想将其改成0xcc000,没有源程序,只知道源程序中只在把该地址附给
一个指针变量时出现一次。
我想用反汇编的方式直接改,可是只能找到偏址,找不到段址,求高手赐教
很急的说
另外,源程序BC下的C++写的,在DOS下执行
再另外,还有一个VC的在WIN98下执行的程序需做类似处理
现想将其改成0xcc000,没有源程序,只知道源程序中只在把该地址附给
一个指针变量时出现一次。
我想用反汇编的方式直接改,可是只能找到偏址,找不到段址,求高手赐教
很急的说
另外,源程序BC下的C++写的,在DOS下执行
再另外,还有一个VC的在WIN98下执行的程序需做类似处理
|
我想到的几种办法:
(1) 用Soft-ICE跟踪,检测到对D000h段的读写就中断,然后再往前找。
(2) 用Borland Turbo Debugger打开EXE查找代码。
(3) 用反汇编程序查找MOV AX,D000之类的指令。
(4) 用TR跟踪,设置段寄存器改变的断点。
浅妄薄见,望与斟酌
(1) 用Soft-ICE跟踪,检测到对D000h段的读写就中断,然后再往前找。
(2) 用Borland Turbo Debugger打开EXE查找代码。
(3) 用反汇编程序查找MOV AX,D000之类的指令。
(4) 用TR跟踪,设置段寄存器改变的断点。
浅妄薄见,望与斟酌