约有 16 项符合查询结果, 以下是第 1 - 2项。
费时 < 1 秒。
是么,那我要怎么样才能确认我看到的堆栈是正确的呢?
其实我不是很明白,我切换了进程上下文,windbghelp说还有什么线程上下文,寄存器上下文,
原文是thread context, regist context, local context,
我到底要切换几个上下文?单线程下是不是只要切换进程上下文就足够了,我如何判断我或得的堆栈是正取得,
我举个例子,我明明在一个api:writeprocessmemory下,
我下step F11跟进去看,没办法进入内核态了,只能breakin,接着我看到的就是乱气八糟的东西,我是说不像一条不进入内核态的函数那么规范,
我在内核调试下怎么样调试呢,我如何才能F11跟下去,因为我一旦breakin ...
Posted in Windows内核调试
by
sgyhm
on 2007-06-25
第一次内核调试,windbg真不方便。
是这样的,我本来是想看看copy on write到底是怎么产生的,
该死这条API进入内核态,WriteProcessMemory。
我本来想跟进取看看,没办法只能进入内核调试了。
谁知道我在本机键入.breakin以后,
唉windbg help要我什么切换process context, regist context等等,
我只想问下我到底要怎么做,看不懂,太多context,能不能给个步骤,1,2,3,4我应该怎么做?
其实我已经通过.process 切换了进程上下文,kb以后发现堆栈还是不对,跟我在用户态的堆栈不一样。
根本不知道去了哪里。
谢谢。
Posted in Windows内核调试
by
sgyhm
on 2007-06-24
楼上的,这个地址我也下载了,没用阿,顶楼说的是:完整的安装光盘。我下载你说的这个sp2,接着就不让我安装,说什么checked build can not install on free build.
就是我缺少一个xp checked build
不是么?
Posted in Windows内核调试
by
sgyhm
on 2007-05-31
是的是的,我已经非常非常清楚,您所说的:首先会根据段寄存器中的段选择子在GDT或LDT中找到一个描述符,取其中的基地值,加上这个偏移,等到所谓的线性地址
其实Intel 指令手册第三卷中关于保护模式已经详细地说明了这个问题,我觉得我自己是比较清楚了。关于PTE,页属性我也都看了,我觉得我非常清楚了,
让我很混乱的是:所谓Windows Flat内存模式,Undocument Winnt上指示说那代表其实windows是不分段的,只使用段偏移,段选择子只加载一次,如下0008 Code32 Base=00000000 ...
Posted in Windows内核调试
by
sgyhm
on 2007-04-14
是这样的,我想问下Windows 在Intel Protection Mode下工作的问题。在指令手册第三卷system programming 可以看到,通常GDT只有一个,而LDT可以有很多的。本来我很天真地想:那么我有多少个进程在running 就应该有多少个LDT才对。于是我打开softice, 输入GDT结果只有一个被标为LDT,参考了using softice,只看到如下一段:Under Winnt , LDT are per process data structures and are only used for virtual dos machines.The 16 bit WOW box is executed within a NTVDM ...
Posted in Windows内核调试
by
sgyhm
on 2007-04-13
请问下Windbg help里的这条指令什么意思?
MASM Numbers and Operators
Numeric Operators in MASM Expressions
Any component of an expression can be modified with a unary operator, and any two components can be combined with a binary operator. Unary operators take precedence over binary operators. When multiple binary operators are used, they follow fixed ...
Posted in WinDbg
by
sgyhm
on 2007-04-03
#include ''stdafx.h''
int main(int argc, char* argv[])
{
int x = 16; Line1
int me = 10; Line2
int sizea = sizeof(int); Line3
me = me +10; Line4
return 0; Line5
}
以上是source code
操作如下:
1、Open Executable File debug version to debug
CommandLine: F:\work\CallFunction\Debug\CallFunction.exe
Symbol search path is: *** ...
Posted in WinDbg
by
sgyhm
on 2007-03-29