自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

转载 使用IRP进行文件操作

一定要先感谢为技术的进步而付出辛勤汗水的人,感谢他们对技术的共享.一个通用IRP访问文件的十六进制编辑器(开源代码)     --   被诅咒的神(邪恶八进制信息安全团队)Windows平台内核级文件访问                               --   baiyuanfan ([email protected])特别感谢被诅咒的神,他写的<E

2012-04-23 16:46:01 1636

转载 【翻译】Delphi中类的逆向工程

标 题: 【翻译】Delphi中类的逆向工程作 者: firstrose时 间: 2004-12-09,18:37:44链 接: http://bbs.pediy.com/showthread.php?t=8209前段时间看到NB王(就是说nbw:D……喂,nbw你不生气吧?)转的文章,觉得很有用。于是想翻译一下。无奈本人太懒,拖到现在。不过总算在今天晚饭以前赶完了:D

2012-01-05 03:49:12 1272

转载 SHGetFileInfo 显示文件类型图标

需要显示远程目录下文件跟文件夹的图标,但是软件并不支持直接获取远程目录下的图标,这时候就需要读取本机对应的目录图标和对应类型文件图标。初始化的时候。需要将Imagelist设置给ListCtrl控件。12345678910// 初始化图标列表SHFILEINFO    sfi;HIMAGELIS

2011-12-26 17:53:34 4641

转载 很多句话让XueTr卸载不了我们的驱动(ObjectType HOOK)

转自:http://www.debugman.com/discussion/6064/%E5%BE%88%E5%A4%9A%E5%8F%A5%E8%AF%9D%E8%AE%A9xuetr%E5%8D%B8%E8%BD%BD%E4%B8%8D%E4%BA%86%E6%88%91%E4%BB%AC%E7%9A%84%E9%A9%B1%E5%8A%A8objecttype-hook/p1  

2011-06-13 14:11:00 1470

转载 摘除过滤驱动

转自:http://hi.baidu.com/_achillis/blog/item/cc9cf925c23260064d088d05.html 开始本文之前先膜拜一下老V~“无法F5的驱动,不是好驱动啊~不是好驱动啊~ ”            -----killvxk语录这两天下午的时间,破解那个驱动保护搞得好痛苦,每次关机都要蓝一次,有时候设备还不工作,郁闷...

2011-06-07 11:21:00 1216

原创 FS 寄存器使用

<br />在用户层下,FS寄存器指向当前活动线程的TEB结构                  nt!_TEB<br /> +0x000 NtTib : _NT_TIB<br /> +0x01c EnvironmentPointer : Ptr32 Void<br /> +0x020 ClientId : _CLIENT_ID<br /> +0x028 ActiveRpcHandle : Ptr32 Void<br /> +0

2011-03-18 08:21:00 1059

转载 PspCidTable攻与防

转自:http://hi.baidu.com/_achillis/blog/item/2bb59619d8019cbc4bedbc56.htmlPspCidTable的攻与防,其实就是进程隐藏与检测所涉及到的一部分工作~~不管基于PspCidTable的进线程检测,还是抹PspCidTable进行进程对象的隐藏,都涉及到对PspCidTable的遍历.所以如何安全正确地遍历PspCidTable才是该技术的关键一、获取PspCidTable的地址常用的方法是从前面提到的三个查询PspCidT

2011-03-17 15:16:00 1208

转载 PspCidTable概述

转自:http://hi.baidu.com/_achillis/blog/item/9857ebec7303404779f05579.htmlPspCidTable也是一个句柄表,其格式与普通的句柄表是完全一样的.但它与每个进程私有的句柄表有以下不同:1.PspCidTable中存放的对象是系统中所有的进线程对象,其索引就是PID和TID2.PspCidTable中存放的直接是对象体(EPROCESS和ETHREAD),而每个进程私有的句柄表则存放的是对象头(OBJECT_HEADER)3.P

2011-03-17 14:40:00 1077

原创 几个常用结构

