- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 [分析]detours 通过修改输入表注入DLL -- UpdateImports 函数的分析
前段时间有一个需求,就是在进程启动的第一时间实现dll的注入,当时一想以为很简单嘛,比如拦截CreateProcessInternalW等不就行了吗?后来发现如果你在CreateProcessInternalW前处理进程还没有启动,而之后处理的话,进程的主线程已经开始工作了,再后来通过修改创建标志把创建的进程的主线程挂起,等进程创建后我来注入,此时才发现创建远线程搞不定, 此时进程只有NTDLL,
2008-04-18 23:06:00
3751
4
原创 [讨论]关于缓冲区溢出的检测
目前,缓冲区溢出应该是攻击的最直接的方式,因此如何检测缓冲区溢出以及保护刻不容缓 ,然而当前并没有很稳定可靠的方法来对缓冲区溢出进行检测,MACFEE应该是提出缓冲区溢出保护的最早的安全厂商,然而如今也不再对该技术进行大肆宣传了,这几天在网上翻了一下,感觉Comodo公司对缓冲区溢出的检测做的比较好,然后我也看不懂他采用的什么技术,如果哪位牛人来介绍一下他采用的技术就好了.后来又看了gyzy的文章
2008-04-17 02:13:00
3049
1
原创 通过PspTerminateThreadByPointer结束进程
很早前写的代码了,免得腐烂了,贴出来这个思想是在读了PJF牛人 "终止进程内幕" 后才晓得基本思想就是用户态将欲结束的进程PID传递到内核驱动,驱动通过PsLookupProcessByProcessId得到进程的EPROCESS结构,再通过EPROCESS结构找到线程的链表头,遍历这个链表,逐一调用PspTerminateThreadByPointer,将其一个一个的KILL掉这里有三个问
2008-04-16 22:15:00
4187
原创 绕过安全软件挂钩SSDT的检测
很多安全软件都靠挂钩SSDT中的函数来检测恶意代码,就拿卡巴举例吧,他挂了NtCreateKey来检测注册表的创建,NtCreateThread和NtResumeThread/NtWriteVirtualMemory来检测远程注入, 等等,这些钩子让我们后期的动作很可能暴露,怎么样才能为所欲为呢?我这里提一种方案:1. 首先在用户态读取NTOSKRNL.EXE,找出原始的SSDT的位置,提交到内核
2008-04-16 21:31:00
1380
原创 guitoolkit 的使用问题
1.Uxtheme.h Tmschema.h 去找到放进来2.VisualStylesXP.cpp VisualStylesXP.h 没有包含进来,会导致出现CVisualStylesXP类的函数没有导出之类的错误3. _AfxAdjustRectangleGuiToolKit4._AfxAdjustRectangleGuiToolKitint _afxDropDownWidthGuiToolK
2008-04-16 20:56:00
4412
2
原创 vc6定制驱动程序AppWizard -- vc6 custom AppWiZard for Simple Driver Development
DriverStudio提供了驱动程序的向导,但是我觉得里面的代码不是我想要的简单明了的方式,况且它和vc6的接合度也不高,如果能够在vc6 "新建工程" 里面就有直接生成驱动程序的向导,那世界该有多美妙啊,后来找到几篇文章>,原来还真有这样的东西,一番折腾后终于发现,无论在工程里面怎么更改,始终不变的是vc6使用其自带的cl.exe来编译程序,用link.exe来链接,最后又找到一个Dr
2007-10-27 18:03:00
1916
原创 更加稳定的HOOK SSDT(通过MDL方式)
传说修改cr0寄存器后再写SSDT在多核CPU不稳定,因此提供一个更加稳定的写SSDT表的方式,代码如下//// 挂钩函数//BOOL HookSSDT()...{ PMDL pMdlSystemCall = NULL; DWORD * MappedSystemCallTable = 0; pMdlSystemCall = IoAllocateMdl(
2007-10-27 17:02:00
4885
原创 卸载其他进程中的模块/dll
前段时间做了一个东西,在所有进程中都挂接了自己的DLL,结果每次要重新编译DLL让其运行都需要重启计算机,这下可有点郁闷, 得想想办法手动卸载了这些DLL,因此变有了这个程序原理: 通过在指定的进程中创建远程线程,然后在线程中调用FreeLibrary把相应的模块卸载就OK了,就这么简单,废话就不多说了,代码中我已经给出详尽的注释了// FreeModule
2007-08-08 03:37:00
1685
1
原创 如何使用 C++ 方式来编写驱动
这个问题可能会很无聊,而且觉得连这个题目都不好拟,但我还是以我的方式记下来了,觉得有用的朋友就尽管拿去用,不过我觉得可能性很小问题的由来: c源文件是以"c"为后缀的 ,而纯c语言都是在函数的开始就将所有用的变量全部定义好,然后在函数中使用,如果不按照这个规定,那么等待你的就是在编译的时候将你处以极刑,这个让我觉得非常郁闷,我就是想在使用的时候再定义一个变量,这样可以让我的程序更
2007-08-06 03:09:00
3057
1
原创 用户态轻松调用ntdll中的native api
ntdll中的native api功能非常强大,然而微软却没有提供用户态调用native api的接口,而这些native api所需要的数据结构微软也基本没有公布,幸好有了一批牛人的贡献,给出了很多native api的定义,让我们的生活免去了许多痛苦,本文在介绍了最基本的native api的调用方式之外,还介绍了一种更加优美,移植性更强的调用方式 调用方式一(一般方式):第一步:
2007-08-06 01:47:00
6256
原创 vc6中集成驱动编译环境的配置方法
本方法是来源于自《windows防火墙与网络封包截获技术》 ,我只是厚颜无耻的加了点东西贴在这里,一是为不知道如何搭建环境的朋友行个方便,二是在这里做一个备忘录(以前的老blog里面讲的不清不楚,因此这次翻新整理一下)编译驱动当然可以使用命令行来编译,但是如果能够在vc6里面就集成驱动的编译将会使一件非常痛快的事情,毕竟vc的IDE环境对源代码的管理、编写支持的非常好,况且还有可爱的vc助手,
2007-08-05 02:41:00
1831
原创 服务进程创建同explorer相同用户的子进程
创建同explorer相同用户的进程,有什么作用呢?有这样一种情况,如果你的进程是以系统服务启动的并要进行屏幕获取工作,你可以试试看,能不能把屏幕获取下来.呵呵..有一种办法就是创建一个和explorer相同用户的子进程其中的一种方法:// szProcPath 为进程的路径BOOL CMainFun::StartExplorerProc(char *szProcPath)...{
2007-07-19 11:56:00
1748
原创 获取进程完整路径探索
要想获取进程的完整路径,使用PSAPI提供的函数 GetModuleFileNameEx() 就可以轻松的办到下面是一个例子:/**//*用户态使用 psapi 函数进程进程查询*/#include "stdio.h"#include "windows.h"#include "psapi.h"#pragma comment(lib,"psapi.lib")//需要额外添加 psapi.h 以
2007-07-19 11:04:00
4918
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人