基础问题:OD里怎么看地址。

极语言中文编程 2013-06-25 06:57:08
网上很多教程是说OD里的虚拟地址,怎么换算偏移地址等。这个很容易学会。就是虚拟地址到底在哪里看到的,OD的什么位置。就是没人讲。
就比方说看手上的掌纹,然后如何如何。问题是不知道掌纹在哪里看。它是什么形状,看一次不知道它是什么,再看10次也不明白。
希望有人能解释下到底在OD里怎么看虚拟地址的。
...全文
1176 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_adintr_com 2013-06-27
  • 打赏
  • 举报
回复
引用 14 楼 haprince 的回复:
[quote=引用 13 楼 adlay 的回复:] 0FE14383 当然是虚拟地址. 代码出现在这个位置, 如果是 exe, 可能是你的 exe 是经过压缩加密的, 这段代码是程序运行起来后释放到这里了. 也可能是你的 exe 使用了动态基址技术, 加载位置可以随机的. 如果是 dll, 本来就可能被加载到这些位置.
是的,拦截后停留在dll里,所以地址不对的,当然无法换算,其实下面步骤就是继续执行,步入到程序入口,就得到正确的地址了。我想问的就是这些,以前也弄过很多次,突然忘记步入这一步。弄了很多天都不知道如何进展了。[/quote] 既然是 dll, 那么它根本就不在你 exe 文件里, 而是在 dll 对应的文件里. 你在 exe 里去算偏移肯定不对. 你也不能在 exe 的文件里面去修改一个不在文件里面的东西....
  • 打赏
  • 举报
回复
引用 13 楼 adlay 的回复:
0FE14383 当然是虚拟地址. 代码出现在这个位置, 如果是 exe, 可能是你的 exe 是经过压缩加密的, 这段代码是程序运行起来后释放到这里了. 也可能是你的 exe 使用了动态基址技术, 加载位置可以随机的. 如果是 dll, 本来就可能被加载到这些位置.
是的,拦截后停留在dll里,所以地址不对的,当然无法换算,其实下面步骤就是继续执行,步入到程序入口,就得到正确的地址了。我想问的就是这些,以前也弄过很多次,突然忘记步入这一步。弄了很多天都不知道如何进展了。
  • 打赏
  • 举报
回复
引用 9 楼 adlay 的回复:
你是在哪个窗口看到 74 的? OD 的大多数窗口最左方都会显示地址的呀. 看看那个地址就行了呗.
这个地址是0FE14383,它不是虚拟地址啊。数值太大。无法计算偏移地址。
  • 打赏
  • 举报
回复
引用 10 楼 zara 的回复:
74 是指令的机器码吧,应该是要将条件转移指令 74 修改为直接的转移指令 EB 。 本就是要修改 exe 文件的问题,还在上面激烈地矢口否认,不知何故。
我没有否认修改exe,我只是问地址是什么。在哪里看。
zara 2013-06-26
  • 打赏
  • 举报
回复
74 是指令的机器码吧,应该是要将条件转移指令 74 修改为直接的转移指令 EB 。
本就是要修改 exe 文件的问题,还在上面激烈地矢口否认,不知何故。
www_adintr_com 2013-06-26
  • 打赏
  • 举报
回复
你是在哪个窗口看到 74 的? OD 的大多数窗口最左方都会显示地址的呀. 看看那个地址就行了呗.
  • 打赏
  • 举报
回复
引用 7 楼 adlay 的回复:
虚拟地址就是你的代码, 数据等等所有的东西运行的时候在内存中的位置. 内存地址总该知道撒? 你可以认为虚拟地址就是内存地址. 只不过中间会经过操作系统的转换, 不是真正的物理内存的地址, 你暂时不用去关心. 就把虚拟地址当做内存地址好了. 所以, OD 里面你不是要到哪里去查看虚拟地址的问题, 而是你给 OD 一个虚拟地址, 它把对应的代码或数据呈现给你. 当然, 通过菜单 查看->内存 你可以看到程序使用了哪些地址.
我拦截到一个地方,看到74字样,我想把74改成EB,当然不是直接改。我想知道现在我看到的74的虚拟地址。用工具计算实际地址我会。就是要知道从哪里得知这个数值,然后去换算。
www_adintr_com 2013-06-26
  • 打赏
  • 举报
回复
虚拟地址就是你的代码, 数据等等所有的东西运行的时候在内存中的位置. 内存地址总该知道撒? 你可以认为虚拟地址就是内存地址. 只不过中间会经过操作系统的转换, 不是真正的物理内存的地址, 你暂时不用去关心. 就把虚拟地址当做内存地址好了. 所以, OD 里面你不是要到哪里去查看虚拟地址的问题, 而是你给 OD 一个虚拟地址, 它把对应的代码或数据呈现给你. 当然, 通过菜单 查看->内存 你可以看到程序使用了哪些地址.
zara 2013-06-26
  • 打赏
  • 举报
回复
既然是最基础的 OD 使用问题,没有知道什么是虚拟地址的必要。地址就地址了,还虚拟地址,装什么呢?
  • 打赏
  • 举报
回复
引用 4 楼 zara 的回复:
虚拟地址,换算偏移地址,一般的程序调试,怎么会有这样的说法。是想根据 OD 里的修改 exe 文件吗?是这样的话,通过特色数据搜索恐怕比换算还简单;换算的话,涉及到 exe 的 pe 文件结构了,有些复杂。
你没看清楚啊,我问的是最基础的OD使用问题。就跟鼠标的左键是什么一样。很多教程说你点击鼠标左键就行了。问题是我不知道什么是鼠标左键。那么回答方法就是鼠标前方有两个可以按的钮,左边那个就叫左键。不是问你换算问题。而是问什么叫虚拟地址。
zara 2013-06-26
  • 打赏
  • 举报
回复
虚拟地址,换算偏移地址,一般的程序调试,怎么会有这样的说法。是想根据 OD 里的修改 exe 文件吗?是这样的话,通过特色数据搜索恐怕比换算还简单;换算的话,涉及到 exe 的 pe 文件结构了,有些复杂。
  • 打赏
  • 举报
回复
引用 2 楼 wangdahu888 的回复:
OD里你看到的都是虚拟地址呀
你的回答没起作用,我提问的时候举那么明显的例子。你还是这样回答。你说伸开手看到的就是掌纹啊。 我已经说了,问题是我不知道什么是掌纹的情况下,你这样说一点用都没有,你得说在具体哪个位置,什么样的东西是虚拟地址。
www_adintr_com 2013-06-26
  • 打赏
  • 举报
回复
0FE14383 当然是虚拟地址. 代码出现在这个位置, 如果是 exe, 可能是你的 exe 是经过压缩加密的, 这段代码是程序运行起来后释放到这里了. 也可能是你的 exe 使用了动态基址技术, 加载位置可以随机的. 如果是 dll, 本来就可能被加载到这些位置.
  • 打赏
  • 举报
回复
OD里你看到的都是虚拟地址呀
  • 打赏
  • 举报
回复
虚心请教,有懂的人就说一下吧。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