底层
文章平均质量分 73
whitesilt
这个作者很懒,什么都没留下…
展开
-
FS获取KERNEL32基址的三种方法
FS寄存器指向当前活动线程的TEB结构(线程结构)偏移 说明000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUserPointer018 FS段寄存器在内存中的镜像地址020 进程PID024 线程ID02C 指向线程局部存储指针转载 2013-10-14 08:42:26 · 1916 阅读 · 0 评论 -
文件过滤驱动Sfilter学习笔记
转载自:http://mzf2008.blog.163.com/blog/static/3559978620114156433999/1.DriverEntry例程(1)创建过滤驱动的控制设备, 以后我们的IO控制码就是发到这个设备上面//这里的设备名与普通设备有所不同.//当然, 最简单的可以直接写成 L"\\Device\\Filemontor";(File转载 2013-12-01 13:27:21 · 1322 阅读 · 0 评论 -
TIB --- FS
转载自: http://en.wikipedia.org/wiki/Win32_Thread_Information_BlockContents of the TIB[edit]PositionLengthWindows VersionsDescriptionFS:[0x00]4Win9x and NTCurr转载 2013-11-30 17:58:41 · 1317 阅读 · 0 评论 -
SysEnter Hook
#include ULONG g_OldKiFastCallEntry; // Original value of ntoskrnl!KiFastCallEntryVOID OnUnload( IN PDRIVER_OBJECT DriverObject ){ _asm { mov ecx, 0x176 xor edx,edx转载 2013-11-30 18:42:30 · 909 阅读 · 0 评论 -
谈一个Kernel32当中的ANSI到Unicode转换的问题
转载自:http://blogs.360.cn/blog/谈一个kernel32当中的ansi到unicode转换的问题/众所周知,Windows的几乎所有带有字符串参数的API都是有W和A两个版本,分别对应于Unicode和ANSI版本。同时,Windows内部是使用Unicode的,因此所有的A版本的API函数都是实际上调用了一次ANSI到Unicode的字符集转换之后,再转载 2013-11-30 20:34:45 · 736 阅读 · 0 评论 -
简单实现了下SSDT SHADOW HOOK
转载自:http://blog.csdn.net/evi10r/article/details/6932607介绍: SSDT SHADOW HOOK可用于安全软件窗口保护、安全输入、截屏保护等。例如:挂钩NtUserFindWindowEx、NtUserGetForegroundWindow、NtUserBuildHwndList、NtUserQueryWi转载 2013-12-06 15:42:28 · 1414 阅读 · 2 评论 -
ObjectHook
转载自:http://mzf2008.blog.163.com/blog/static/35599786201152045341614/其实这东西很多大牛多玩腻了的东西,看下论坛上比较少这类的,就来献献丑,科普一下 大牛们直接可以飘过,这东西主要是自我复习一下OBJECT的一些知识,技术这东西久了不弄容易忘记,所以拿出来跟和我一样菜的菜鸟们分享一下。如果有不对的地方欢迎大家指正转载 2013-12-01 13:55:23 · 741 阅读 · 0 评论 -
Hook ZwQueryDirectory
转载自:http://mzf2008.blog.163.com/blog/static/35599786201151045439455/#include typedef BOOLEAN BOOL;typedef unsigned long DWORD;typedef DWORD * PDWORD;typedef unsigned long ULONG;typedef unsigne转载 2013-12-01 13:57:28 · 1073 阅读 · 0 评论 -
PE感染-添加节区
#include #include #include //本程序只适用于载入基址定位的。。。非随机基址//感染指定目录的PE文件char ItIs[MAX_PATH] = "D:\\桌面\\感染PE\\感染目录";//添加了一个新节区//然后shellcode是添加一个名为a,密码为a的administrator//然后PEB定位kernel32只在我的win7 x64电脑上测试原创 2013-12-02 13:29:04 · 1287 阅读 · 1 评论 -
HOOK SSDT NtOpenProcess 保护进程
感谢众大神分享的技术,因为几乎没参考别人的源码,所以就标题原创但是因为这个技术肯定是前辈分搞出来的,所以就特意说明下,此乃转载耶模板用的张帆大牛的记录一下,以后备用原创 2013-12-03 11:31:32 · 3184 阅读 · 1 评论 -
内核解惑:zw函数和nt函数的区别
转载自:http://hi.baidu.com/resoft007/item/eb510a0d0ae2ac03addc7019http://bbs.pediy.com/showthread.php?t=106888http://bbs.pediy.com/showthread.php?t=55142解惑:http://blog.csdn.net/u012410612/artic转载 2013-12-03 15:42:04 · 6451 阅读 · 0 评论 -
IRQL
Managing Hardware Prioritieshttp://msdn.microsoft.com/en-us/library/windows/hardware/ff554368(v=vs.85).aspxThe IRQL at which a driver routine executes determines which kernel-mode driver sup转载 2013-12-10 16:25:08 · 961 阅读 · 0 评论 -
自实现API, 过所有用户层HOOK
//绕过用户层HOOK,自实现API函数//学习了郁金香驱动教学视频 043_绕过所有用户层HOOK(郁金香绕过的是FindWindow)//用相同的原理我实现了绕过SendMessageA()//实现过程中有一些感谢一并记录//win xp x86//__declspec(naked)作用: 生成纯汇编#include #include //7C92E4F0 > 8BD4原创 2013-12-10 16:28:05 · 1702 阅读 · 1 评论 -
WDF驱动中KMDF与UMDF区别
转载自:http://emesjx.spaces.eepw.com.cn/articles/article/item/84585众所周知, 早期的Windows 95/98的设备驱动是VxD(Virtual Device Driver),其中x表示某一类设备。从Windows 2000开始,开发驱动程序必以WDM(Windows Driver Model)为基础的,但是,如果使用D转载 2013-12-04 20:52:26 · 1207 阅读 · 0 评论 -
结构体(含位域)的sizeof 对齐相关
转载自:http://blog.csdn.net/hyljqr/article/details/500899结构体的sizeof先看一个结构体:http://www.cwba.com.cnstruct S1{ char c; int i;};http://www.shishangmeinv.com.cn sizeof(s1)在转载 2013-12-05 20:50:53 · 665 阅读 · 0 评论 -
DDK编译时遇到一个问题 0>Bad Path string
转载自: http://blog.csdn.net/itmes/article/details/7911778编译sanbootconf的时候把源码放在桌面源码的路径中包含了中文字符,所以报以下错误以为这个path在环境变量中,反复尝试也没找到解决的方法把源码拷贝到D盘的根目录下重新编译也没有解决问题BUILD: Compile and Link转载 2014-03-03 21:21:40 · 1990 阅读 · 0 评论 -
InlineHook 通用
NTSTATUSInlineHookFuncXP ( IN PVOID FuncAddress, IN PVOID NewFuncAddress )/*++Author : MJ0011User : sudami [xiao_rui_119@163.com]Time : 08/01/24 参数 : FuncAddress -转载 2013-12-01 13:01:50 · 794 阅读 · 0 评论 -
SSDTHOOK关于拦截时弹窗的问题
每次SSDT Hook做拦截的时候,都会弹出一个框来,如下: 如何去掉这个弹框,方法是在看雪上看到的(据说是MJ说的):如果是NtCreateSection时拦截,返回STATUS_SUCCESS如果是NtCreateProcess时拦截 ,返回0x80070000或者设置当前进程的HardErrorControl/ExceptionPort转载 2013-11-30 19:06:19 · 714 阅读 · 0 评论 -
快速系统调用
转载自:http://mzf2008.blog.163.com/blog/static/35599786201121011337777/用户层:首先Windows还是调用R3层的函数NtReadFile(),不过此函数相对以前直接用int 0x2e进入内核有了较大的变化.我们来看一下,函数如下:__declspec(naked)__stdcall{ __转载 2013-11-30 18:06:25 · 1166 阅读 · 0 评论 -
ntdll.dll和ntoskrnl.exe中的NT*和ZW*函数区别
转载自:http://blog.csdn.net/sysprogram/article/details/5805265以NtOpenProcess和ZwOpenProcess为例,结合Windbg的lkd调试来说明1、Q:ntdll.dll中的Nt*和Zw*区别?lkd> u ntdll!zwopenprocess l4ntdll!ZwOpenProcess转载 2013-10-15 13:03:41 · 915 阅读 · 0 评论 -
线程本地存储TLS(Thread Local Storage)的原理和实现——分类和原理
本文为线程本地存储TLS系列之分类和原理。一、TLS简述和分类我们知道在一个进程中,所有线程是共享同一个地址空间的。所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线程对其进行了修改,也就会影响到其他所有的线程。不过我们可能并不希望这样,所以更多的推荐用基于堆栈的自动变量或函数参数来访问数据,因为基于堆栈的变量总是和特定的线程相联系的。不过如果转载 2013-10-15 13:06:10 · 775 阅读 · 0 评论 -
判断操作系统版本
转载自:http://blog.csdn.net/sun307146966/article/details/8791400 and http://blog.csdn.net/prince_jun/article/details/8277816Windows操作系统的版本号一览操作系统PlatformID主版本号副版本号Wind转载 2013-10-17 15:17:37 · 721 阅读 · 0 评论 -
Win7 CreateRemoteThread 另类使用方法
转载自:http://blog.csdn.net/wangningyu/article/details/6456607同样的代码,在XP下面随便你怎么整,WIN7的话是相当纠结的,具体哪些错误就不解释了 ~~ gg点了二十多页,在韩国某大牛的博客上总算找到一点思路(虽然看不懂韩文,但代码还算勉强看得懂吧) 原来是要用动态调用ntdll.dll >转载 2013-10-27 10:46:06 · 862 阅读 · 0 评论 -
用EnumProcesses()枚举进程
转载自:http://blog.csdn.net/sunny_forever/article/details/7498034ps:toolhelp函数在64位上貌似不行了参照msdn的例子,用EnumProcesses()枚举进程并输入进程名和句柄。以下代码在vs2008中测试通过:#include "stdafx.h"#include #inclu转载 2013-10-27 11:51:37 · 3391 阅读 · 0 评论 -
x64系统的判断和x64下文件和注册表访问的重定向(3)
转载自:http://blog.csdn.net/magictong/article/details/5895482 下面谈谈x64系统下文件的重定向: x64下文件的重定向依然是WOW64具体执行细节的一部分,跟注册表重定向一样同样是为了将32为程序和64位程序分开。所谓文件重定向通俗点讲就是你去访问某些文件夹的文件的时候,会被定位到其他文件夹下面的文件去,而转载 2013-10-30 13:21:35 · 816 阅读 · 0 评论 -
x64系统的判断和x64下文件和注册表访问的重定向(1)
转载自:http://blog.csdn.net/magictong/article/details/5838863 判断一个32位应用程序是否运行在x64系统下,可以使用下面的代码:[cpp] view plaincopyBOOL IsX64System() { BOOL bIsWow64转载 2013-10-30 13:20:19 · 790 阅读 · 0 评论 -
x64系统的判断和x64下文件和注册表访问的重定向(2)
转载自:http://blog.csdn.net/magictong/article/details/5892209 关于文件和注册表的重定向: 需要这个技术的原因是需要在x64系统上面把32位程序和64位程序分离开。这种技术有个强大的名字叫WOW64,注意不是魔兽世界64级哦,哈哈。 出于一些特殊的目的,一些注册表键被分成了两个部分,主要有以下一些:转载 2013-10-30 13:21:01 · 686 阅读 · 0 评论 -
VMware+Windgb内核驱动调试
转载自:http://www.cnblogs.com/lzjsky/archive/2010/12/14.html原文地址:http://hi.baidu.com/1ian9yu/blog/item/96e29bb357acbfa2d8335a25.html根据此文,很顺利的完成了源码级调试设置。 呵呵,搞点突兀的标题而已。其实说的还是如何使用WinDBG和转载 2013-11-15 18:54:57 · 2051 阅读 · 0 评论 -
drivertype=fs和drivertype=wdm
转载自:http://www.osronline.com/showThread.CFM?link=13007425 Apr 08 08:12ntdev member 37845xxxxxx@gmail.comJoin Date:Posts To This List: 7转载 2013-11-18 21:07:28 · 1876 阅读 · 0 评论 -
无Device的驱动如何通信
转载自:http://hi.baidu.com/_achillis/item/7e264e08db884b94a2df431f标准的驱动与ring3的通信过程是这样的:驱动中创建设备,并为设备创建符号链接,ring3用CreateFile打开符号链接得到设备句柄,然后DeviceIoControl发送ControlCodeDeviceIoControl的内容被封装成IR转载 2013-11-22 22:29:25 · 1267 阅读 · 0 评论 -
Vista/Win7中绕过UAC自启动
转载自:http://www.shily.net/topic/bypassing-uac-since-the-launch-on-vista-win7/#more-136在开启了UAC的Vista/Win7/windows server 2008 等系统上,如果程序使用manifest进行了提权(requireAdministrator),程序在启动的时候系统会弹出一个全局的对转载 2013-11-13 21:11:31 · 1778 阅读 · 0 评论 -
ZwQuerySystemInformation枚举进程
mark一下#include #include #include #define SystemProcessesAndThreadsInformation 5// 动态调用typedef DWORD (WINAPI *ZWQUERYSYSTEMINFORMATION) (DWORD, PVOID,转载 2013-11-28 22:55:39 · 1891 阅读 · 0 评论 -
在EPROCESS中搜索ProcessName的偏移
ULONG gProcessNameOffset;void GetProcessNameOffset(){ PEPROCESS curproc; int i; curproc = PsGetCurrentProcess(); for( i = 0; i < 3*PAGE_SIZE; i++ ) { if( !strncmp( "System", (PCHAR) curproc转载 2013-11-30 18:35:30 · 1011 阅读 · 0 评论 -
从Dump到POC系列一:Win32k内核提权漏洞分析
转载自:http://blogs.360.cn/blog/dump-to-poc-to-win32k-kernel-privilege-escalation-vulnerability/1.引言近日有同事反馈给笔者一个win32k的蓝屏崩溃dump,说是在开发新的界面程序中遇到的。笔者在对拿到的Minidump进行分析后,发现这是win32k.sys在处理内转载 2013-11-30 22:07:15 · 1430 阅读 · 0 评论 -
Minifilter的动态安装、加载及卸载
转载自:http://www.cnblogs.com/js2854/archive/2011/04/03/sysload.htmlMINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instances子键,然后读取Def转载 2014-03-06 19:59:41 · 958 阅读 · 0 评论