青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

突破游戲驅動級反外掛保護

Posted on 2009-10-14 15:45 S.l.e!ep.¢% 閱讀(1402) 評論(0)  編輯 收藏 引用 所屬分類: Crack

突破游戲驅動級反外掛保護2009-01-25 14:01現在大多數網絡游戲都使用驅動級的反外掛保護,使其他程序無法獲得其游戲窗口句柄,下面驅動代碼可以恢復被TesSafe.sys Hook掉的API。

#include <ntddk.h>
#include <windef.h>
#include <ntimage.h>
#include "Common.h"

typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[2];
PVOID Process;
BOOLEAN KernelApcInProgress;
BOOLEAN KernelApcPending;
BOOLEAN UserApcPending;
} KAPC_STATE, *PKAPC_STATE;

ULONG g_nOpenIndex?????? = 0;
ULONG g_nThreadIndex????? = 0;
ULONG g_nReadIndex?????? = 0;
ULONG g_nWriteIndex?????? = 0;

ULONG g_NtOpenProcess????? = 0;
ULONG g_NtOpenThread????? = 0;
ULONG g_NtReadVirtualMemory???? = 0;
ULONG g_NtWriteVirtualMemory??? = 0;
ULONG g_KiAttachProcess????? = 0;
ULONG g_PsCreateSystemThread??? = 0;

ULONG g_PsCreateSystemThreadAddr?? = 0;

BYTE g_NtOpenProcessSave[0x300];
BYTE g_NtOpenThreadSave[0x300];
BYTE g_NtReadVirtualMemorySave[0x10];
BYTE g_NtWriteVirtualMemorySave[0x10];
BYTE g_KiAttachProcessSave[0x10];

INLINEHOOK g_hPsCreateSystemThread;

VOID NTAPI MyThread(PVOID pContext)
{


__asm
{
?? push eax
?? cli
?? mov?? eax, cr0
?? and?? eax, not 0x10000
?? mov?? cr0, eax
?? pop?? eax
}

if (g_NtOpenProcess)
{
?? memcpy((PVOID)g_NtOpenProcess, (PVOID)g_NtOpenProcessSave, sizeof(g_NtOpenProcessSave));
// DbgPrint("恢復NtOpenProcess成功");
}

if (g_NtOpenThread)
{
?? memcpy((PVOID)g_NtOpenThread, (PVOID)g_NtOpenThreadSave, sizeof(g_NtOpenThreadSave));
// DbgPrint("恢復NtOpenThread成功");
}

if (g_NtReadVirtualMemory)
{
?? memcpy((PVOID)g_NtReadVirtualMemory, (PVOID)g_NtReadVirtualMemorySave, sizeof(g_NtReadVirtualMemorySave));
// DbgPrint("恢復NtReadVirtualMemory成功");
}

if (g_NtWriteVirtualMemory)
{
?? memcpy((PVOID)g_NtWriteVirtualMemory, (PVOID)g_NtWriteVirtualMemorySave, sizeof(g_NtWriteVirtualMemorySave));
// DbgPrint("恢復NtWriteVirtualMemory成功");
}

if (g_KiAttachProcess)
{
?? memcpy((PVOID)g_KiAttachProcess, (PVOID)g_KiAttachProcessSave, sizeof(g_KiAttachProcessSave));
// DbgPrint("恢復KiAttachProcess成功");
}

__asm
{
?? push eax
?? mov?? eax, cr0
?? or?? eax, 0x10000
?? mov?? cr0, eax
?? sti
?? pop?? eax
}
DbgPrint("恢復成功");
PsTerminateSystemThread(STATUS_SUCCESS);
}

__declspec(naked) NTSTATUS MyPsCreateSystemThread_(PHANDLE ThreadHandle,ULONG DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,HANDLE ProcessHandle,PCLIENT_ID ClientId,PKSTART_ROUTINE StartRoutine,PVOID StartContext)
{
__asm
{
?? jmp?? dword ptr [g_PsCreateSystemThreadAddr]
}
}

