原文发表于百度空间,2009-11-08 这是第一次逆向一个企业级安全产品的核心代码,并完美替换原驱动正常工作========================================================================== RT.逆向用了两天(后面还花了一些断断续续的时间查看细节)还原成源码并编译通过用了两天编译通过的驱动调试排错则断断续续用了一周的时间...目前可以替换原驱动正常运行,感觉已相当完美.贴张Check版驱动运行截图(某个地方加了一句输出~):…
原文发表于百度空间,2010-01-02========================================================================== 玩过Shadow SSDT Hook的都知道,在System进程中是无法访问win32k.sys的内存空间的,要想访问必须切换到csrss进程或者任意一个GUI进程.问题一:为什么System进程里无法访问win32k.sys呢?某同学的说法,"在System进程和非GUI进程里,win32k.sys被页换出…
原文发表于百度空间及看雪论坛,2009-10-14 看雪论坛地址:https://bbs.pediy.com/thread-99460.htm 刚发这篇文章的时候,因为内容涉及360的核心产品,文章被雪藏了一段时间========================================================================== Author:achillisblog :https://www.cnblogs.com/achillis/ 上一篇的分析中漏掉了三个函…
原文发表于百度空间及看雪论坛,2009-10-08 看雪论坛地址:https://bbs.pediy.com/thread-99128.htm 看时间,09年的国庆节基本上就搞这玩意儿了...========================================================================== 分析了一下360的HOOK,通过直接hook KiFastCallEntry实现对所有系统调用的过滤. 我分析的版本如下:主程序版本: 6.0.1.1003H…
原文发表于百度空间,2008-7-26========================================================================== 用常用的几个杀毒工具看了下之前写的改映像路径的程序,发现原来非常有意思好几个工具都不能正确识别路径了,吼吼- 贴几个图上来: 狙剑: 安天的Atool: gmer(有一点小问题,在模块列表中显示不出来): Syscheck: WsysCheck: 360安全卫士: 还有不少进程工具估计好不到哪儿去.IceSwo…
原文发表于百度空间,2008-10-4看雪论坛发表地址:https://bbs.pediy.com/thread-73948.htm========================================================================== 这篇文章是在Servex.exe专杀工具写完之后的一些小小感想,关于PE感染和修复,大牛飘过~ 自某日不小心中了Serverx.exe病毒,电脑中大部分EXE文件被感染,系统盘system32目录下的病毒文件Serve…
原文发表于百度空间,2009-01-09========================================================================== 今天又想起来VirtualKD这个东西,试用了一下,真是爽坏了,可能我火星了~~ 很久以前就知道小喂有个VmKd工具,使用Vmware的后门指令直接拷贝数据来代替模拟串口,能大大提高调试时的数据传输速度.不过那个对VMware版本的依赖性太强,我的Vmware就没法用,所以很不爽得又放下了,很长一段时间也没关…
原文发表于百度空间,2011-04-07========================================================================== 该函数与ring3的枚举窗口函数有关,原型如下: NTSTATUS APIENTRY NtUserBuildHwndList( HDESK hDesktop, HWND hwndParent, BOOLEAN bChildren, ULONG dwThreadId, ULONG lParam, HWND* p…
原文发表于百度空间及看雪论坛,2010-09-12 看雪论坛地址:https://bbs.pediy.com/thread-120296.htm========================================================================== Win7的内核新增了一系列带有Tag参数的对象增加引用(Refrence)/减少引用(Derefrence)函数,更易于找出对象使用中的“泄漏”(即Refrence和Derefrence次数不匹配). 在W…
原文发表于百度空间,2010-09-07========================================================================== 本来只是打算以回复的形式回答一下m_sunv同学关于windbg搜索符号的问题,不料写得太多,超过了评论字数,索性就更详细一点单独写一篇文章来说明一下windbg查找符号文件的问题吧~ 以下所有说明以本人的符号目录设置为前提,我的符号目录设置是:_NT_SYMBOL_PATH=D:\MyLocalSymbol…
原文发表于百度空间及看雪论坛,2010-01-10 看雪论坛地址:https://bbs.pediy.com/thread-104918.htm  代码及附件可到这里下载========================================================================== ring0调用ring3早已不是什么新鲜事,除了APC,我们知道还有KeUserModeCallback.其原型如下: NTSTATUS KeUserModeCallback (…
原文发表于百度空间,2009-09-17========================================================================== 相当老的话题,大约一年前就写过这个东西了,不过那时候知识比较有限,也不了解内核,因此实现得很粗浅,现在再写一下,权当是对这个老问题的总结吧.先谈谈正规DLL的隐藏方法,这里说的正规DLL,是指用LoadLibrary以正常方式加载的DLL.一.从PEB的Ldr链中消失这个很简单,看雪上NetRoc有一篇关于这…
原文发表于百度空间,2009-03-30========================================================================== 阅读提示:由于继续使用了chichou同学的CodeHighlighter来修饰代码,造成文章字数过多,故分成三篇,且后两篇内容的顺序稍有调整,阅读时请根据大标题的顺序来~ 前置知识:Windows句柄表的基本结构本文以WRK1.2的代码为参考,主要分析Windows句柄表的分配算法,其实只要了解了句柄表的结…
原文发表于百度空间及看雪论坛,2009-02-27 看雪论坛地址:https://bbs.pediy.com/thread-82919.htm========================================================================== PspCidTable现在已经很科普了,关于其具体格式及如何枚举,网上相关文章一大堆,最多的两篇是gz1x和sudami写的.我这里只谈一个问题,就是枚举PspCidTable时cid的上限问题.很多人提到以…
原文发表于百度空间,2009-01-09========================================================================== 这一节的内容是Windbg入门,用一些基本的命令告诉你如何使用Windbg~~仅作入门,更详细的可以参考Raymond老师的<软件调试>的第30章---"WinDbg用法详解"和Windbg自带的帮助文件 我使用调试器的经验完全来自于Ring3的Ollydbg,所以我在初用Windbg时…
原文发表于百度空间,2009-01-08========================================================================== 这一篇是主要是关于Vmware部分的设置,其实参考JIURL那篇很经典的<借助VMware实现单机使用WinDbg>就可以了.不过那篇文章里面有个小错误(不知道是原作者不小心,还是别人转载的时候错了),后面的波特率应为115200而非11520我就再来写一下吧,内容基本雷同,稍微精简一些 Vmware的相关…
原文发表于百度空间,2009-01-08 看雪论坛地址:https://bbs.pediy.com/thread-80109.htm DebugMan论坛地址:http://www.debugman.com/thread/2642/1/1========================================================================== 纯粹是写着好玩的东西,就是扩展一下ProcessNotify而已~因为大家都知道,系统只给了8个坑,坑满了就蹲不…
原文发表于百度空间,2008-12-03========================================================================== 今天写程序,用ZwQuerySystemInformation枚举系统中的文件句柄时出了问题,死活一个都找不到,可是这明显不可能啊?于是用Process Explorer随便找了个文件句柄对象,然后看了它的OBJECT_TYPE,才发现文件句柄的类型索引应为28,而我用的是炉子给的那个SYSTEM_HANDL…
原文发表于百度空间,2014-09-24========================================================================== 好难找的资料,记录下.... // Get active project CComPtr<IDispatch> pDisp; CComQIPtr<IGenericProject, &IID_IGenericProject> pPrj; m_pApplication->get_Act…
原文发表于百度空间,2011-06-20========================================================================== 大致过程如下: LdrInitializeThunk  //ring3线程第一次执行从这里开始 ->LdrpInitialize ->_LdrpInitialize ->LdrpInitializeProcess // 如果不是该进程第一次调用,这里会变成LdrpInitializeThread,判断…
原文发表于百度空间,2011-04-05========================================================================== 在分析ntfs的B+树时,不可避免地要进行文件名大小的比较,经过观察发现通常我们在资源管理器中看到的文件排序和ntfs中有很大不同.比如,有下面一些文件,在资源管理器中排序如下: 可以看到对汉字是按其汉语拼音排序的.而在ntfs的目录索引中排序如下:观察发现,由于ntfs存储的是Unicode文件名,所以比较…
原文发表于百度空间,2011-03-24========================================================================== 看雪上别人问的一个问题,顺便在此记录下吧~~ kd> kvn # ChildEBP RetAddr Args to Child 0012f7b8 77d2dbfb 0012f81c kernel32!LoadLibraryExW+0x2 (FPO: [Non-Fpo]) 0012f7e4 7c92eae3 0…
原文发表于百度空间,2010-10-07========================================================================== 由于KeUserModeCallback的工作原理,对调用者线程和进程有以下要求: 1.调用者线程不能是纯内核线程(由PsCreateSystemThread创建的线程) 2.调用者线程必须在其所属进程中调用KeUserModeCallback 3.调用者进程必须加载了user32.dll 原因很简单,因为K…
原文发表于百度空间,2010-08-11========================================================================== 对Windows对象管理有一定了解的人都知道,在固定对象头(OBJECT_HEADER)前面是一块可变区域,称为可变对象头,它所包含的结构内容并不固定.在Win7之前,可变区域实际有哪些结构,通常是由OBJECT_HEADER中的几个偏移值指出.如下: lkd> dt _OBJECT_HEADER(WinXP…
原文发表于百度空间,2010-08-09========================================================================== 在Windows系统的对象管理中,为了能够从对象头获取对象类型指针,在Win7以前的系统里直接在OBJECT_HEADER里保存了POBJECT_TYPE指针,而这一点在Win7系统里发生了改变.Win7中把所有的对象类型放在了一个表里,这个表叫做ObTypeIndexTable.这个表可以这么定义:POBJ…
原文发表于百度空间,2010-08-06========================================================================== - NtGlobalFlagsFLG_STOP_ON_EXCEPTION 0x00000001FLG_SHOW_LDR_SNAPS 0x00000002FLG_DEBUG_INITIAL_COMMAND 0x00000004FLG_STOP_ON_HUNG_GUI 0x00000008FLG_HEAP_ENA…
原文发表于百度空间,2010-08-01========================================================================== 今天花了一点时间把Windows对象管理的变化看了一下,重点放在了Win7这个新的系统上.事实上,在对象管理这一部分上,从XP.2003几乎没有什么变化,到Vista以后,对象的管理依然没有太大变化,只是内核多导出了几个与对象操作有关的函数而已.而到了Win7以后,在Vista的基础上变动则比较大,主要是体现…
原文发表于百度空间,2010-04-05========================================================================== 这也许是我这个假期唯一做的跟Code有关的事了,已经一个多月没写代码了~~问题是这样的,某同学A,在自己的工程中使用了PsVoid的部分驱动源码(感谢炉子开源~~),提到里面的IrpCreateFile函数在Win7下始终会蓝屏,希望我能帮忙解决一下.于是,拿出调试器开始debug之旅~~先简单介绍下,Irp…
原文发表于百度空间,2009-07-14========================================================================== 标准的驱动与ring3的通信过程是这样的:驱动中创建设备,并为设备创建符号链接,ring3用CreateFile打开符号链接得到设备句柄,然后DeviceIoControl发送ControlCodeDeviceIoControl的内容被封装成IRP到达Device,Device其所属Driver的对应派遣例程…
原文发表于百度空间,2009-07-02========================================================================== 快一个月没写东西了,随便写点~~ StealthCode检测似乎是RootkitUnhooker独有的功能,主要是检测那些无主的可执行代码片段.比如一些放在Pool中的代码,或者驱动中的代码但驱动隐藏了使得RKU无法找到,就认为是StealthCode了.RKU检测StealthCode的方法似乎是这样的(结…