约有 19 项符合查询结果, 以下是第 2 - 2项。
费时 < 1 秒。
呵呵,Raymond老师,其实我不是对''每个''这两字较真。而是因为不知道“编译器内部有一个简单的判断规则”,本想写个几个语句编译后看一看_chkesp,不料却没看到,呵呵,所以觉得有点奇怪。 :)你所说的简单的判断规则可否理解为: 要看程序本身是否改变了ESP (不考虑编译器自动加入的那些PUSH、POP指令,例如:PUSH esi等)昨晚论坛一直不能访问,心中特焦急... 刚才看到老师的回复后,虽然还不是很明白,但大致有了一点了解。说着说着貌似跑题了,呵呵
Posted in 《软件调试》答疑
by
小兵
on 2010-05-01
P607 (从清单22-15往上数3行)''当编译调试版本时,VC6会自动在每个函数的末尾插入指令来调用一个名为_chkesp的函数。''然而,我发现VC6的调试版本:并不是在每个函数末尾都会插入_chkesp函数。例如下例:#include ''stdafx.h''int main(int argc, char* argv[]){ int i=0; return 0;}对应反汇编代码(使用VC6默认compile与link选项的调试版本,编译选项中有/GZ):CheckThisPuzzle!main:00401010 ...
Posted in 《软件调试》答疑
by
小兵
on 2010-04-30
P605从上往下数第6行,有一个FPO信息: (FPO:[1,2,1])然后在同一页中下方有这句话:根据FPO信息,WinDBG可以知道函数的参数长度(0x4)、局部变量的长度(0x8)、代码块的长度(0x62)等信息。根据FPO:[1,2,1]中的前2个数值是可以知道: 函数的参数长度=0x4、局部变量的长度=0x8, 但是,请问代码块的长度(0x62)这个是如何算出来的啊?这一节看了几遍,还是不清楚这个0x62是从那的,呵呵...
Posted in 《软件调试》答疑
by
小兵
on 2010-04-28
我用命令u查看KiSystemCallExit2中sysexit 指令的地址,然后直接对该地址下断点,就可以了。不知道有其它方法吗?
Posted in Windows内核调试
by
小兵
on 2010-04-16
在ntdll没有设置断点,并且我觉得和ntdll断点没有关系,因为KiSystemCallExit2在ring0。可能在ring0还需要设置什么断点,在刚进入KiSystemCallExit2输入't'指令后,就不会直接返回到ntdll中,而是执行sysexit指令。问题是: 在ring0还要设置什么断点呀? 天呀!呵呵
Posted in Windows内核调试
by
小兵
on 2010-04-15
是呀,直觉上感觉可以''t''进去,呵呵。谢谢!一个相关问题是从ring0返回ring3时,在函数KiSystemCallExit2中,应该执行sysexit指令。(《软件调试》P181)但是对KiSystemCallExit2和KiSystemCallExit3都下断点后, 每次刚进入KiSystemCallExit2(执行第一条指令后), 就直接返回ntdll中。请问这是什么原因? 谢谢大家帮助!
Posted in Windows内核调试
by
小兵
on 2010-04-14
实验环境就是 ''双机的内核调试'' ,呵呵这个应该不是问题的原因所在。谢谢!
Posted in Windows内核调试
by
小兵
on 2010-04-12
看过《软件调试》中用ReadFile函数说明Windows系统的调用过程后,想通过Windbg看到sysenter指令进入KiFastCallEntry例程中的调试过程。(//为了把问题说清楚,增加以下说明 。双机OS都是: Winxp SP2程序执行到ring3的NtReadFile函数调用sysenter指令时,输入t后,Windbg没有进入ring0,而是已执行后返回NTdll中。请问Windbg能否跟踪这个NtReadFile函数进入KiFastCallEntry例程的执行过程?) 我通过双机调试,昨天试了一天都没成功。不知道有什么解决办法,谢谢!
Posted in Windows内核调试
by
小兵
on 2010-04-11
使用windbg时,一些命令的显示结果很长,例如: !process 0 0所以想问一下: windbg是否有分屏显示的辅助命令,类似Linux的 |more ? 或者windbg是否有其他支持的方法?谢谢!
Posted in WinDbg
by
小兵
on 2010-03-30