
Windows系统
文章平均质量分 72
BMOP
这个作者很懒,什么都没留下…
展开
-
WH_CBT监控有窗体的进程创建
很久很久以前搜到以前博客的一篇文章,一个项目要求是在Windows Server 2008 x64 R2下监控有窗体的cmd/powershell创建,当时采用了WH_CBT应用层消息拦截的方法来监控进程创建。 1 BOOL WINAPI SetHook(BOOL fInstall) { 2 3 BOOL fOk; 4 if (fInstall) 5 {原创 2014-02-26 01:00:55 · 6561 阅读 · 0 评论 -
底层技术自警
目前来说,国内的几个以底层技术为主要内容的论坛,如debugman等,上面讨论的几乎都是奇技淫巧的东西。。。正儿八经的东西反而少人问津。。。。。比如,很多人讨论如何去杀进程,隐藏文件,反杀,反应藏,破解,反破解,外挂,木马,pacth别人的程序,hook等等等。。。。。。但是,你知道什么是SCSI存储架构吗?NDIS架构各例程的细节是怎么样的?TDI接口是如何走到SOCKET的?虚拟盘的几种实现方转载 2014-02-19 23:28:16 · 610 阅读 · 0 评论 -
WinDbg调试手册
WinDbg调试手册 – 标准命令WinDBG的大多数功能是以命令方式工作的, 本系列将介绍WinDBG的三类命令, 标准命令, 元命令和扩展命令.标准命令===============标准命令用来提供适用于所有调试目标的基本调试功能.所有基本命令都是实现在WinDBG内部的, 执行这些命令时不需要加载任何扩展模块. 大多数标准命令是一两个字符或者符转载 2014-02-24 14:26:26 · 776 阅读 · 0 评论 -
针对函数的多线程inline API HOOK
源自:http://blog.youkuaiyun.com/yiyefangzhou24/article/details/7523449Inline API HOOK方法有很多,常见的一种方法无需内嵌汇编语句,原理简单易懂,针对64位微软操作系统不允许内嵌汇编这种无解的事比较给力(列宁大神提供的消息,本人未亲自尝试)。下面简单说一下这种方法的原理。 首先说一说inline HOOK转载 2014-07-29 15:43:43 · 1121 阅读 · 0 评论 -
贴一段WM_DEVICECHANGE判断盘符的小代码
这个函数作为SetWindowsHookEx的第二个参数 大一上写的小代码LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam){ if (nCode >= 0) { CWPSTRUCT *msg = (CWPSTRUCT *)lParam; if (msg->message == WM_D原创 2014-02-26 23:19:35 · 2203 阅读 · 0 评论 -
x86 SYSENTER HOOK
准备资料: 自2000以后Windows系统不再用int 2e或通过IDT来请求系统调用表中的服务,而是使用快速调用方法fast call method.在这种方法中,NTDLL向EAX寄存器中加载被请求服务的系统调用号,向EDX寄存器中加载当前堆栈指针ESP。然后发出Intel指令SYSENTER。 SYSENTER指令将控制权传递给模型相关寄存器(Model-Specifi原创 2014-02-26 00:52:50 · 1828 阅读 · 0 评论 -
x86 IDT HOOK
准备资料: 中断描述符表(Interrupt Descriptor Table,IDT)显然是用来处理中断的。IDT指定了如何处理诸如下一个键、发生页面错误或用户进程请求SSDT时所触发的中断。本文介绍HOOK IDT中的向量0x2E,该钩子在SSDT中的内核函数之前进行调用。 处理IDT时需要注意两点,每个处理器都有自己的IDT,需要钩住系统上的所有IDT。 当应用原创 2014-02-26 00:52:21 · 950 阅读 · 0 评论 -
转30行Hook KiFastCallEntry
膜拜一下#include ULONG d_origKiFastCallEntry; // Original value of ntoskrnl!KiFastCallEntryVOID OnUnload( IN PDRIVER_OBJECT DriverObject ){ DbgPrint("ROOTKIT: OnUnload called\n");}__decl转载 2014-02-19 21:53:17 · 896 阅读 · 0 评论 -
DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)
之前几篇文章主要介绍和分析了为什么会在DllMain做出一些不当操作导致死锁的原因。本文将总结以前文章的结论,并介绍些DllMain中还有哪些操作会导致死锁等问题。(转载请指明出于breaksoftware的csdn博客) DllMain的相关特性 首先列出《DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析》中论证转载 2014-07-25 23:42:12 · 649 阅读 · 0 评论 -
EasyHook应用层inline hook实例
大名鼎鼎的detour想必大家都知道,可以detour x64微软居然售价9999美刀...(此处省略吐槽一万字)在此本菜向大家介绍一款美帝的免费开源库EasyHook(inline hook),下面是下载地址http://easyhook.codeplex.com/releases/view/24401 把头文件 lib文件全拷贝在工程文件夹中,把dll拷贝在%system32%原创 2014-02-26 00:45:46 · 4703 阅读 · 0 评论 -
Windows Job简介
一直以来对这个东西总是搞不清楚,看了几遍Windows核心编程后,总算是有一点点感觉了,欢迎高手对我不正确的理解拍砖指正。Job可以被理解为进程的容器,而它又不是单纯的容器,按照书本上所讲的,Job是一个沙盒,它可以为在它里面运行的进程增加一系列的限制。包括每一个进程或者整个Job能够使用的User mode CPU时间,每一个进程或者整个Job最多能使用的内存,Job内的进程能否访问到J转载 2014-09-27 15:45:15 · 3999 阅读 · 0 评论 -
VC++实现Vista和Win7系统低权限程序向高权限程序发消息
Windows 7已经隆重发布,但是很多程序员已经通过RTM等版本尝到了Windows 7的甜处。那么在Windows 7下用户界面特权隔离,将是本文我们介绍的重点。我们介绍了操作系统服务的Session 0隔离,通过Session 0隔离,Windows 7实现了各个Session之间的独立和更加安全的互访,使得操作系统的安全性有了较大的提高。从操作系统服务的Session 0隔离尝到了转载 2014-10-24 23:25:04 · 755 阅读 · 0 评论 -
实现GetProcAddress
标 题: 【原创】完美实现GetProcAddress作 者: blueapplez时 间: 2010-09-27,22:11:13链 接: http://bbs.pediy.com/showthread.php?t=121226// 本文系转载,代码中的部分注释是我学习中写的,通过作者的探索,让我了解了更多的关于GetProcAddress函数的细节,再次对前人的探索以及无私转载 2014-10-01 19:35:00 · 1852 阅读 · 0 评论 -
x86 内核函数detour补丁
本文和代码来自rootkit——windows内核的安全防护下面展示一个rootkit示例,可以解释对内核函数的detour补丁 1 #include "ntddk.h" 2 3 NTSYSAPI 4 NTSTATUS 5 NTAPI 6 NtDeviceIoControlFile( 7 IN HANDLE hFile, 8 IN HAND原创 2014-02-26 00:53:48 · 918 阅读 · 0 评论 -
x86 混合式钩子
如果希望在加载目标进程或DLL时获得通知,操作系统提供了一个非常有用的函数PsSetImageLoadNotifyRoutine。如名称所示,该函数注册了一个每次将映像加载到内存中时都要调用的驱动程序回调例程。NTSTATUS PsSetLoadImageNotifyRoutine( IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine原创 2014-02-26 00:54:11 · 694 阅读 · 0 评论 -
R3文件占坑大法
本文来自PEDIY 1 #include 2 #include 3 4 BOOL OccupyFile( LPCTSTR lpFileName ); 5 6 7 int main() 8 { 9 OccupyFile(L"C:\\1.txt");10 system("pause");11 return 0;12 }13转载 2014-02-26 00:50:40 · 1616 阅读 · 0 评论 -
傀儡进程内存Dump
傀儡进程(参见《动态加载并执行Win32可执行程序》),简单的说是指通过给CreateProcess传递一个CREATE_SUSPENDED参数可以使得被创建的子进程处于挂起状态,此时EXE的映像会被加载到进程空间中,但是并不会立即被执行,除非调用ResumeThread。在ResumeThread之前,通过GetThreadContext获取主线程的上下文以取得PEB等,调用ZwUnmapVie转载 2014-03-01 00:48:53 · 1437 阅读 · 0 评论 -
x64 PEB简介 && 有关PEB的一些函数
尽管操作PEB BLOCK现在已经没什么价值了,但是PEB BLOCK作为内核的一个重要结构,这里还是提一下:x64 EPROCESS结构 +0x000 Pcb : _KPROCESS +0x160 ProcessLock : _EX_PUSH_LOCK +0x168 CreateTime : _LARGE_INTEGER原创 2014-02-18 21:05:37 · 6954 阅读 · 1 评论 -
x64位微软Windows内核重要的安全机制简介
Win32 Hook来Hook去很蛋疼……各种Hook Irp hookssdt hookidt hooksssdt hooksysenter hook....还有各种DKOM摘链行为,比如人们喜闻乐见的EPROCESS摘链=。=hook到都形成了hook链 你hook你的,我hook我的……Win32脆弱的内核安全机制使得rk大行其道,一旦加驱成功,系统基原创 2014-02-18 22:41:47 · 3215 阅读 · 0 评论 -
利用Fltmgr加载驱动
#include#includetypedef struct _tagLOAD{ WORD Len; WCHAR ServiceName[512];} LOAD , *PLOAD;#define MAGIC_IOCTL 0x00088004VOID WINAPI make_reg( LPWSTR szDriverName, LPWSTR sz转载 2014-04-16 20:20:24 · 896 阅读 · 0 评论 -
VS2012上64位驱动恢复_asm关键字完整方案
首先是kx上的帖子 提示了Intel Parallel Studio XE这个玩意 下面我把我自己的配置流程说一下1、去官网下载Intel Parallel Studio XE 2015原创 2014-09-20 13:49:33 · 2628 阅读 · 0 评论 -
转一下PT的记录
x64里由于无法内联汇编语句,所以必须专门写asm文件来编译汇编语言,先总结一下R0里面如何编译:1. 下载MASM64编译器(Tesla.Angela修改版),下载地址:http://good.gd/1399004.htm 然后写一个编译的bat文件(假设装在C盘下面,项目在D:\Devlopment\test,asm文件叫x64.asm)@Set Prog转载 2014-09-10 14:45:42 · 559 阅读 · 0 评论 -
x86 IRP HOOK
内核中一个很好的隐藏位置是每个设备驱动程序中包含的函数表。在安装驱动程序时,它初始化一个函数指针表,这些指针包含了它的各种类型I/O请求报文(I/O Request Packet IRP)处理函数的地址。IRP处理多种类型的请求,例如读、写和查询。由于驱动程序处于控制流中非常低的层次,因此它们是理想的钩子位置。以下是微软公司DDK定义的标准IRP类型列表:// Define the原创 2014-02-26 00:53:16 · 1427 阅读 · 0 评论 -
32位的SSDT表结构浅析
以win7 x86为例(x64就不是我等菜鸟玩的了) 预备资料: 本地系统服务的地址在内核结构中称为系统服务调度表(System Service Dispatch Table, SSDT)中列出。该表可以基于系统调用编号进行索引,以便定位函数的内存地址。还有一个系统服务参数表(System Service Parameter Table,SSPT)指定了每个系统服务的函数原创 2014-02-26 00:51:44 · 2050 阅读 · 0 评论 -
MiniFilter简介
minifilter是sfilter后微软推出的过滤驱动框架。相比于sfilter,他更容易使用,需要程序员做的编码更简洁。系统为minifilter专门制作了一个过滤管理器,这个管理器本身其实是一个传统过滤驱动,它向minifilter的使用者提供许多接口,让原本复杂的文件过滤驱动变得方便简单。之所以简单是因为传统的过滤驱动把大量的工作放在绑定设备上,而现在这些工作都交给minifilter中的转载 2014-10-20 23:59:12 · 7122 阅读 · 1 评论