Lenus
驱动牛犊
驱动牛犊
  • 注册日期2005-03-09
  • 最后登录2008-12-01
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1592回复:5

用汇编写的简单的WDM的一些简单的问题

楼主#
更多 发布于:2005-05-13 15:15
sgdt  [esp-2]
pop edx
mov eax,edx ;EDX.EAX->GDT BASE
mov ecx, 3e8h

.if dword ptr [eax+ecx+4]!=00cf9a00h ;3e8 ring0 code32
mov byte ptr [eax],0c3h ;ret--------------------------->这个是什么意思
mov dword ptr [eax+ecx],0000ffffh
mov dword ptr [eax+ecx+4],00cf9a00h
.endif

.....
popad
popfd
xor eax, eax   ;固定格式?
ret 8  
zhenlongyang
驱动小牛
驱动小牛
  • 注册日期2004-10-28
  • 最后登录2010-07-26
  • 粉丝1
  • 关注0
  • 积分729分
  • 威望100点
  • 贡献值0点
  • 好评度66点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-13 22:36
你用什么编译器来编译它呢?
Lenus
驱动牛犊
驱动牛犊
  • 注册日期2005-03-09
  • 最后登录2008-12-01
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-14 16:28
用的MASM...
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2005-05-16 10:14
你看下MGF的代码跟踪下就很清楚了,把CALLGATE的第1条指令放在GDT的NULL SELCTOR中,然后进入RING0将执行这条指令,从而返回到正确的地方执行....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
Lenus
驱动牛犊
驱动牛犊
  • 注册日期2005-03-09
  • 最后登录2008-12-01
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-16 19:42
wowocock 您终于现身了...您的代码还是您来解答比较好...

“把CALLGATE的第1条指令放在GDT的NULL SELCTOR中,然后进入RING0将执行这条指令”

我很明白你的意思...因为这是我在研究您的代码后得出的唯一结论...

我唯一不明白的地方是,为什么call gate的第一条指令在NULL SELCTOR中?这个原理我在书上并没有看到...

btw:我没有MGF的代码,能提供吗?谢谢
Lenus
驱动牛犊
驱动牛犊
  • 注册日期2005-03-09
  • 最后登录2008-12-01
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-17 16:59
可能我还没说清楚...
如果说call gate以后的第一条指令在NULL SELCTOR中,是不是说所有的调用门都是这样呢?
游客

返回顶部