注册 登录
编程论坛 汇编论坛

Ollydbg.exe 为什么有2种地址

wobianlong 发布于 2012-10-06 12:10, 898 次点击
打开Ollydbg.exe 为什么有上下2种地址 但是不是连续的
为什么要分开呢  
我真的不懂,别笑话我啊  求解答 刚知道有Ollydbg.exe这个东西  就是对界面上有 分开的2种地址迷惑
12 回复
#2
zklhp2012-10-06 19:39
你问的是界面 为啥不用图片说话呢

只有本站会员才能查看附件,请 登录


你标一下我们好回答。。
#3
wobianlong2012-10-07 00:03
回复 2楼 zklhp
你看界面上啊 上面有地址 下面也有地址,但是地址不是连续的
#4
zklhp2012-10-07 00:30
上面是指令的地址 下面是数据的地址 虽然也可以让上面显示数据下面显示指令 但初始的设计是上面指令下面数据。。。。。
#5
wobianlong2012-10-07 12:18
回复 4楼 zklhp
我发现数据地址 哪里也可以反汇编成为代码,为什么能这样
#6
wobianlong2012-10-07 12:19
就是说数据区哪里也可以变得和指令哪里一样的模式
#7
zklhp2012-10-07 17:47
以下是引用wobianlong在2012-10-7 12:18:35的发言:

我发现数据地址 哪里也可以反汇编成为代码,为什么能这样

没有为什么 就这么设计的

如果非要说的话就是 指令和数据本质上一样 所以这个设计合理

有些时候需要这个功能 比如代码被加密了 或者代码在数据区 对于一个专注于无代码调试的调试器来说 具有这样的功能是正常的 也是非常好的、、、
#8
zklhp2012-10-07 17:50
只有本站会员才能查看附件,请 登录


一个例子 这里我把数据当成代码 也可以反汇编 我把代码显示为数据 也能显示 因为这些本质上都是数 看你怎么理解了
#9
有容就大2012-10-07 18:13
呵呵 如果能看懂全是16进制数的 程序就牛X了 哇咔咔
#10
hu9jj2012-10-07 20:39
以下是引用wobianlong在2012-10-7 12:19:40的发言:

就是说数据区哪里也可以变得和指令哪里一样的模式
的确是这样的,如果CPU执行到到数据区,也会将数据区的内容当着指令来执行,只不过效果将不可预知。曾经为了防止他人反汇编程序,很多程序员采用开辟一块数据区域,动态将解密后的代码存放在这块区域,然后跳转到这块代码来执行程序。
#11
wobianlong2012-10-07 21:12
回复 8楼 zklhp
发现了吗 数据区的地址和程序区 的地址不是连续的  
我连问都问不出个所以然来,就是觉得奇怪为什么不是连续的
数据区的内容可以通过工具改吧!程序区的呢
#12
zklhp2012-10-08 09:38
以下是引用wobianlong在2012-10-7 21:12:36的发言:

发现了吗 数据区的地址和程序区 的地址不是连续的  
我连问都问不出个所以然来,就是觉得奇怪为什么不是连续的
数据区的内容可以通过工具改吧!程序区的呢

肯定都可以改 程序区可以打汇编指令让它自动编译了

发现了吗 数据区的地址和程序区 的地址不是连续的

你说的不连续是指 数据和代码不挨着么

为啥要挨着啊 每个进程都有4G的地址空间 挺大的了 还需要把数据代码挨着么
#13
wobianlong2012-10-08 11:01
回复 12楼 zklhp
从那个软件来看,每个进程的地址名称都是一样的吧 不是真实的物理地址
1