- 博客(8)
- 资源 (2)
- 收藏
- 关注
翻译 pg3 bypass源码阅读 —— 学习x64内核hook跳板技术
如之前描述的 pg3复杂了许多先来看看都要hook哪些点1、hook dpc和定时器分发器,防止seh路线触发pgKiTimerListExpire,KiRetireDpcList看一下hook点hook的就是call的位置。这里有两种方案:一种是直接jmp + 64bit addr,显然有同步问题,需要暂停所有c
2012-07-28 06:52:53 3852
翻译 PG2 BYPASS源码阅读 学习x64解密定时器、特征码定位
以前没有接触过x64内核编程,借这份代码来学习一下,源码 http://www.codeproject.com/Articles/28318/Bypassing-PatchGuard-3之前说到过PG3的一些机制,下面根据源码回顾一下PG可能会queue一些dpc来触发syscheck,其中dpc context传入的是非传统地址,从而触发异常,转到异常处理去执行PG。
2012-07-28 03:57:04 2277
原创 patchguard v3
纯理论的看完了三篇PG的文章,还没看代码,还没入手调试.第三代是vista的版本win7 sp1的PG肯定跟uniformed的文章不一样了。回头再研究了。反正到win7的时候貌似已经没有人写一大堆文档在内核里对抗pg了,直接给nt打patch了= =对于x64也是刚接触没几天,资料也不是很系统,还需要进一步学习。原文见http://uninformed.org
2012-07-26 02:46:45 4811
原创 patchGuard v2
算是对http://www.uninformed.org/?v=6&a=1&t=sumry 的一个中文摘要,理解还不一定全对PG2一些改动:cmp cs:KdDebuggerNotPresent, r12bjnz short continue_initialization_1infinite_loop_1:jmp short infinite_loop_1s
2012-07-25 01:19:02 3302
原创 x64 patchGuard v1
PG1使用了一系列加密手段,隐藏自己,核心手段是向三个正常的DPC传入非法DpcContext地址引发异常处理,在异常处理中执行patch扫描保护范围:nt,kidebugroutine,ssdt,gdt idt msr解决方法一:修改pe头部的UnwindData,以改变这三个DPC的异常处理handler 也就是X64的SEH hook。这三个dpc存在于一张表中,搜
2012-07-24 18:55:10 2733
原创 x64的seh
PatchGuard与异常处理密切相关,所以先看看x64的SEH关于x86中内核如何捕获异常,分发异常,可以看http://blog.csdn.net/shevacoming/article/details/7580350上面那篇没有跟进分析RtlDispatchException,这里跟进以复习x86 seh的结构,也看经典的这一篇 http://bbs.pediy.com/
2012-07-24 04:10:57 3178
原创 X64的调用约定
接触x64之后继续看PG的文章,今天开始读msdn上有关x64的解释 http://msdn.microsoft.com/zh-cn/library/7kcdt6fy调用约定简化了:一律使用__fastcall,前四个参数用 RCX、RDX、R8 和 R9传递,除了这四个外加RAX、R10、R11,其他寄存器都是非易失的。比如下面这段NtCreateFile的代码:
2012-07-23 16:40:33 3689
原创 前两天玩了一下mbr
还挺有意思……hook int 13 , hook BlOsLoader,call hook IoInitSystem - > load fake pcidump.sysdr0 hook AtapiDeviceInternalDispatch,隐藏驱动,伪造系统线程XT看不到什么东西,PowerTool可以检测到调试函数被钩,强力检测可以检测到mbr被感染。不想和PT去
2012-07-08 07:30:35 1443 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人