123456

 

02 2013 档案

8Windows概要
摘要:8.24 EPROCESS结构lkd> !process 93c 0Searching for Process with Cid == 93cCid Handle table at a84d9000 with 1384 Entries in usePROCESS 8583c318 SessionId: 1 Cid: 093c Peb: 7ffdc000 ParentCid: 0d30 DirBase: ce266920 ObjectTable: baff6238 HandleCount: 69. Image: notepad.exe其中8586c318即是进程的E... 阅读全文

posted @ 2013-02-18 20:21 hgy413 阅读(278) 评论(0) 推荐(0)

windbg学习24(!idt)
摘要:!idt显示指定的中断分配表(interrupt dispatch table (IDT))中的中断服务例程(interrupt service routine (ISR))最典型的自陷int 2e,其中断表使用的是:lkd> !idt 2eDumping IDT:2e: 82c8369e nt!KiSystemService如不指定IDT,会简短的显示目标机中所有处理器的IDT:lkd> !idtDumping IDT:37: 82c29104 hal!PicSpuriousService3751: 85e672d8 ataport!IdePortInterrupt (KINTE 阅读全文

posted @ 2013-02-18 20:03 hgy413 阅读(394) 评论(0) 推荐(0)

win7下windbg本机内核调试
摘要:操作比较简单:1.开启调试:2.重启电脑3.File--kernel Debug...--Local,点击确定如提示NT symbols are incorrect, please fix symbols,用.symfix+设置下,再.reload /f即可 阅读全文

posted @ 2013-02-18 18:23 hgy413 阅读(412) 评论(0) 推荐(0)

4断点和单步执行
摘要:4.12在调试器中设置断点当我们在调试器中设置断点,调试器会先把这里的本来指令的第一个字节保存起来,然后写入int3指令,4.13断点命中对于window这种保护模式下的多任务操作系统,INT3异常的处理函数是操作系统的内核函数(KiTrap03),因此执行INT3会导致CPU执行nt!kitrap03函数,KiTrap03对X86 CPU的断点异常会有一个特殊的处理,会将程序指针寄存器的值减1出于上面的原因,我们在调试器中看到的程序指针指向的仍是INT3指令的位置,而不是它的下一条指令,这下做目的有以下两点:1.调试器在使用INT3断点时,总是只替换一个字节,因此,如果程序指针指向下一个指令 阅读全文

posted @ 2013-02-16 17:36 hgy413 阅读(354) 评论(0) 推荐(0)

3中断和异常
摘要:3.13异常来自于CPU本身,是主动产生的,而中断来自于外部设备,是中断源发起的,CPU是被动的3.2异常分为3类:错误,陷阱,中止错误类异常通常可以被纠正,如内存页错误,错误异常处理程序返回时,CPU执行的第一条指令仍是刚才导致异常的那条指令,所以如果导致异常的情况没有消除,会再次产生异常陷阱类异常会执行紧接关要执行的下一条指令,如INT3中止类异常主要用于报告严重错误,不允许恢复继续执行,3.5中断和异常处理的核心数据结构是中断描述符表(IDT)响应的全过程:1.cs和EIP的低16位入栈2.标志寄存器低16位入栈3.清除标志寄存器的IF标志,以禁止其他中断4.清除标志寄存器的TF,RF, 阅读全文

posted @ 2013-02-16 15:05 hgy413 阅读(133) 评论(0) 推荐(0)

导航