自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 KiFastCallEntry自己理解

#define KI_USER_SHARED_DATA         0xffdf0000#define SharedUserData  ((KUSER_SHARED_DATA * const) KI_USER_SHARED_DATA) KUSER_SHARED_DATA 结构区域在 User 和 Kernel层地址分别为:User 层地址为:0x7ffe0000

2013-07-19 09:34:47 849

转载 自己笔记转载

HSEND // hooksend.cpp : Defines the entry point for the DLL application.//#include "stdafx.h"#include #pragma comment(lib,"Ws2_32.lib")//本dll的handleHANDLE g_hInstance = NULL;//修改API入口为

2013-07-09 20:55:54 465

转载 THREAD STACK

sBeginThreadWithContextInternal会消耗掉KernelStack[6]~ KernelStack[12]然后jmp  _KiServiceExit,此时对应正好是KTRAP_FRAME的顶部 对于KernelStack[5]的设置实际上是为线程的调度/切换准备的,目的是为新建线程提供一个虚构的程序执行“断点”,仿佛原先就是在这里被剥夺了运行,下次受调度运行时就从

2013-06-18 14:31:59 936

转载 NTDLL

ntdll.dll是最基本的Dll,不但其他Dll的动态链接要由这个Dll完成,连系统调用也需要通过这个Dll进入内核。Windows内核在初始化阶段首次需要装入这个Dll的时候为其创建了一个文件映射区对象,并使用一个全局指针PspSystemDllSection指向该对象的数据结构。      nt!PspSystemDll kd> dd nt!PspSy

2013-06-14 22:55:25 1922

转载 Prototype PTE

#define MM_DEFAULT_PAGED_POOL_START (0xE1000000) #define MiPteToProto(lpte) (DWORD)((DWORD)(((((lpte)) >> 11) << 9) + \ (((((lpte))) > 23) + \ MM_DEFAULT_PAGED_POO

2013-06-14 22:41:20 1278

原创 有时候忘记了

