IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

2013年3月14日

摘要: 使用内核调试会话也可以执行一些用户态调试任务,比如向位于用户态的模块设置断点。但这样做与使用用户态调试器有什么不同呢?我们就以向NTDLL.dll模块的ZwTerminateProcess函数(Stub)为例谈谈二者的区别。区别一、在内核调试会话中设置这个断点的“难度”略大些。这是因为NTDLL不属于内核态的模块,所以内核会话通常不会加载这个模块(的符号),因此当执行bp命令时很可能被自动蜕化为bu命令。0:kd>bpntdll!ZwTerminateProcessBpexpression'ntdll!ZwTerminateProcess'couldnotberesolv 阅读全文

posted @ 2013-03-14 16:47 Ady Lee 阅读(468) 评论(0) 推荐(0) 编辑

摘要: !process 0 0 winlogon.exe.process /p /r 815196c0!peb (不用此命令,x列不出msgina的符号表).reload /s /f msgina.dllx msgina!*bu msgina!xxxx 阅读全文

posted @ 2013-03-14 14:03 Ady Lee 阅读(232) 评论(0) 推荐(0) 编辑

摘要: 之前的调试winlogon程序,要在系统注册表做些设置。后来看到网上调试lsass程序只要按如下方法:!process 0 0 lsass.exe.process /p /r 815196c0我发觉按上面的方法做,连设置注册表都不需要了,非常方便。接着我们就可以按调用户模式的程序一样下断点调试了。举个例子,我们在登录的过程中需要输入用户名、密码,按如下过程就可以看到输入的内容了。我在user32!GetDlgItemTextW下了个断点,这个API我是在OD下看它的调用参考得来的(你可以复制一份,不运行它,只用来看反汇编,OD反出来的汇编码还是蛮好的)。kd>!process 0 0 w 阅读全文

posted @ 2013-03-14 14:02 Ady Lee 阅读(797) 评论(0) 推荐(0) 编辑

摘要: 调试winlogon尽管winlogon也是用户模式的程序,但是它处理用户的登录、注销、以及CTRL+ALT+DELETE的操作,如果用一般的方法调试,一旦它切换桌面,就无法输入,无法控制调试器了。这里我用“虚拟机+WinDbg+系统自带ntsd”的方法调试。启动虚拟系统先按设置允许winlogon调试,如下:1、建立键值“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File ExecutionOptions\WinLogon.EXE\Debugger”使它的类型REG_SZ,值为“ntsd -d 阅读全文

posted @ 2013-03-14 14:01 Ady Lee 阅读(685) 评论(0) 推荐(0) 编辑

摘要: by Nicolas FalliereThis paper classifies and presents several anti-debugging techniques used on Windows NT-based operating systems. Anti-debugging techniques are ways for a program to detect if it runs under control of a debugger. They are used by commercial executable protectors, packers and malici 阅读全文

posted @ 2013-03-14 11:52 Ady Lee 阅读(557) 评论(0) 推荐(0) 编辑