约有 1,303 项符合查询结果, 以下是第 92 - 131项。
费时 < 1 秒。
保护模式下的0x10号异常是用于浮点错误的。通常说的INT 10是指实模式下的显示服务。进了保护模式后,Windows会将必须还要执行的实模式代码翻译为一种字节码,需要时模拟执行,因为切换回实模式的开销太大了。
不知楼主是做什么开发遇到这样的问题?
Posted in Windows内核调试
by
格蠹老雷
on 2009-06-19
Thomson,建议你读一下IA手册卷2A的第二章,指令格式。特别是读一下2.2节,专门介绍IA-32e模式的指令格式。简单理解,很多IA指令的操作码是不分32位或64位的,操作数(寄存器、立即数、地址等)才分32位,64位,16位。一条指令,比如MOV,它可以有32位的操作数,也可以有64位的操作数。
IA-32e模式(Intel64的64位模式)有两个子模式,兼容模式和64位模式,无论在哪种模式,都可以使用非当前模式默认宽度的操作数,也就是64位模式下,使用32位操作数,或者32位模式下使用64为操作数都是可以的,这是不需要切换模式的。
Posted in Windows内核
by
格蠹老雷
on 2009-06-16
WinDBG总是可以调用GetThreadContext,也就是NtGetContextThread内核服务,来取线程上下文,里面就包含寄存器上下文。至于NtGetContextThread的内部实现,满复杂的,根据线程的状态不同,做法有所不同的。
Posted in Windows内核调试
by
格蠹老雷
on 2009-06-16
在内核调试会话设置用户态的断点是需要些技巧的(切换进程空间),建议你还是先在内核态的函数设置断点。
Posted in WinDbg
by
格蠹老雷
on 2009-06-12
从XP SP2开始,shareduserdata!systemcallstub不再直接指向代码,而是改成函数指针,也就是那小段代码的地址:
lkd> dd shareduserdata!systemcallstub l4
7ffe0300 7c90eb8b 7c90eb94 00000000 00000000
看到地址后再反汇编就应该对了:
lkd> u 7c90eb8b
7c90eb8b 8bd4 mov edx,esp
7c90eb8d 0f34 sysenter
7c90eb8f 90 nop
7c90eb90 90 nop
Posted in Windows内核调试
by
格蠹老雷
on 2009-06-12
连接不上一直是使用1394方式的头痛问题,《软件调试》的18.2节列举了一些可以尝试的方法,比如禁止目标机端的1394 Host Controler,禁止主机端的1394 Net Adapter...
Posted in WinDbg
by
格蠹老雷
on 2009-06-10
下面这样做不知是否满足你的要求?
1, lm命令找到模块的起始地址
0:001> lm vm notepad
start end module name 01000000 01014000 notepad
2, !dh 命令显示PE头信息,注意下面这样的一行:
!dh 01000000 ... 1000 [ 348] address [size] of Import Address Table Directory
3, 使用dd或者dds命令观察导入表
0:001> dds 01000000+1000 l (348/4)01001000 77dd6fc8 ADVAPI32!RegQueryValueExW01001004 ...
Posted in WinDbg
by
格蠹老雷
on 2009-06-08
差异只是在不同模块/层次的不同表示,具体来说,NT在检测CPU时,会根据架构(厂商INTEL、AMD)做检查,然后将具有共性的特征记录下来,KF_XX系列常量便是CPU架构无关的一种表示,如果要解释!cpuinfo的Features栏,那么应该使用KF_XX这套定义。
Posted in Windows内核调试
by
格蠹老雷
on 2009-06-08
注意LockCount字段的值-11:
0:000> dt _RTL_CRITICAL_SECTION 0x7c8897a0 mfc80u!_RTL_CRITICAL_SECTION +0x000 DebugInfo : 0x7c8897c0 _RTL_CRITICAL_SECTION_DEBUG +0x004 LockCount : -11
将其格式化为二进制:
0:003> .formats -0n11Evaluate expression: Hex: fffffff5 Decimal: -11 Octal: 37777777765 ...
Posted in WinDbg
by
格蠹老雷
on 2009-06-07
lkd> u nt!KiSystemCallExit2 l9
nt!KiSystemCallExit2:
8053cccd f644240901 test byte ptr [esp+9],1
8053ccd2 75f8 jne nt!KiSystemCallExit (8053cccc)
8053ccd4 5a pop edx
8053ccd5 83c404 add esp,4
8053ccd8 80642401fd and byte ptr [esp+1],0FDh
8053ccdd 9d ...
Posted in Windows内核调试
by
格蠹老雷
on 2009-06-07