NTSTATUS MyPsCreateSystemThread(PHANDLE ThreadHandle,ULONG DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,HANDLE ProcessHandle,PCLIENT_ID ClientId,PKSTART_ROUTINE StartRoutine,PVOID StartContext)
{
PDWORD Addr = (PDWORD)StartRoutine;
HANDLE hThread = NULL;
if ( (*Addr == 0x81EC8B55 && *(Addr + 1) == 0x94EC) || (*Addr == 0x0149F6E9 && *(Addr + 1) == 0xB2120100) || (*Addr == 0x01F1DFE9 && *(Addr + 1) == 0x13A5F300) || (*Addr == 0x02120FE9 && *(Addr + 1) == 0x6E800) )
{
?? DbgPrint("創建內核線程:%X\n",StartRoutine);
// MyPsCreateSystemThread_(&hThread, (ACCESS_MASK)0, NULL,(HANDLE)0, NULL, MyThread, NULL);
// ZwClose(hThread);
?? StartRoutine = MyThread;
}
return MyPsCreateSystemThread_(ThreadHandle, DesiredAccess, ObjectAttributes, ProcessHandle, ClientId, StartRoutine, StartContext);
}

ULONG GetKiAttachProcessAddr()
{
ULONG DisassemblerLen = 0, Size = 0;
PBYTE FunctionAddr = (PBYTE)GetFunctionAddr(L"KeStackAttachProcess");
do
{
?? DisassemblerLen = GetOpCodeSize(FunctionAddr);
?? FunctionAddr = FunctionAddr + DisassemblerLen;
?? Size = Size + DisassemblerLen;
?? if (Size > 0x100 || *(PWORD)FunctionAddr == 0x8C2)
?? {
??? return 0;
?? }
} while ( *FunctionAddr != 0xE8 );

return (LONG)FunctionAddr + *(PLONG)(FunctionAddr + 1) + 5;
}

VOID Hook()
{
g_nOpenIndex????? = GetFunctionIndex("NtOpenProcess");
g_nThreadIndex????? = GetFunctionIndex("NtOpenThread");
g_nReadIndex????? = GetFunctionIndex("NtReadVirtualMemory");
g_nWriteIndex????? = GetFunctionIndex("NtWriteVirtualMemory");

g_NtOpenProcess????? = KeServiceDescriptorTable->ServiceTableBase[g_nOpenIndex];
g_NtOpenThread????? = KeServiceDescriptorTable->ServiceTableBase[g_nThreadIndex];
g_NtReadVirtualMemory??? = KeServiceDescriptorTable->ServiceTableBase[g_nReadIndex];
g_NtWriteVirtualMemory??? = KeServiceDescriptorTable->ServiceTableBase[g_nWriteIndex];
g_KiAttachProcess???? = GetKiAttachProcessAddr();


g_PsCreateSystemThread??? = GetFunctionAddr(L"PsCreateSystemThread");

if (g_NtOpenProcess)
{
?? memcpy((PVOID)g_NtOpenProcessSave, (PVOID)g_NtOpenProcess, sizeof(g_NtOpenProcessSave));
?? DbgPrint("NtOpenProcess 地址:%08X", g_NtOpenProcess);
}
else
{
?? DbgPrint("獲取NtOpenProcess地址失敗");
}

if (g_NtOpenThread)
{
?? memcpy((PVOID)g_NtOpenThreadSave, (PVOID)g_NtOpenThread, sizeof(g_NtOpenThreadSave));
?? DbgPrint("NtOpenThread 地址:%08X", g_NtOpenThread);
}
else
{
?? DbgPrint("獲取NtOpenThread地址失敗");
}

if (g_NtReadVirtualMemory)
{
?? memcpy((PVOID)g_NtReadVirtualMemorySave, (PVOID)g_NtReadVirtualMemory, sizeof(g_NtReadVirtualMemorySave));
?? DbgPrint("NtReadVirtualMemory 地址:%08X", g_NtReadVirtualMemory);
}
else
{
?? DbgPrint("獲取NtReadVirtualMemory地址失敗");
}

if (g_NtWriteVirtualMemory)
{
?? memcpy((PVOID)g_NtWriteVirtualMemorySave, (PVOID)g_NtWriteVirtualMemory, sizeof(g_NtWriteVirtualMemorySave));
?? DbgPrint("NtWriteVirtualMemory 地址:%08X", g_NtWriteVirtualMemory);
}
else
{
?? DbgPrint("獲取NtWriteVirtualMemory地址失敗");
}


if (g_KiAttachProcess)
{
?? memcpy((PVOID)g_KiAttachProcessSave, (PVOID)g_KiAttachProcess, sizeof(g_KiAttachProcessSave));
?? DbgPrint("KiAttachProcess 地址:%08X", g_KiAttachProcess);
}
else
{
?? DbgPrint("獲取KiAttachProcess地址失敗");
}

HookFunction(g_PsCreateSystemThread, (ULONG)MyPsCreateSystemThread, &g_hPsCreateSystemThread, &g_PsCreateSystemThreadAddr);
}

