11 2011 档案

摘要:1. inline hook 黑客都喜欢用这个方法,很容易被杀毒软件查出来。 2. 在Device Stack中插入filter driver,也很容易被人看出来,并且你不能保证别人插在你之后。 3. 修改Dispatch函数的入口地址,例如bus hound就是这么干的。 阅读全文
posted @ 2011-11-30 10:45 Fan Zhang 阅读(1254) 评论(0) 推荐(0)
摘要:看上去很像,但又有一些区别,前几天有人问我,当时有点糊涂,这里总结一下。 全局变量取地址用mov offset 例如:mov dword ptr [ebp-14h],offset ConsoleTest+0x94620(00494620) 局部变量取地址用lea 例如: 0042fb24 8d45f8 lea eax,[ebp-8] 0042fb27... 阅读全文
posted @ 2011-11-29 15:43 Fan Zhang 阅读(1269) 评论(0) 推荐(0)
摘要:不管是USB或者8042或者虚拟的Keyboard/Mouse,设备栈最上层都是Kbdclass或者Mouclass,操作系统会专门有个现成不停的向设备栈发送Read IRP。 kd> !devstack 80d8eaa0 !DevObj !DrvObj !DevExt ObjectName > 80d8eaa0 \Driver\Kbdclass... 阅读全文
posted @ 2011-11-28 14:20 Fan Zhang 阅读(1252) 评论(0) 推荐(0)
摘要:内核API是KdDisableDebugger。如果Enable就把第一次字节改成C3(Ret) 阅读全文
posted @ 2011-11-25 17:28 Fan Zhang 阅读(233) 评论(0) 推荐(0)
摘要:先说两个典型的应用 1. IoCompleteRequest内部实现,实现在任意上下文的时候,插入kernel APC,把IO操作结果返给相应的线程。 2. Set/Get 上下文的内部实现。 User mode APC:在系统进入Alert状态才会Deliver ,可以参考KeWaitXXXX系列函数,KeTestAlertThread可以返回是否Altert状态。 Kernel ... 阅读全文
posted @ 2011-11-23 15:41 Fan Zhang 阅读(494) 评论(0) 推荐(0)
摘要:class Number { int number; public: explicit Number(int n){number = n;} operator int() //注意一定不能声明返回值 { return number; } }; int main () { ... 阅读全文
posted @ 2011-11-10 13:11 Fan Zhang 阅读(171) 评论(0) 推荐(0)