尝试在Windows 7 64位中读取IVT时出错

编号201

我想在Windows 7、64位中读取IVT,我不确定是否可行,我在Rootkit Arsenal中有一个代码,这是下一个代码:

int main(int argc, char** argv) {

     unsigned short csAddr;
     unsigned short ipAddr;
     short address;
     unsigned short vector;

     vector = 0x0;

     printf ("\n---Dumping IVT from bottom up---\n");
     printf ("Vector\tAddress\t\n");

     for (
             address = IDT_001_ADDR; 
             address <= IDT_255_ADDR;
             address = address+IDT_VECTOR_SZ, vector++
         ) 
         {
     printf ("%03d\t$08p\t",vector,address);
     asm ("PUSH ES;");
     asm ("MOV AX,0;");
     asm ("MOV ES,AX;");
     asm ("MOV EBX,0;");
     asm ("MOV BX,%0"::"r"(address):);
     asm ("MOV AX,ES:[BX]");
     asm ("MOV %0,AX":"=r"(ipAddr)::);  
     asm ("INC BX;");
     asm ("INC BX;");
     asm ("MOV AX,ES:[BX]");
     asm ("MOV %0,AX":"=r"(csAddr):);
     asm ("POP ES");

     printf ("[CS:IP]=[%04X,%04X]\n",csAddr,ipAddr);
     }
     return 0;
}

我正在使用Windows 7 64位。我想了解为什么此代码不起作用。我收到“访问冲突读取位置0x00000000”错误,这对我来说很有意义,因为Windows使用分页来访问内存,所以我不知道为什么在书中它告诉您可以在Windows 7上运行该代码(如果Windows运行)在保护模式下,该代码需要实模式。所以我的问题是,我可以在Windows 7、64位中访问IVT吗?或肯定地,这本书是错误的,因为它应该指定该代码不能在Windows 7 32或64位上运行。欢迎任何帮助。非常感谢您的宝贵时间。欢呼!:D

格茨

不,您不能在Windows上不编写内核模式驱动程序来执行此操作,因为您以长模式(受保护模式的64位扩展)运行。您要执行的操作在用户模式下是不可能的

从雷蒙德·陈(Raymond Chen)的链接博客文章中:

Windows NT的低位地址没有很多东西。唯一已经存在的是将PAGE_NOACCESS页映射为零,以捕获空指针访问。

基本上,操作系统会PAGE_NOACCESS降低IVT所要使用的地址,以防止出现愚蠢的编程错误。那就是说不可能,因为您位于虚拟地址空间中,并且无法物理访问该部分物理内存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在堆大小较大的64位Windows 7中运行64位JVM

在Windows 7 64位上运行Eclipse

在Windows 7 [32位]中启动MongoDB时出错

如何在Windows 7上的Octave中准确启用64位索引(64位)

尝试从Windows 7 PC上的USB闪存盘引导Ubuntu 16.04时出现错误消息

在二进制Windows(7)64位Enterprise DB安装上创建PLTCL语言时出错

尝试安装Windows 7 DVD时出现红色条,并且冻结

在Windows 7中安装Python 3.3.2 64位时出错

尝试安装更新KB2918614时Windows 7更新错误代码8024200d

自动尝试修复启动后,USB鼠标会粘在Windows 7中

Windows 7 64位上的Wamp 5.3.21

尝试使用WinToUSB将Windows 7 Ultimate安装到Pendrive时出错

尝试还原Windows 7时“无人参与的答案文件包含无效的产品密钥”

当我尝试在桌面上安装Windows 7时自动关闭

在Windows 8 64位中启动Android Studio时出错

尝试同步Windows 7时间时出错

查看Windows 7中的所有登录名和尝试次数

当我尝试添加VLC时,为什么SETX没有更新我的PATH?(Windows 7的)

在Windows 7 64位中自动连接蓝牙耳机

Windows 7 64位键盘问题

Windows 7企业版64位

尝试在Dell XPS13 9360上安装Windows 7时出错

如何使用ODBC 64位在Windows 7 64位计算机中读取Excel文件

当应用程序安装在64位Windows 7的程序文件中时,WebView无法加载URL

尝试在Xcode 7 / Swift 2中播放视频时出错

与Windows 7一起安装Lubuntu之后,“尝试在hd0之外读取/写入”

在Windows 7 64位上安装python-pptx时出错

在 Windows 7/64 位上设置 Angular 2 环境时出错

C++ 使用 adodb 在 64 位 Windows 7 中读取 excel 文件?