VOID UnHook()
{
UnHookFunction(&g_hPsCreateSystemThread);
}
void OnUnload(PDRIVER_OBJECT pDriverObj)
{
UnHook();
DbgPrint("卸載成功");
}

// 驅動程序加載時調用DriverEntry例程
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegistryString)
{
pDriverObj->DriverUnload = OnUnload;
DbgPrint("加載成功");
Hook();
return STATUS_SUCCESS;
}
?

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲大片免费看| 你懂的视频欧美| 午夜久久久久久| 夜夜嗨av一区二区三区网页| 久久免费精品视频| 99在线精品视频在线观看| 校园激情久久| 久久青草久久| 国产在线观看精品一区二区三区| 欧美日韩中文| 欧美午夜视频网站| 欧美片在线观看| 欧美日韩国产专区| 欧美理论电影在线播放| 欧美丰满高潮xxxx喷水动漫| 欧美精品激情在线| 欧美激情一区二区三区全黄 | 欧美大片第1页| 欧美久久99| 国产女精品视频网站免费| 国产区精品视频| 欧美乱人伦中文字幕在线| 欧美午夜精品理论片a级按摩| 国产精品美女久久久久久2018| 国产精品一区二区久久| 亚洲国产成人porn| 亚洲视频久久| 免费一级欧美片在线观看| 亚洲第一中文字幕| 亚洲国产精品一区二区三区| 国产无一区二区| 亚洲人成免费| 午夜精品区一区二区三| 麻豆精品一区二区av白丝在线| 亚洲电影免费观看高清完整版在线观看 | 亚洲欧美日韩精品久久亚洲区| 久久久免费精品视频| 欧美精品在线免费播放| 国内综合精品午夜久久资源| 亚洲一区二区三区在线| 亚洲人成网站精品片在线观看| 亚洲淫性视频| 免费不卡在线观看| 国产精品免费久久久久久| 亚洲激情av在线| 久久精品亚洲一区| 99国产一区| 欧美成人小视频| 狠狠色狠狠色综合| 午夜精品三级视频福利| 亚洲日本va午夜在线影院| 羞羞答答国产精品www一本| 欧美性事在线| 亚洲一区国产| 亚洲片在线观看| 你懂的国产精品永久在线| 国产人成精品一区二区三| 亚洲性感激情| 一本色道久久加勒比88综合| 欧美成人免费网站| 亚洲激情第一区| 欧美gay视频| 久久精品最新地址| 国产日产高清欧美一区二区三区| 在线一区欧美| 一区二区三区视频在线观看| 欧美国产亚洲精品久久久8v| 在线日韩中文字幕| 欧美成人精品在线| 麻豆精品一区二区av白丝在线| 国产亚洲欧美中文| 国产在线视频不卡二| 亚洲国产高清一区| 亚洲综合第一| 亚洲欧美中文另类| 99re热精品| 一区二区三区黄色| 欧美激情精品久久久久久黑人| 性色av一区二区三区| 免费视频一区| 亚洲伦理在线观看| 亚洲精品国精品久久99热| 欧美1区2区3区| 日韩亚洲综合在线| 夜夜嗨av一区二区三区免费区| 国产精品分类| 久久精品国产清高在天天线| 久久久国产一区二区| 永久域名在线精品| 亚洲精品免费看| 国产精品一区在线观看| 久久免费观看视频| 欧美国产第二页| 欧美日韩在线直播| 欧美日韩国产不卡| 在线亚洲+欧美+日本专区| 一本色道久久88综合日韩精品| 国产精品美女久久| 免费成人激情视频| 欧美视频一区二| 久久久久国产一区二区三区四区 | 亚洲精品午夜| 亚洲天堂激情| 亚洲人成在线观看一区二区| 一区二区高清视频| 国产亚洲精品久久久久久| 亚洲大片在线| 国产日韩在线看片| 亚洲人成网站在线观看播放| 国产精品欧美日韩| 亚洲精品国产精品国产自| 最新亚洲一区| 国产一区观看| 一区二区成人精品| 亚洲精品一区在线观看| 久久爱www| 性欧美1819性猛交| 欧美日韩喷水| 亚洲日本成人| 亚洲国产欧美不卡在线观看| 欧美一区二区三区在| 亚洲女同精品视频| 欧美精品三区| 亚洲电影免费观看高清| 国产色产综合产在线视频| 99视频一区二区三区| 欲色影视综合吧| 久久久久久欧美| 欧美在线亚洲综合一区| 国产精品a久久久久久| 最新国产拍偷乱拍精品| 亚洲高清三级视频| 久久久久久自在自线| 久久久久.com| 国产婷婷色一区二区三区在线| 亚洲午夜免费福利视频| 9色精品在线| 欧美精品高清视频| 亚洲人体一区| 在线亚洲欧美视频| 国产精品高潮视频| 宅男噜噜噜66一区二区66| 中国av一区| 欧美无砖砖区免费| 亚洲一区二区三区视频| 免费欧美视频| 亚洲国产精品一区| 欧美激情视频一区二区三区在线播放| 久久一二三四| 亚洲国产欧美一区二区三区同亚洲| 亚洲精品社区| 久久亚洲综合色| 国产亚洲欧美激情| 亚洲性av在线| 亚洲成人在线视频网站| 久久精品人人做人人综合| 国产精品麻豆va在线播放| 亚洲自拍偷拍麻豆| 亚洲精品综合精品自拍| 久久综合五月天婷婷伊人| 亚洲黄色一区二区三区| 亚洲日本欧美日韩高观看| 欧美人与性动交cc0o| 在线亚洲精品| 欧美在线免费一级片| 亚洲精品久久久久久久久久久| 欧美激情a∨在线视频播放| 欧美三日本三级少妇三99 | 欧美午夜不卡影院在线观看完整版免费| 亚洲欧美国产高清| 影音先锋日韩有码| 亚洲欧美文学| 老巨人导航500精品| 日韩亚洲国产精品| 国产欧美一区二区三区视频| 久久精品国产一区二区电影| 亚洲欧洲精品一区二区| 欧美chengren| 亚洲最新在线| 久久精品免费播放| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美在线1区| 亚洲天天影视| 国产日韩精品久久久| 欧美三级第一页| 亚洲免费一级电影| 欧美高清免费| 欧美一区二区视频在线| 亚洲国产高清自拍| 国产精品久久9| 欧美 日韩 国产精品免费观看| 日韩一级精品| 欧美黄色成人网| 香蕉国产精品偷在线观看不卡| 亚洲人成网站在线观看播放| 国产伊人精品| 国产麻豆视频精品| 欧美日韩国产高清视频| 美日韩精品视频| 久久久在线视频|