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

S.l.e!ep.¢%

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

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

Posted on 2009-10-14 15:45 S.l.e!ep.¢% 閱讀(1406) 評論(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>
            老司机67194精品线观看| 欧美日韩喷水| 亚洲美女网站| 日韩网站在线看片你懂的| 日韩亚洲欧美综合| 亚洲影视中文字幕| 午夜视频在线观看一区二区三区 | 亚洲欧美变态国产另类| 亚欧成人在线| 久久在线观看视频| 国产欧美日韩中文字幕在线| 国产一区二区三区奇米久涩| 亚洲电影视频在线| 一区二区三区精品国产| 欧美一区二区在线看| 老司机一区二区三区| 亚洲国产精品一区制服丝袜| 亚洲黄网站黄| 午夜精品久久久| 老鸭窝亚洲一区二区三区| 欧美日韩国产在线一区| 国产一二精品视频| 一本色道久久综合一区| 久久久91精品国产一区二区三区| 亚洲国产成人91精品| 亚洲女女做受ⅹxx高潮| 欧美成年人视频| 国产欧美日韩| 亚洲一级高清| 欧美激情精品久久久久久| 亚洲影视在线播放| 欧美日韩免费一区二区三区视频| 黄色国产精品| 午夜精品免费在线| 亚洲人体影院| 你懂的网址国产 欧美| 国产日产欧美一区| 亚洲一区二区三区四区中文| 欧美不卡三区| 久久精品国产清高在天天线| 国产精品久久久久久福利一牛影视| 亚洲人午夜精品免费| 久久亚洲欧美| 欧美一区二区私人影院日本 | 亚洲天堂久久| 欧美日韩午夜激情| 亚洲黄色av一区| 老司机免费视频一区二区| 亚洲在线成人| 国产精品久久久久秋霞鲁丝| 亚洲精品乱码久久久久久按摩观| 久久午夜av| 久久久久久久久蜜桃| 国产一区二区欧美| 久久精品在这里| 久久av最新网址| 国产一区欧美| 麻豆精品一区二区综合av| 久久久精品国产免大香伊 | 国产综合精品| 欧美影院午夜播放| 亚洲欧美日韩在线一区| 国产欧美日韩精品一区| 久久国产精品亚洲77777| 亚洲制服av| 国产日产亚洲精品| 国内成+人亚洲| 久久野战av| 另类欧美日韩国产在线| 亚洲第一区在线| 亚洲福利电影| 欧美日韩在线播放三区| 午夜精品一区二区三区在线视 | 蜜臀久久99精品久久久画质超高清| 国内精品久久久久国产盗摄免费观看完整版| 亚洲欧洲99久久| 欧美一区二区三区播放老司机| 国产在线精品一区二区中文| 毛片一区二区三区| 免费在线欧美黄色| 亚洲视频一区| 久久精品电影| 亚洲免费高清| 午夜精品福利一区二区三区av| 国内精品伊人久久久久av影院 | 亚洲狼人综合| 国产精品午夜在线观看| 久久久久久69| 欧美—级高清免费播放| 亚洲一区二区免费| 久久国产夜色精品鲁鲁99| 亚洲免费av片| 欧美专区第一页| 99在线精品观看| 欧美一区亚洲二区| 日韩视频永久免费| 午夜精品国产更新| 亚洲最新在线| 久久精品国产96久久久香蕉| 9色porny自拍视频一区二区| 欧美一区二区三区免费视| 亚洲九九精品| 久久精品一区二区三区四区| 99精品久久久| 久久婷婷国产综合国色天香| 一区二区三区日韩欧美精品| 久久成人18免费网站| 亚洲视频每日更新| 久久影视精品| 久久久精品国产99久久精品芒果| 欧美日本在线| 亚洲成色777777女色窝| 国产欧美一区二区三区另类精品| 亚洲国产欧美一区二区三区久久| 国产亚洲女人久久久久毛片| 99精品视频免费观看| 亚洲国产婷婷香蕉久久久久久99| 午夜欧美理论片| 亚洲女人天堂成人av在线| 欧美激情国产日韩| 女主播福利一区| 韩国三级电影久久久久久| 亚洲一区二区在线播放| 在线中文字幕日韩| 欧美激情第3页| 亚洲国产精品成人综合色在线婷婷| 久久精品国产一区二区电影| 欧美激情精品久久久六区热门 | 久久爱另类一区二区小说| 欧美日韩在线播| 亚洲人成艺术| 日韩小视频在线观看专区| 久久麻豆一区二区| 久久五月激情| 永久免费精品影视网站| 欧美在线视频不卡| 久久免费视频这里只有精品| 国产亚洲成av人片在线观看桃| 亚洲欧美激情一区二区| 欧美一区二区网站| 国产伊人精品| 久久亚洲精品网站| 久久看片网站| 在线精品在线| 欧美国产一区视频在线观看 | 久久久精品动漫| 国产一区视频在线观看免费| 欧美在线一区二区三区| 免费成人激情视频| 亚洲国产毛片完整版 | 久久先锋影音| 亚洲高清自拍| 亚洲天堂激情| 国产一区高清视频| 欧美刺激午夜性久久久久久久| 亚洲国内欧美| 亚洲一区二区三区四区在线观看 | 国产日韩欧美三区| 久久国产乱子精品免费女| 欧美成人一区二区三区| 99视频精品全部免费在线| 国产精品拍天天在线| 久久精品国产精品| 亚洲激情视频网站| 亚洲欧美久久久| 极品尤物一区二区三区| 欧美激情视频在线播放| 亚洲影院免费观看| 亚洲二区视频在线| 欧美一区二区在线视频| 亚洲人成人一区二区在线观看| 国产精品欧美风情| 久久综合一区二区| 亚洲私人影吧| 亚洲电影免费观看高清完整版在线观看 | 一区二区不卡在线视频 午夜欧美不卡在| 欧美一区二区观看视频| 91久久久久久久久| 欧美精品色网| 欧美一级日韩一级| 亚洲欧洲在线视频| 久久riav二区三区| 日韩视频免费在线观看| 国产精品婷婷| 欧美女人交a| 久久久综合香蕉尹人综合网| 一本一本久久| 最新国产の精品合集bt伙计| 久久免费视频在线| 亚洲欧美亚洲| 一区二区三区日韩精品视频| 在线免费观看日韩欧美| 国产一区二区0| 国产精品男gay被猛男狂揉视频| 欧美成人精品福利| 久久综合激情| 久久久精品欧美丰满| 欧美一二三区精品| 小嫩嫩精品导航| 亚洲免费一区二区|