|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。 非常抱愧,仓促写了几句代码有点bug,即“ZwOpenSection(&g_hMPM,SECTION_MAP_WRITE|SECTION_MAP_WRITE,&attributes)”使得第一次运转前往掉败,请删除原文,更正为:
pjf (jfpan20000@sina.com)
前次在CVC提到了这器材,由于很复杂感觉没需要多说甚么,但有人请求写全,所以增补几句:
良多帖子对此论题作了剖析,好比APIHOOK、体系办事HOOK等等,至于远线程注入没有本人的历程,本不算“埋没”。
这里写一个2000下的完整埋没办法,很复杂,也没甚么新意。
在解说之前,起首提一提一些布局,历程履行体块中无数个历程相干链,个中之一是举动历程链。此链的主要
感化之一就是在查询体系信息时供遍历以后举动历程,很成心思的是M$能够因效力要素使它被扫除出历程中心块,
意味进线程切换等操作时其实不使用它,进一步说改写它也不应有不成无视的成绩(此即本计划的基本)。
怎样做很分明了,在举动历程双向链中删除想要得埋没的历程既可,中心调试器(如softice/proc)亦查不出来。
2000下的埋没以后历程的代码以下:
#include
#include
#include
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L)
typedef LONG NTSTATUS;
typedef struct _IO_STATUS_BLOCK
{
NTSTATUS Status;
ULONG Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
#define OBJ_INHERIT 0x00000002L
#define OBJ_PERMANENT 0x00000010L
#define OBJ_EXCLUSIVE 0x00000020L
#define OBJ_CASE_INSENSITIVE 0x00000040L
#define OBJ_OPENIF 0x00000080L
#define OBJ_OPENLINK 0x00000100L
#define OBJ_KERNEL_HANDLE 0x00000200L
#define OBJ_VALID_ATTRIBUTES 0x000003F2L
typedef struct _OBJECT_ATTRIBUTES
{
ULONG Length;
HANDLE RootDirectory;
PUNICODE_STRING ObjectName;
ULONG Attributes;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
typedef NTSTATUS (CALLBACK* ZWOPENSECTION)(
OUT PHANDLE SectionHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
typedef VOID (CALLBACK* RTLINITUNICODESTRING)(
IN OUT PUNICODE_STRING DestinationString,
IN PCWSTR SourceString
非常抱愧,仓促写了几句代码有点bug,即“ZwOpenSection(&g_hMPM,SECTION_MAP_WRITE|SECTION_MAP_WRITE,&attributes)”使得第一次运转前往掉败,请删除原文,更正为:
pjf (jfpan20000@sina.com)
前次在CVC提到了这器材,由于很复杂感觉没需要多说甚么,但有人请求写全,所以增补几句:
良多帖子对此论题作了剖析,好比APIHOOK、体系办事HOOK等等,至于远线程注入没有本人的历程,本不算“埋没”。
这里写一个2000下的完整埋没办法,很复杂,也没甚么新意。
在解说之前,起首提一提一些布局,历程履行体块中无数个历程相干链,个中之一是举动历程链。此链的主要
感化之一就是在查询体系信息时供遍历以后举动历程,很成心思的是M$能够因效力要素使它被扫除出历程中心块,
意味进线程切换等操作时其实不使用它,进一步说改写它也不应有不成无视的成绩(此即本计划的基本)。
怎样做很分明了,在举动历程双向链中删除想要得埋没的历程既可,中心调试器(如softice/proc)亦查不出来。
2000下的埋没以后历程的代码以下:
#include
#include
#include
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L)
typedef LONG NTSTATUS;
typedef struct _IO_STATUS_BLOCK
{
NTSTATUS Status;
ULONG Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
#define OBJ_INHERIT 0x00000002L
#define OBJ_PERMANENT 0x00000010L
#define OBJ_EXCLUSIVE 0x00000020L
#define OBJ_CASE_INSENSITIVE 0x00000040L
#define OBJ_OPENIF 0x00000080L
#define OBJ_OPENLINK 0x00000100L
#define OBJ_KERNEL_HANDLE 0x00000200L
#define OBJ_VALID_ATTRIBUTES 0x000003F2L
typedef struct _OBJECT_ATTRIBUTES
{
ULONG Length;
HANDLE RootDirectory;
PUNICODE_STRING ObjectName;
ULONG Attributes;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
typedef NTSTATUS (CALLBACK* ZWOPENSECTION)(
OUT PHANDLE SectionHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
typedef VOID (CALLBACK* RTLINITUNICODESTRING)(
IN OUT PUNICODE_STRING DestinationString,
IN PCWSTR SourceString
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了! |
|