GDT表的地址在WIN7中得到的数为什么老变?

谁学逆向工程 2020-02-19 05:33:15
有个视频,其中有段代码是打印GDT表的地址和limit,他运行的环境是 VMware 中的 XP系统。我把编译好的EXE 运行在真机 WIN7 64 位中,好像每次得到的数总是那几个。而在 VMware 的XP 中就总是同一个数,这是啥原因?
...全文
398 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
谁学逆向工程 2020-02-21
  • 打赏
  • 举报
回复
引用 7 楼 gouyanfen 的回复:
一核就是一个CPU核心,你可以更改虚拟机模拟的CPU数来看看

我编译的是32位EXE。还有个问题,真机中运行得到的地址,为什么感觉地址那么低,比如 4bef540,而虚拟机XP中是 80000000 以上的地址。
gouyanfen 2020-02-20
  • 打赏
  • 举报
回复
引用 4 楼 谁学逆向工程 的回复:
[quote=引用 3 楼 gouyanfen 的回复:] 你打印了什么地址
就是GDTR寄存器的两部分么[/quote] GDT每个CPU有一个,虚拟机就看你虚拟了几个CPU了,入口并一定是固定值
谁学逆向工程 2020-02-20
  • 打赏
  • 举报
回复
引用 3 楼 gouyanfen 的回复:
你打印了什么地址

就是GDTR寄存器的两部分么
gouyanfen 2020-02-20
  • 打赏
  • 举报
回复
引用 6 楼 谁学逆向工程 的回复:
[quote=引用 5 楼 gouyanfen 的回复:] GDT每个CPU有一个,虚拟机就看你虚拟了几个CPU了,入口并一定是固定值
好像真是这么回事,我在1CPU 1核心的XP虚拟机中,每次打印都是一样的数值。 然而在真机中,好像总是那么几个固定值中的几个,我真机是1CPU 4核心 64位 win7[/quote] 一核就是一个CPU核心,你可以更改虚拟机模拟的CPU数来看看
谁学逆向工程 2020-02-20
  • 打赏
  • 举报
回复
引用 5 楼 gouyanfen 的回复:
GDT每个CPU有一个,虚拟机就看你虚拟了几个CPU了,入口并一定是固定值

好像真是这么回事,我在1CPU 1核心的XP虚拟机中,每次打印都是一样的数值。
然而在真机中,好像总是那么几个固定值中的几个,我真机是1CPU 4核心 64位 win7
gouyanfen 2020-02-19
  • 打赏
  • 举报
回复
你打印了什么地址
引用 2 楼 谁学逆向工程 的回复:
[quote=引用 1 楼 gouyanfen 的回复:] EXE加载的是不是动态基址。这个可以用OD之类的软件看模块起始地址。
GDT会因为这个而变化吗[/quote]
谁学逆向工程 2020-02-19
  • 打赏
  • 举报
回复
引用 1 楼 gouyanfen 的回复:
EXE加载的是不是动态基址。这个可以用OD之类的软件看模块起始地址。

GDT会因为这个而变化吗
gouyanfen 2020-02-19
  • 打赏
  • 举报
回复
EXE加载的是不是动态基址。这个可以用OD之类的软件看模块起始地址。

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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