亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbkdrvr.c.svn-base

?? 這是一段游戲修改工具的源代碼.ring3功能由dephi開發,驅動是C開發.希望對大家有幫助
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
				}
				__except(1)
				{
					DbgPrint("Damn\n");

				}
			
				/*//allocate memory for stack
				unsigned char *x;				
				ULONG cr3callbackstack;
				ULONG cr3;
				int i;

				unsigned long long *PDPTable;
				unsigned long long *PDTable;
				PHYSICAL_ADDRESS physical;


				//allocate memory for the pagetables of the process
				//scan through the pagetables 
				//Get the CR3
				//check if PAE is enabled or not (if 64-bit, yes+pml4)
				//traverse the page tables to find out how many there are
				
				
				cr3=getCR3();
				cr3=cr3 & 0xfffffff0; //cr3 now contains the physical base address

				//from 00000000 to 7fffffff is fake
				//from 80000000 to ffffffff is real
				if (FakeCR3==0)
				{				
					//allocate a pagedirptr table
					PDPTable=ExAllocatePoolWithTag(NonPagedPool,4096,0); //first 2 entries are fake, other 2 copies
					RtlZeroMemory(PDPTable,4096);
					ReadPhysicalMemory((char *)cr3,32,PDPTable);

					//allocate 2 pagedir tables
					PDTable=ExAllocatePoolWithTag(NonPagedPool,4096*2,0);
					RtlZeroMemory(PDTable,4096*2);

					for (i=0; i<((4096*2)/8); i++)
						PDTable[i]=0x83;


					physical=MmGetPhysicalAddress(&PDTable[0]);
					PDPTable[0]=physical.QuadPart;
					PDPTable[1]=physical.QuadPart;

					PDPTable[0]++;
					PDPTable[1]++;

					physical=MmGetPhysicalAddress(&PDPTable[0]);
					FakeCR3=(ULONG)(physical.QuadPart);
					DbgPrint("FakeCR3=%x\n\r",FakeCR3);
				}


				ProtectedProcessID=PsGetCurrentProcessId();
				ProtectedPEProcess=PsGetCurrentProcess();
				ProtectedCR3=getCR3();

				
				x=ExAllocatePoolWithTag(NonPagedPool,4096*4,0);
				RtlZeroMemory(x,4096*4);
				
				cr3callbackstack=(ULONG)x;

				__try
				{
					vmx_register_cr3_callback(8,(ULONG)cr3_change_callback,0x10,cr3callbackstack+(4096*4)-4);
					DbgPrint("cr3 callback registered. cr3callbackstack=%x\n",cr3callbackstack);
				}
				__except(1)
				{
					DbgPrint("Failed registering a cr3 callback\n");
				}
*/


				break;
			}

		case IOCTL_CE_GETPETHREAD:
			{
				
				*(PULONG)Irp->AssociatedIrp.SystemBuffer=getPEThread(*(PULONG)Irp->AssociatedIrp.SystemBuffer);
				ntStatus= STATUS_SUCCESS;
				break;
			}

		case IOCTL_CE_GETPEPROCESS:
			{
				UINT_PTR *processid;
				PEPROCESS selectedprocess;
				processid=Irp->AssociatedIrp.SystemBuffer;

				if (processid==0)
				{
					ntStatus=STATUS_UNSUCCESSFUL;
				}
				else
				{
					if (PsLookupProcessByProcessId((PVOID)(*processid),&selectedprocess)==STATUS_SUCCESS)
						*(PULONG)Irp->AssociatedIrp.SystemBuffer=(ULONG)selectedprocess;
					else
						*(PULONG)Irp->AssociatedIrp.SystemBuffer=0;
				}

				ObDereferenceObject(selectedprocess);

				ntStatus= STATUS_SUCCESS;				
				break;
			}

		case IOCTL_CE_READPHYSICALMEMORY:
			{
				struct input
				{
					char *startaddress;
					UINT_PTR bytestoread;
				} *pinp;
				pinp=Irp->AssociatedIrp.SystemBuffer;

				ntStatus = ReadPhysicalMemory(pinp->startaddress, pinp->bytestoread, pinp);
				break;



			}

		case IOCTL_CE_WRITEPHYSICALMEMORY:
			{
				HANDLE			physmem;
				UNICODE_STRING	physmemString;
				OBJECT_ATTRIBUTES attributes;
				WCHAR			physmemName[] = L"\\device\\physicalmemory";
				UCHAR*			memoryview;

				RtlInitUnicodeString( &physmemString, physmemName );	

            	InitializeObjectAttributes( &attributes, &physmemString, OBJ_CASE_INSENSITIVE, NULL, NULL );	
			    ntStatus=ZwOpenSection( &physmem, SECTION_MAP_READ, &attributes );
				if (ntStatus==STATUS_SUCCESS)
				{
					//hey look, it didn't kill it
					struct input
					{
						char *startaddress;
						UINT_PTR bytestoread;
					} *pinp;

					UCHAR* pinp2;

					UINT_PTR length;
					PHYSICAL_ADDRESS	viewBase;
					UINT_PTR offset;
					UINT_PTR toread;

					
					pinp=Irp->AssociatedIrp.SystemBuffer;
					pinp2=(UCHAR *)pinp;
					viewBase.QuadPart = (ULONGLONG)(pinp->startaddress);					
					
					length=0x2000;//pinp->bytestoread;
					toread=pinp->bytestoread;

					memoryview=NULL;
					ntStatus=ZwMapViewOfSection(
						physmem,  //sectionhandle
						NtCurrentProcess(), //processhandle
						&memoryview, //BaseAddress
						0L, //ZeroBits
						length, //CommitSize
						&viewBase, //SectionOffset
						&length, //ViewSize
						ViewShare,
						0,
						PAGE_READWRITE);

					if (ntStatus==STATUS_SUCCESS)
					{
                        offset=(UINT_PTR)(pinp->startaddress)-(UINT_PTR)viewBase.QuadPart;
						RtlCopyMemory(&memoryview[offset],&pinp2[8],toread);

						ZwUnmapViewOfSection(
							NtCurrentProcess(), //processhandle
							memoryview);
					}

					ZwClose(physmem);
				}

				break;
			}

		case IOCTL_CE_GETPHYSICALADDRESS:
			{
				struct input
				{
					UINT_PTR ProcessID;
					PVOID BaseAddress; 
				} *pinp;
				PEPROCESS selectedprocess;
				PHYSICAL_ADDRESS physical;

				
				ntStatus=STATUS_SUCCESS;
				pinp=Irp->AssociatedIrp.SystemBuffer;

				__try
				{
					//switch to the selected process
					if (PsLookupProcessByProcessId((PVOID)(pinp->ProcessID),&selectedprocess)==STATUS_SUCCESS)	
					{
						KAPC_STATE apc_state;
						RtlZeroMemory(&apc_state,sizeof(apc_state));					
    					KeStackAttachProcess((PVOID)selectedprocess,&apc_state);
                 
						__try
						{
							physical=MmGetPhysicalAddress(pinp->BaseAddress);
						}
						__finally
						{
							KeUnstackDetachProcess(&apc_state);
						}
	

						ObDereferenceObject(selectedprocess);

					}
				}
				__except(1)
				{
						ntStatus=STATUS_UNSUCCESSFUL;
				}

				if (ntStatus==STATUS_SUCCESS)
                    RtlCopyMemory(Irp->AssociatedIrp.SystemBuffer,&physical.QuadPart,8);
				
				
				break;
			}

		case IOCTL_CE_PROTECTME:
			{
#ifdef AMD64
				ntStatus=STATUS_UNSUCCESSFUL;
#else
				struct input
				{
					HANDLE ProcessID; 
					ULONG DenyList;
					ULONG GlobalDenyList; //ignored if it is a includelist
					ULONG ListSize;
				} *pinp;

				UINT_PTR NextProcess;
				UINT_PTR PreviousProcess;


				pinp=Irp->AssociatedIrp.SystemBuffer;

				
				if (ModuleList!=NULL)
					MmFreeNonCachedMemory(ModuleList,ModuleListSize);

				ModuleList=NULL;
				ModuleListSize=0;

				if (pinp->ListSize>0)
				{
					ModuleList=MmAllocateNonCachedMemory(pinp->ListSize);
					if (ModuleList!=NULL)
					{
						__try
						{
							
                            RtlCopyMemory(ModuleList,(PVOID)((UINT_PTR)(&(pinp->ListSize))+sizeof(pinp->ListSize)),pinp->ListSize);
							ModuleListSize=pinp->ListSize;
						}
						__except(1)
						{
						}
					}
					
				}

				DenyList=pinp->DenyList==1;
				GlobalDenyList=pinp->GlobalDenyList==1;

				ProtectedProcessID=pinp->ProcessID;
				PsLookupProcessByProcessId((PVOID)(pinp->ProcessID),&ProtectedPEProcess);			

				if (ActiveLinkOffset!=0)
				{
					NextProcess=*(PUINT_PTR)((UINT_PTR)ProtectedPEProcess+ActiveLinkOffset)-ActiveLinkOffset;
					PreviousProcess=*(PUINT_PTR)((UINT_PTR)ProtectedPEProcess+ActiveLinkOffset+4)-ActiveLinkOffset;
	
					*(PUINT_PTR)(PreviousProcess+ActiveLinkOffset)=*(PULONG)((UINT_PTR)ProtectedPEProcess+ActiveLinkOffset); //the previous process points to me next process
					*(PUINT_PTR)(NextProcess+ActiveLinkOffset+4)=*(PULONG)((UINT_PTR)ProtectedPEProcess+ActiveLinkOffset+4); //the next process points to the previous process

					*(PUINT_PTR)((UINT_PTR)ProtectedPEProcess+ActiveLinkOffset)=(UINT_PTR)ProtectedPEProcess+ActiveLinkOffset;
					*(PUINT_PTR)((UINT_PTR)ProtectedPEProcess+ActiveLinkOffset+4)=(UINT_PTR)ProtectedPEProcess+ActiveLinkOffset;			
				}


				if (!ProtectOn)
				{
					//unlink this process from the activeprocess list

					if (!ImageNotifyRoutineLoaded)
						ImageNotifyRoutineLoaded=(PsSetLoadImageNotifyRoutine(LoadImageNotifyRoutine)==STATUS_SUCCESS);


					//Hook
					OldZwOpenProcess=(ZWOPENPROCESS)SYSTEMSERVICE(ZwOpenProcess);
					OldZwQuerySystemInformation=(ZWQUERYSYSTEMINFORMATION)SYSTEMSERVICE(ZwQuerySystemInformation);


					if ((KeServiceDescriptorTableShadow!=NULL) && (NtUserBuildHwndList_callnumber!=0) && (NtUserBuildHwndList_callnumber!=0) && (NtUserFindWindowEx_callnumber!=0) && (NtUserGetForegroundWindow_callnumber!=0))
					{
						OldNtUserQueryWindow=(NTUSERQUERYWINDOW)KeServiceDescriptorTableShadow->ServiceTable[NtUserQueryWindow_callnumber];						
						OldNtUserBuildHwndList=(NTUSERBUILDHWNDLIST)KeServiceDescriptorTableShadow->ServiceTable[NtUserBuildHwndList_callnumber];
						OldNtUserFindWindowEx=(NTUSERFINDWINDOWEX)KeServiceDescriptorTableShadow->ServiceTable[NtUserFindWindowEx_callnumber];
                        OldNtUserGetForegroundWindow=(NTUSERGETFOREGROUNDWINDOW)KeServiceDescriptorTableShadow->ServiceTable[NtUserGetForegroundWindow_callnumber];

						//now a extra check before I screw up the system
						if (((UCHAR)KeServiceDescriptorTableShadow->ServiceTable[NtUserBuildHwndList_callnumber]!=0x1c) || 
						    ((UCHAR)KeServiceDescriptorTableShadow->ServiceTable[NtUserQueryWindow_callnumber]!=0x08)  ||
							((UCHAR)KeServiceDescriptorTableShadow->ServiceTable[NtUserFindWindowEx_callnumber]!=0x14) ||
							((UCHAR)KeServiceDescriptorTableShadow->ServiceTable[NtUserGetForegroundWindow_callnumber]!=0x0)
							)
							
						{
							//NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!
							KeServiceDescriptorTableShadow=NULL; //disable it
							NtUserBuildHwndList_callnumber=0;
							NtUserQueryWindow_callnumber=0;
							NtUserFindWindowEx_callnumber=0;
							NtUserGetForegroundWindow_callnumber=0;							
						}	
					} else KeServiceDescriptorTableShadow=NULL; //do not enable hooking. All have to work, else none
					ProtectOn=TRUE;
				}

				
				__asm
				{
					cli 
					mov eax,CR0
					and eax,not 0x10000
					mov CR0,eax
				}
				(ZWOPENPROCESS)(SYSTEMSERVICE(ZwOpenProcess))=NewZwOpenProcess;
				(ZWQUERYSYSTEMINFORMATION)(SYSTEMSERVICE(ZwQuerySystemInformation))=NewZwQuerySystemInformation;


		        if ((NtUserQueryWindow_callnumber!=0) && (KeServiceDescriptorTableShadow!=NULL))
				  (NTUSERQUERYWINDOW)(KeServiceDescriptorTableShadow->ServiceTable[NtUserQueryWindow_callnumber])=NewNtUserQueryWindow;

		        if ((NtUserFindWindowEx_callnumber!=0) && (KeServiceDescriptorTableShadow!=NULL))
				  (NTUSERFINDWINDOWEX)(KeServiceDescriptorTableShadow->ServiceTable[NtUserFindWindowEx_callnumber])=NewNtUserFindWindowEx;

		        if ((NtUserGetForegroundWindow_callnumber!=0) && (KeServiceDescriptorTableShadow!=NULL))
				  (NTUSERGETFOREGROUNDWINDOW)(KeServiceDescriptorTableShadow->ServiceTable[NtUserGetForegroundWindow_callnumber])=NewNtUserGetForegroundWindow;

				if ((NtUserBuildHwndList_callnumber!=0) && (KeServiceDescriptorTableShadow!=NULL))
                  (NTUSERBUILDHWNDLIST)(KeServiceDescriptorTableShadow->ServiceTable[NtUserBuildHwndList_callnumber])=NewNtUserBuildHwndList;


				__asm
				{
					mov eax,CR0
					xor eax,0x10000
					mov CR0,eax
					sti
				}						

				ntStatus=STATUS_SUCCESS;
#endif //not amd64
				break;
			}	

		case IOCTL_CE_DONTPROTECTME:
			{
				//Unhook();
				if (ProtectOn)
					ntStatus=STATUS_UNSUCCESSFUL;
				else
					ntStatus=STATUS_SUCCESS;

				//ProtectOn=FALSE;

				break;
			}

		case IOCTL_CE_SETSDTADDRESS:
			{
				struct input
				{
					int table; //0=SDT, 1=SSDT
				  	int nr;	
					ULONG address;
					UCHAR paramcount;
				} *pinp;
				pinp=Irp->AssociatedIrp.SystemBuffer;
			

				__asm
				{
					cli 
					mov eax,CR0
					and eax,not 0x10000
					mov CR0,eax
				}
				if (pinp->table==0)
				{
					(ULONG)(KeServiceDescriptorTable->ServiceTable[pinp->nr])=pinp->address;
					(UCHAR)(KeServiceDescriptorTable->ArgumentTable[pinp->nr])=pinp->paramcount;
				}
				else if (pinp->table==1)
				{
					(ULONG)(KeServiceDescriptorTableShadow->ServiceTable[pinp->nr])=pinp->address;
					(UCHAR)(KeServiceDescriptorTableShadow->ArgumentTable[pinp->nr])=pinp->paramcount;
				}

				__asm
				{
					mov eax,CR0
					xor eax,0x10000
					mov CR0,eax
					sti
				}
				ntStatus=STATUS_SUCCESS;
				break;
			}


		case IOCTL_CE_GETSDTADDRESS:
			{
				struct input
				{
					int table; //0=SDT, 1=SSDT
				  	int nr;	
				} *pinp;
				struct output
				{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆国产欧美日韩综合精品二区| 一区二区三区日本| 94-欧美-setu| 亚洲国产人成综合网站| 亚洲精品在线免费播放| 99视频国产精品| 免费视频最近日韩| 亚洲欧美日韩久久精品| 精品国产一区二区国模嫣然| 色欧美乱欧美15图片| 久久国产综合精品| 亚洲综合丝袜美腿| 国产片一区二区| 欧美一区三区二区| 色综合久久久久综合体| 国产一二精品视频| 午夜激情久久久| 亚洲卡通动漫在线| 国产日韩欧美一区二区三区乱码| 欧美理论电影在线| 日本韩国一区二区| 99久久伊人久久99| 国产精品自拍一区| 美女性感视频久久| 日韩国产欧美视频| 性欧美大战久久久久久久久| 亚洲欧美综合另类在线卡通| 久久这里只有精品6| 91麻豆精品国产| 欧美区一区二区三区| 97久久精品人人做人人爽50路| 国产一区二区三区在线观看免费视频 | 色综合天天综合色综合av | 一区二区三区国产精华| 亚洲国产成人自拍| 国产日韩欧美一区二区三区乱码 | 欧美三级视频在线观看| 99久久免费国产| 成人黄页毛片网站| 国产激情精品久久久第一区二区| 毛片av一区二区| 免费人成在线不卡| 免费视频最近日韩| 免费人成网站在线观看欧美高清| 亚洲成人激情自拍| 午夜成人在线视频| 欧美a级一区二区| 麻豆精品一区二区综合av| 日韩国产一二三区| 激情综合五月天| 国产精品1区2区| 粉嫩av一区二区三区粉嫩| 岛国精品一区二区| 91美女在线观看| 在线免费av一区| 欧美精品丝袜久久久中文字幕| 9191国产精品| 精品久久久久久无| 国产午夜亚洲精品羞羞网站| 国产精品网站导航| 亚洲乱码国产乱码精品精可以看 | 国内精品嫩模私拍在线| 国精产品一区一区三区mba视频 | 国产精品一区二区在线观看不卡| 国产一区91精品张津瑜| 成人免费va视频| 在线欧美日韩国产| 欧美一区二区三区精品| 精品久久久久久久久久久院品网 | 国产乱子轮精品视频| 成人午夜视频在线| 一本到三区不卡视频| 欧美日韩综合在线| 日韩视频国产视频| 国产欧美一区二区精品婷婷 | 久久av资源站| 成人福利视频在线看| 91精彩视频在线| 5月丁香婷婷综合| 久久人人97超碰com| 亚洲三级小视频| 欧美96一区二区免费视频| 国产精品自拍毛片| 欧美在线一区二区三区| 日韩美女一区二区三区| 中文字幕一区日韩精品欧美| 偷拍一区二区三区| 国产成人综合精品三级| 欧美亚洲自拍偷拍| 欧美精品一区二区三| 中文字幕人成不卡一区| 日韩高清在线观看| 99久久精品免费看国产| 欧美一区二区久久久| 国产精品久久午夜夜伦鲁鲁| 性做久久久久久免费观看欧美| 国产福利视频一区二区三区| 91香蕉国产在线观看软件| 欧美一区二区啪啪| 亚洲日本中文字幕区| 麻豆久久久久久久| 欧美综合在线视频| 国产三级一区二区| 免费观看一级欧美片| 色综合一个色综合| 国产亚洲制服色| 日韩电影在线观看电影| 91日韩精品一区| 国产性天天综合网| 美女一区二区在线观看| 欧美午夜精品电影| 国产精品国产三级国产aⅴ中文 | 在线视频国内自拍亚洲视频| 国产三级精品在线| 另类中文字幕网| 欧美午夜一区二区| 亚洲柠檬福利资源导航| 国产精品一线二线三线精华| 91精品国产91热久久久做人人| 亚洲一区二区3| 99国产一区二区三精品乱码| 国产午夜精品福利| 国产乱人伦精品一区二区在线观看| 91精品在线免费观看| 亚洲一区视频在线观看视频| 99精品视频一区| 国产精品免费av| 国产suv精品一区二区三区| 欧美电影免费提供在线观看| 首页国产丝袜综合| 欧美日韩国产高清一区二区| 一区二区三区成人| 91国偷自产一区二区三区观看| 国产精品第五页| 不卡的av网站| 中文字幕一区二区三区蜜月 | 蜜桃久久av一区| 91精品视频网| 日韩av在线播放中文字幕| 欧美日韩三级视频| 天堂影院一区二区| 这里只有精品99re| 日本成人在线不卡视频| 91精品国产综合久久福利软件 | 国产精品久久久爽爽爽麻豆色哟哟| 国产一区二三区| 久久婷婷成人综合色| 精品亚洲国内自在自线福利| 精品盗摄一区二区三区| 国产在线播精品第三| 国产天堂亚洲国产碰碰| eeuss鲁片一区二区三区在线看| 国产精品灌醉下药二区| 9i在线看片成人免费| 亚洲女与黑人做爰| 欧美理论在线播放| 激情深爱一区二区| 国产精品丝袜一区| 色狠狠综合天天综合综合| 亚洲尤物在线视频观看| 欧美精品一级二级三级| 青青草97国产精品免费观看无弹窗版| 日韩视频中午一区| 国产成人av资源| 中文字幕中文字幕中文字幕亚洲无线| 91色视频在线| 日韩成人精品在线观看| 精品国产凹凸成av人导航| 丁香五精品蜜臀久久久久99网站 | 国内精品自线一区二区三区视频| 久久精品亚洲乱码伦伦中文 | 欧美日本免费一区二区三区| 日本va欧美va精品| 国产欧美精品一区二区色综合朱莉| 99麻豆久久久国产精品免费 | av一区二区久久| 香蕉加勒比综合久久| 精品国产乱码久久久久久蜜臀| 粉嫩av一区二区三区粉嫩| 亚洲一区成人在线| 精品成人佐山爱一区二区| 99久久99久久精品免费观看 | 久久99久久久久| 综合久久综合久久| 日韩亚洲国产中文字幕欧美| 国产91富婆露脸刺激对白| 夜夜亚洲天天久久| 久久人人97超碰com| 欧美视频第二页| 国产91清纯白嫩初高中在线观看| 一区二区成人在线视频| 久久色.com| 欧美性色aⅴ视频一区日韩精品| 激情成人午夜视频| 亚洲综合男人的天堂| 久久亚洲一区二区三区四区| 色播五月激情综合网| 久久不见久久见免费视频7| 亚洲一区二区三区在线| 日本一区二区免费在线|