2008年04月18日

原创 [分析]detours 通过修改输入表注入DLL -- UpdateImports 函数的分析

前段时间有一个需求,就是在进程启动的第一时间实现dll的注入,当时一想以为很简单嘛,比如拦截CreateProcessInternalW等不就行了吗?后来发现如果你在CreateProcessInternalW前处理进程还没有启动,而之后处理的话,进程的主线程已经开始工作了,再后来通过修改创建标志把创建的进程的主线程挂起,等进程创建后我来注入,此时才发现创建远线程搞不定, 此时进程只有NTDLL,其他模块还没有加载呢.再最后终于发现了detours 2.1为我们提供了一个函数DetourCreateProcessWithDllW,它可以实现在进程创建初期就将dll加载进去,下面我就来分析一下detours怎么做到在进程初期就将dll加载进程的. 阅读全文>

发表于 @ 2008年04月18日 23:06:00|评论(loading...)|编辑

2008年04月17日

原创 [讨论]关于缓冲区溢出的检测

目前,缓冲区溢出应该是攻击的最直接的方式,因此如何检测缓冲区溢出以及保护刻不容缓 ,然而当前并没有很稳定可靠的方法来对缓冲区溢出进行检测,MACFEE应该是提出缓冲区溢出保护的最早的安全厂商,然而如今也不再对该技术进行大肆宣传了,这几天在网上翻了一下,感觉Comodo公司对缓冲区溢出的检测做的比较好,然后我也看不懂他采用的什么技术,如果哪位牛人来介绍一下他采用的技术就好了.后来又看了gyzy的文章"基于栈指纹检测缓冲区溢出的一点思路"以及czy对其的点评,可以看出,这两位牛人对漏洞的分析利用都有着非凡的经验,然而从文章中也看的出按照这样的技术思路还不能应对很多缓冲区溢出, 首先就是基于这样的返回地址检测本身的不稳定,kaba也只是把他作为特征码扫描的一个补充,如果单单这样的话,绕过的方法肯定不只是 修改teb和push ret+jmp这两种方法, 其次就是对于堆溢出的检测,目前很多堆溢出漏洞通过大面积的喷射然后跳转都能够稳定的利用,特别是与IE相关的堆溢出. 牛人们对于缓冲区溢出的检测尚且如此,我就更不说了,但是我还是把这几天的想法总结一下,希望对自己以及研究的溢出检测的朋友有帮助:阅读全文>

发表于 @ 2008年04月17日 02:13:00|评论(loading...)|编辑

2008年04月16日

原创 通过PspTerminateThreadByPointer结束进程

很早前写的代码了,免得腐烂了,贴出来 这个思想是在读了PJF牛人 "终止进程内幕" 后才晓得 基本思想就是用户态将欲结束的进程PID传递到内核驱动,驱动通过PsLookupProcessByProcessId得到进程的EPROCESS结构,再通过EPROCESS结构找到线程的链表头,遍历这个链表,逐一调用PspTerminateThreadByPointer,将其一个一个的KILL掉阅读全文>

发表于 @ 2008年04月16日 22:15:00|评论(loading...)|编辑

原创 绕过安全软件挂钩SSDT的检测

很多安全软件都靠挂钩SSDT中的函数来检测恶意代码,就拿卡巴举例吧,他挂了NtCreateKey来检测注册表的创建,NtCreateThread和NtResumeThread/NtWriteVirtualMemory来检测远程注入, 等等,这些钩子让我们后期的动作很可能暴露,怎么样才能为所欲为呢?阅读全文>

发表于 @ 2008年04月16日 21:31:00|评论(loading...)|编辑

原创 guitoolkit 的使用问题

guitoolkit 的使用问题.阅读全文>

发表于 @ 2008年04月16日 20:56:00|评论(loading...)|编辑

2007年08月08日

原创 卸载其他进程中的模块/dll

前段时间做了一个东西,在所有进程中都挂接了自己的DLL,结果每次要重新编译DLL让其运行都需要重启计算机,这下可有点郁闷, 得想想办法手动卸载了这些DLL,因此变有了这个程序 阅读全文>

发表于 @ 2007年08月08日 03:37:00|评论(loading...)|编辑

2007年08月06日

原创 如何使用 C++ 方式来编写驱动

问题的由来: c源文件是以"c"为后缀的 ,而纯c语言都是在函数的开始就将所有用的变量全部定义好,然后在函数中使用,如果不按照这个规定,那么等待你的就是在编译的时候将你处以极刑,这个让我觉得非常郁闷,我就是想在使用的时候再定义一个变量,这样可以让我的程序更加让自己读懂,因此就产生了这个话题 "如何使用 C++ 方式来编写驱动"阅读全文>

发表于 @ 2007年08月06日 03:09:00|评论(loading...)|编辑

原创 用户态轻松调用ntdll中的native api

ntdll中的native api功能非常强大,然而微软却没有提供用户态调用native api的接口,而这些native api所需要的数据结构微软也基本没有公布,幸好有了一批牛人的贡献,给出了很多native api的定义,让我们的生活免去了许多痛苦,本文在介绍了最基本的native api的调用方式之外,还介绍了一种更加优美,移植性更强的调用方式。阅读全文>

发表于 @ 2007年08月06日 01:47:00|评论(loading...)|编辑

Csdn Blog version 3.1a
Copyright © galihoo