typedef struct _EPROCESS<br />{<br />KPROCESS Pcb;<br />EX_PUSH_LOCK ProcessLock;<br />LARGE_INTEGER CreateTime;<br />LARGE_INTEGER ExitTime;<br />EX_RUNDOWN_REF RundownProtect;<br /> PVOID UniqueProcessId;<br />LIST_ENTRY ActiveProcess

2011-03-17 10:54:00 731

转载 [转载]关于驱动中的ObReferenceObjectByName 和 IoGetDeviceObjectPointer

今天huhu0013问我为什么ObReferenceObjectByName不能得到Device类型的对象,讨论一番,最终得到如下解释,记录一下:=================================================================================原文:http://www.boxcounter.org/?action=show&id=13前些阵子学写过滤驱动,遇到个问题,在网上找到了相应的资料,Blog下来。 我写的程序需要挂在文件系统上,

2011-03-17 10:50:00 2073

原创 ZwQuerySystemInformation 简单应用

<br />#include <ntddk.h><br />#include "struct.h"<br /><br />typedef struct _SYSTEM_MODULE {<br />    <br />    ULONG Reserved1; <br />    ULONG Reserved2; <br />    PVOID ImageBaseAddress; <br />    ULONG ImageSize; <br />    ULONG Flags;

2011-03-15 20:15:00 1256

翻译 zwcreatesection 共享内存区(Section)

zwcreatection创建一个section_object,section_object代表一块能够共享的内存对象。一个进程能够用section_object 来与其他进程共享它的内存空间。section_object 提供进程映射文件到其内存空间的机制。

2011-03-15 14:51:00 4553

转载 MFC程序中的消息逆向

<br />MFC中CWnd基类中包含了一个GetThisMessageMap虚函数,用于获得指向messageMap的指针。因此任何从CWnd派生的窗口类,都含有这个函数(在虚拟函数表中的位置好像是0x30附近)。它的代码通常形如:<br />CWnd::GetThisMessageMap<br />00511390 >/>>push    ebp<br />00511391 |.>mov     ebp, esp<br />00511393 |.>mov     eax, of

2011-03-09 16:50:00 1489

转载 [转载]关于文件系统和磁盘驱动的一点学习心得

<br />原文地址:http://hi.baidu.com/weolar/blog/item/34a8ff19be316572dbb4bd4f.html<br /> <br />今天看到sudami同学问起这些东西,好久没搞了,很生疏,所以重新学习了一下,有点小小心得:<br />在我的理解中,设备对象(drevobj)相当于驱动对象(drvobj)创建的子对象,用来形成设备链,从而接受、处理数据的。设备对象挂到设备链中,接受到了被设备管理器派遣的IRP时(某本书上好像说,没有真正所谓的设备管理器,只

2011-03-08 10:40:00 2289

转载 内核驱动的文件操作

<br />在应用层读写文件等操作将通过 INT 2E切换到内核层。这个不用说大家都很熟悉流程。那么到了内核层又是如何处理的?就先拿 ZwReadFile,ZwWriteFile 说事。 首先将文件句柄转换成FILE_OBJECT 指针。这时 I/OMGR 收到一个 FILE I/O 请求,它将首先选择用 FASTIO 接口来进行缓冲操作(注意:FASTIO 对于FSD 来说不是必须的。且 FASTIO 并不真正读写内容)如果有 FASTIO 例程则调用FastIoRead,FastIoWrite

2011-03-04 16:57:00 873

转载 x64/vista/2003 sp1下使用ZwOpenSection直接读写物理内存

<br /> 习惯于在应用程序用ZwOpenSection打开"Device"PhysicalMemory访问物理内存的朋友可能要郁闷了,微软出于安全考 虑的原因,在x64/vista/2003 sp1系统中所有用户模式的程序将不能访问"Device"PhysicalMemory对象。 <br />   经过测试,原来应用程序在2k/xp中使用ZwOpenSection,ZwMapViewOfSection可以正常访问物理内存,而同样的代码在 x64上却在ZwOpenSection时返回

2011-03-02 17:04:00 1841

转载 hook 内核的体会

<br />网上很多hook代码,尤其是Obxxxxxx系列函数,它们很邪恶,一旦hook得好,可如入无人之境,这点我深有体会啊,但是同时它们调用频繁,比如ObReferenceObjectByxxxxxx,基本上windows的每一个操作,都会调用它。比如就简单的一个双击一下记事本,ObReferenceObjectByxxxxxx已经被调用了,所以在进行hook的时候,如果功力不深,就容易造成BSOD。<br /><br />一般如果是我在动这些蛋糕的时候,我都会注意如下几个方面:<br /

2011-03-02 16:58:00 624

转载 导出导入表

导出表当一个EXE或DLL导出函数或变量时,其它EXE或DLL就可以使用这些导出的函数或变量。为了简单起见,我把导出的函数和导出的变量统称为“符号”。当导出一些符号时,最起码导出符号的地址需要能够以一种已定义好的方式被获取。每个导出的符号都有一个与之关联的序数,它可以用来查找这个符号。同时,几乎总有一个ASCII码格式的字符串名称与这个导出的符号关联。一般来说,导出的符号名与源文件中的符号名是一样的,尽管它们可以被修改的不一样。通常,当可执行文件导入符号时,它使用的是符号的名称而不是它的序号

2011-03-02 16:05:00 1175

转载 关于Windows的权限和一些安全问题

<br />作者:刺(aXis)<br />来源:www.ph4nt0m.net(当时还在用这个域名,也有网上流传的文章里用的是www.3389.net的域名,曾经也是幻影最初的域名之一。)<br />摘要:关于nt的acl,token,and privilege的,以及通过privilege绕过acl,达到访问文件的目的。可以说是另一种克隆administrator的方法,不过更隐蔽, 利用起来难度较大,需要绕过检测才行,目前取的的突破是利用权限绕过acl。<br />关键字:ACL,ACE,DA

2011-03-02 11:04:00 1236

转载 内核注入

<br />内核注入,技术古老但很实用。现在部分RK趋向无进程,玩的是SYS+DLL,有的无文件,全部存在于内存中。可能有部分人会说:“都进内核了.什么不能干?”。是啊,要是内核中可以做包括R3上所有能做的事,软件开发商们也没必要做应用程序了。有时,我们确实需要R3程序去干驱动做起来很困难或者没必要驱动中去做的事,进程 / DLL是不错的选择,但进程目标太大,所以更多的同学趋向于注DLL。<br /><br /> 若要开发安全软件、小型工具,可借鉴其思路,Anti Rootkits时

2011-03-02 09:26:00 1416

转载 GetCurrentProcessID、OpenProcessToken、LookupPrivilegeValue、AdjustTokenPrivileges

<br />GetCurrentProcessID            得到当前进程的ID   <br />OpenProcessToken          得到进程的令牌句柄<br />LookupPrivilegeValue          查询进程的权限<br />AdjustTokenPrivileges          判断令牌权限  <br /><br />            要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问

2011-03-01 13:17:00 515

转载 初步认识MDL

<br />我们知道,系统中一些重要的表项如SSDT是只读的,如果我们强行对其进行修改就会造成BSOD的严重后果。当然这种保护方式很容易被绕过,我们曾经介绍了通过修改cr0来禁用WP(Write Protect,写保护)位的方法,现在再介绍一种不需要使用汇编的方法,就是MDL。<br />MDL的全称是Memory Descriptor List,即内存描述符表。我们可以通过MDL描述一块内存区域,在MDL中包含了该内存区域的起始地址、拥有者进程、字节数量、标记等信息,如下所示:<br />typede

2011-02-23 21:14:00 850

转载 cr0

<br />为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT、IDT等。但这种方法很容易被绕过,我们只要将这些部分修改为可写属性就可以了,不过当我们的事情做完后记得把它们恢复为只读属性,不然会造成一些很难预料到的后果。<br /> <br />cr0是系统内的控制寄存器之一。控制寄存器是一些特殊的寄存器,它们可以控制CPU的一些重要特性。<br />控制寄存器最初出现于低级的286处理器中,以前称之为机器状态字(

2011-02-23 21:13:00 1529

转载 无驱动执行Ring0代码

<br />// 原理:通过/Device/PhysicalMemory修改NtVdmControl入口,跳转到Ring0Code<br />//************************************************************************<br />#include<br />#include<br />#include<br /><br />#pragma comment (lib,"ntdll.lib") // Copy From

2011-02-23 16:54:00 1004

转载 try catch throw用法

<br />要防止因为异常产生的内存泄漏,可以使用智能指针,也可以用__try{}__finally{}《Windows核心编程》一书第23~25章是很好的参考资料。----------------------------------------------------try,catch,throw:try包含你要防护的代码,称为防护块. 防护块如果出现异常,会自动生成异常对象并抛出.catch捕捉特定的异常,并在其中进行适当处理.throw可以直接抛出/产生

2011-02-23 14:33:00 565

转载 360的大牛MJ逆向的hotpatch代码

<br />HotPatch.c<br />#include <ntddk.h><br />#include <KerStr.h><br />#include <RtlHelp.c><br /><br />#define MEM_HOT_PATCH 'HotP'<br />PVOID _MmSystemLoadLock ;<br />#define HotPatchSectionName '.hotp1'<br />LIST_ENTRY _MiHotPatchList ;<br />

2011-02-23 14:23:00 1591

转载 [转载] 感染系统文件实现自启动

在众多随系统启动的方法中,感染系统文件是一种比较隐蔽的方法,可以做到使被感染的系统文件大小和时间都不变,而且无需修改注册表,一般人很难发现。下面就为大家详细介绍这种方法。 <br /><br />分析 <br />方法很简单,只要将一段运行其它程序的代码添加到系统文件中,让它先于系统文件运行即可。为实现此功能,我们需要做如下操作:一是搜索系统文件中的所有节,检测每个节尾部是否有足够的多余空间以便添加我们的代码;二是修改系统文件的入口点指向添加的代码;三是运行完添加的代码,需要

2011-02-23 14:20:00 777

原创 RING3下 内存清零法 杀进程

<br />在一般任务管理器无法关闭进程时用到<br />内存清零法 杀进程 原理分析<br />1.先打开CSRSS.EXE系统进程,获得其句柄,几乎系统所有的HANDLE结构体中,里面的ProcessId都是指向csrss.exe的,利用它的PID来进行遍历进程实现过滤。<br /><br />2.分配好一块内存空间Buffer,用来存储SystemHandleInformation系统句柄信息<br /><br />3.通过ZwQuerySystemInformation函数来查询系统句柄信息并保存在

2011-01-27 15:51:00 5787

转载 在Ring3上实现文件碎甲(解锁)功能

一.概述:如果一个病毒文件被植入正在运行的进程中,我们想要清除它时系统总会提供无法删除;有时编辑文件的进程被意外中止而文件句柄没有正确释放,导致此文件无法进行改写操作。现在我们会使用Unlocker之类的小工具去解锁,但在编写程序的可能会需要把这些功能包含在自己的代码中,本文就是自己写代码实现”如何关闭已经被加载的DLL或是正在使用的文件”功能,使用文章中的方法能很方便的完成文件解锁功能。按最初的想法准备在ring0中完成这些功能,但在查找资料的过程中发现既然我们能在ring3中做,为什么不

2011-01-27 14:07:00 933

转载 Windows句柄表格式

<br />上次说了一点关于Windows 2000句柄表的东西,继续说关于XP的。<br /><br />XP的句柄表格式与2000的完全不同。《Windows Internal》里面只是简单的说了一下关<br />于Windows XP/2003和2000的差异,在于开始的时候只分配最底层的句柄表,上面两层的<br />句柄表只在需要的时候才分配。而且最底层的句柄表和上两层的大小都不在是限制为256<br />项,而是根据内存分页的大小来分配——每一级表都是一页大。<br /><br /

2011-01-26 09:55:00 838

转载 [转载]手工分析句柄表

今天的随笔写点如何用内核调试器“手工”分析句柄表,小儿科的伎俩~结合 Russinovich 的工具 Handle 正好可以验证我手工分析的正确性平台是 Win-XP SP2高手权当消遣~因为我也就是当消遣才写的// 拿进程 SYSTEM 开刀 //Handle v3.2Copyright (C) 1997-2006 Mark RussinovichSysinternals - www.sysinternals.com---------------------------------------

2011-01-26 09:26:00 1027

转载 进程的内核对象句柄表

<br />进程的内核对象句柄表<br /> <br /> 当进程初始化的时候,系统会为其分配一个句柄表(handle table)。该句柄表只用于内核对象,不适用于用户对象或GDI对象。 具体该句柄表在系统中是种怎样的结构和是怎么被系统管理的,现在没有说明文档。 进程句柄表的大体结构如下:<br /> <br />Index                       Pointer to Kernel object memory block              Access Mask  

2011-01-24 10:22:00 1736

转载 准备开始记录平时学习的东西了

<br />开通博客,准备开始记录平时点滴学习的东西了

2011-01-21 09:46:00 539

WindowsKernelOverview.ppt

国外大学的window kernel overview 课件

2011-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除