通过CreateMutex同样也可以创建一个信号量,只不过这个信号量需要用ReleaseMutex才能释放,也就是说当一个线程通过WaitFor....返回以后,在该线程调用ReleaseMutex之前,其它线程的WaitFor...都会挂起,这就是互斥,用于互斥操作的还有很多种,一般的书上都有介绍的   HANDLE CreateEvent(  LPSECURITY_ATTRIB

2013-06-03 12:30:55 472

转载 PEB中获取指定名称的DLL的基址

//先从PEB中获取指定名称的DLL的基址ULONG GetModuleHandleFromProcessPEB(ULONG Peb,char *szDllName){ PPEB_LDR_DATA pLdrData; PLDR_DATA_TABLE_ENTRY pLdrDataEntry; PLIST_ENTRY pListHead,pListNext; ANSI_STRI

2013-06-02 16:01:40 1063

转载 NtContinue笔记

NtContinue (IN PCONTEXT Context, IN BOOLEAN TestAlert){    PKTHREAD Thread =KeGetCurrentThread();    PKTRAP_FRAME TrapFrame = Thread->TrapFrame;    PKTRAP_FRAME PrevTrapFrame = (PKTRAP_FRAME)T

2013-04-26 14:26:34 3549

原创 QUEUSERAPC

include "stdafx.h"#include #include #include #pragma comment (lib,"Kernel32.lib")#pragma comment(lib,"user32")typedef unsigned (__stdcall *threadfunc)(VOID *);typedef struct _IO_STATUS

2013-04-22 09:14:53 635

转载 GetAddressOfKiFastCallEntry()

#define IA32_SYSENTER_CS 174H #define IA32_SYSENTER_ESP 175H #define IA32_SYSENTER_EIP 176H ULONG GetAddressOfKiFastCallEntry() { ULONG dwAddress = 0; __asm {

2013-04-18 14:05:48 420

转载 FD_WRITE

一直搞不懂 WSAEventSelect 的 FD_WRITE ,不知道怎么利用他在自己想发数据的时候发数据,后来知道了想发随时发消息 要自己另外去写send方法,FD_WRITE 是用于一开始连接成功侯就开始发送大批量数据的,比如发一个视频连接给别人 ,别人接了 那么这个时候就触发了FD_WRITE ,视频的数据会不停的充满缓存,所以FD_WRITE会不停的触发因为没人教我 只能靠自己苦苦参悟了

2013-04-15 22:49:36 475

转载 HANLDE的归纳

_HandleTableListHeadkd> dd HandleTableListHead80563648  e1001cbc e1d4d1ac 00000000 0000000080563658  00000000 00000000 867eb648 8055c1e080563668  00000000 00000000 00000000 0000000080563678

2013-04-12 16:04:20 813

转载 Refer to a file by its object name

Refer to a file by its object nameKernel-mode device drivers refer to a file by its object name. This name is \DosDevices together with the full path of the file. For example, the object name of the

2013-04-09 12:26:54 611

转载 CreateProcess创建进程

CreateProcess创建进程的大致步骤:1.打开可执行文件[.exe],以FILE_EXECUTE存取方式打开。2.把可执行映像装载进RAM。2.创建进程内核对象(EPROCESS,KPROCESS和PEB结构)。4.为该新建进程分配地址空间。3.在该进程中创建主线程的线程执行对象(ETHREAD,KTHREAD和TEB结构),为主线程分配堆栈,建立该进程主线程的执行上下

2013-04-09 09:28:59 1279

原创 自己笔记-创建对象的过程

P142 1、ExpInitializeTimerImplementaiton2、填充OBJECT-TYPE内中的 TYPEINFO 对应的类型为OBJECT—TYPE-INITIALIZER3、ObCreateobjectType  在obpobjecttypes 中填充该类型,要创建的CreateobjectType 的类型为TYPE类型,所以起对应的TYPE应该也类型对象就是

2013-04-08 09:01:01 859

原创 WINDOWS OBJECT笔记

dd obpRootDirectoryObjectkd> dd obpRootDirectoryObject80561978 e10001c0 00000000 00000001 0000000080561988 00000000 00040001 00000000 8056199480561998 80561994 00000000 867eb478 000000008056

2013-04-07 10:23:39 1159

原创 自己翻阅的-TLS-DLL使用中要注意的DLL_PROCESS_ATTACH

#include "stdafx.h"#include DWORD dwTlsIndex;int iNum=100;void fuckmsg(){ TCHAR szBuffer[50] = {0}; DWORD dwThreadID; int lpNum=(int)TlsGetValue(dwTlsIndex); lpNum++; dwThreadID =

2013-04-02 11:06:36 791

转载 翻出来

2013-04-01 16:12:01 442

转载 中断请求与中断请求级

中断请求与中断请求级中断是异步过程调用,简而言之就是打断当前CPU正在执行的任务转而去执行另一个任务windows在初始化时,为每种中断安装了一个中断处理例程---ISR(intterupt service routine),它们储存在IDT(intterupt dispatch table中断分发表)中,每次发生中断,处理都将询问中断控制器,中断控制器会将当前发生中断映射成一个中断号,用

2013-04-01 14:37:27 1054

转载 自己查看的WINDBG GDTR

kd> r gdtrgdtr=8003f000kd> dd 8003f0008003f000  00000000 00000000 0000ffff 00cf9b008003f010  0000ffff 00cf9300 0000ffff 00cffb008003f020  0000ffff 00cff300 200020ab 80008b048003f030  f0000

2013-04-01 11:24:47 2480

原创 组件聚合思路的剥离部分

代码仅仅为明确思路,可能有错误和不完善的地方,:)#include using namespace std;class IUnkonwn{      public:            virtual void qdisp1(int IID,void**ptr)=0;};class NotIUnkonwn{       public:         

2010-01-04 11:34:00 382

原创 如何判断一个字符串里含有html标签

 function isvalid(){  Input_Str=document.getElementById("tsinput").value;  document.getElementById("ts").innerHTML=Input_Str;  if(Input_Str!=document.getElementById("ts").innerText)  alert("include

2009-12-23 15:59:00 1485 2

原创 容易忘记的,自己看的

 linux 出现乱码的问题最简单的解决办法在提示符后面输入 LANG=C  即可(注意全部是大写字母) VPC安装LINUX后花屏的解决方法 (我装的REDHAT 9,以前装FADERAL没有出现过此类问题) 重新启动虚拟机,在出现grub后,在安装的系统上面按“e”,然后出现grub的配置文件,按键盘移动光标到第二行“Ker……”,再按“e”,然后在这一行的结尾加上:空格 si

2009-06-15 10:46:00 363

原创 list_entry Head_list 模拟一下,方便以后查看

#include using namespace std;typedef struct head_list{ struct head_list *prv; struct head_list *next;} _head_list;//-----------------------------------------typedef struct Data_List{ int Data_From;  s

2009-06-09 15:03:00 523

原创 模拟多路通话

 class notifying { public static void main(String arg[]) {  telephone currentph=new telephone();  currentph.init_telphone(5);    int phone_code=123456;  while(true)  { try   {     notify notify_thread

2009-03-04 11:03:00 357

原创 TLS小记

在一个进程中拥有一个标记数组p[num],记录了整个进程TLS的使用情况。每一个线程均拥有一个专属于自己的LPVOID数组t[num],数组中的元素称为TLS Slot,其记录了该线程的TLS使用情况,一个static全局整形变量int a在TLS下的实现步骤如下:首先由windows从数组p中动态分配一个标志元素来代表全局静态变量a并将其值设置成为已使用,分配所得的索引值为idx。假设此时整个进

2008-08-20 09:58:00 477

原创 无聊。。。。做个笔记

#include int WINAPI WinMain (HINSTANCE hinstExe, HINSTANCE,   PSTR pszCmdLine, int nCmdShow) {   // Prepare a STARTUPINFO structure for spawning processes.   STARTUPINFO si = { sizeof(si) };   SECUR

2008-07-31 12:45:00 324

原创 无聊。。。验证一下这段话

By far the most common way for a child process to determine the handle value of the kernel object that its expecting is to have the handle value passed as a command-line argument to the child process

2008-07-25 11:55:00 462

PE文件格式详解

PE文件格式详解PE文件格式详解PE文件格式详解

2011-11-04

空空如也

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

TA关注的人

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