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

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| 亚洲天堂男人| 国产日产欧产精品推荐色 | 欧美男人的天堂| 亚洲综合精品一区二区| 亚洲综合成人在线| 尤物九九久久国产精品的特点 | 亚洲第一色中文字幕| 欧美另类亚洲| 久久精品国产久精国产思思| 久久伊人一区二区| 9久re热视频在线精品| 亚洲小少妇裸体bbw| 国外成人在线视频| 亚洲精品一区二区在线观看| 国产精品网站一区| 免费视频亚洲| 国产精品久久国产愉拍 | 蜜乳av另类精品一区二区| 欧美理论电影在线观看| 久久激情久久| 欧美日韩蜜桃| 免费成人你懂的| 国产精品久久影院| 亚洲国产精选| 国产无一区二区| 日韩一级免费观看| 欲香欲色天天天综合和网| aa成人免费视频| 亚洲黄色免费网站| 欧美一级在线视频| 亚洲一区欧美一区| 欧美激情第3页| 久久国产精品久久精品国产| 欧美久久婷婷综合色| 免费日韩视频| 久久久成人网| 亚洲电影观看| 亚洲精品一区二区三| 黄色精品免费| 亚洲欧美国产高清| 这里只有精品视频在线| 久久婷婷国产综合国色天香| 欧美一区二区大片| 国产精品麻豆成人av电影艾秋| 欧美刺激性大交免费视频| 国产乱码精品一区二区三区忘忧草| 亚洲激情电影在线| 亚洲国产美女| 久久―日本道色综合久久| 久久高清免费观看| 国产模特精品视频久久久久| 在线视频你懂得一区二区三区| 日韩午夜激情av| 欧美黄色一区二区| 91久久香蕉国产日韩欧美9色| 亚洲高清在线播放| 久久午夜视频| 欧美大片在线影院| 亚洲第一级黄色片| 久久综合一区二区| 欧美电影在线| 99精品欧美一区二区三区综合在线 | 开元免费观看欧美电视剧网站| 国产视频欧美| 久久精品视频99| 欧美成人精品一区| 亚洲人成网站在线观看播放| 欧美激情国产日韩| 亚洲免费av电影| 亚洲一区欧美激情| 国产亚洲一区二区精品| 欧美亚洲自偷自偷| 免费不卡欧美自拍视频| 亚洲日本欧美| 欧美日韩免费在线| 先锋影音国产精品| 欧美a级片一区| 夜夜嗨一区二区三区| 国产精品久久一卡二卡| 久久精品亚洲精品国产欧美kt∨| 男男成人高潮片免费网站| 亚洲精品在线视频观看| 欧美吻胸吃奶大尺度电影| 亚洲永久精品国产| 欧美国产日韩二区| 中文欧美字幕免费| 国产亚洲欧美在线| 欧美激情在线播放| 亚洲综合第一| 亚洲成色www8888| 亚洲欧美日韩精品久久久| 精品电影在线观看| 欧美视频第二页| 久久精品毛片| 正在播放日韩| 欧美粗暴jizz性欧美20| 午夜精品福利一区二区三区av| 韩曰欧美视频免费观看| 欧美视频在线一区二区三区| 久久精品久久99精品久久| 9色porny自拍视频一区二区| 久久在线91| 欧美成年人网| 欧美激情一区二区久久久| 亚洲六月丁香色婷婷综合久久| 国产精品v日韩精品v欧美精品网站| 久久成人人人人精品欧| 亚洲美女在线国产| 欧美成人激情视频| 久久精品欧美| 亚洲砖区区免费| 日韩午夜在线| 亚洲第一精品久久忘忧草社区| 国产精品一区久久久久| 欧美日本精品| 裸体歌舞表演一区二区| 性欧美18~19sex高清播放| 日韩视频免费看| 亚洲国产精品电影| 麻豆精品精华液| 久久国产欧美| 午夜久久资源| 亚洲资源av| 亚洲欧美日韩另类| 在线天堂一区av电影| 一本久道久久综合婷婷鲸鱼| 在线日韩精品视频| 黄网动漫久久久| 国内精品伊人久久久久av影院| 国产伦精品一区二区三区在线观看| 欧美日韩国产综合网| 欧美人牲a欧美精品| 欧美成人精品激情在线观看| 久久影视三级福利片| 久久国产乱子精品免费女| 久久国产福利| 久久久一区二区三区| 久久狠狠一本精品综合网| 性刺激综合网| 久久精品日产第一区二区| 久久精品中文字幕一区| 久久综合久久综合九色| 久久综合九色九九| 卡通动漫国产精品| 欧美国产日韩一区二区| 欧美日韩视频一区二区| 欧美视频四区| 国产欧美精品日韩精品| 国产视频在线观看一区 | 久久午夜视频| 欧美暴力喷水在线| 欧美视频手机在线| 国产精品网曝门| 精品999久久久| 亚洲免费成人av电影| 亚洲一区二区免费看| 亚洲男人的天堂在线观看| 久久精品国产久精国产爱| 农村妇女精品| 亚洲美女精品成人在线视频| 一区二区三区日韩精品| 欧美亚洲一区三区| 免费欧美在线| 欧美亚洲不卡| 精品成人在线| 亚洲一级免费视频| 久久全国免费视频| 最新亚洲激情| 欧美一级视频精品观看| 欧美国产精品v| 国产精品久久一卡二卡| 1024成人网色www| 亚洲一区在线视频| 狂野欧美激情性xxxx欧美| 亚洲精品久久久久久下一站| 亚洲欧美综合一区| 欧美国产日本韩| 国产美女在线精品免费观看| 亚洲国产综合视频在线观看| 欧美亚洲视频| 亚洲国产专区| 欧美中文在线字幕| 欧美图区在线视频| 亚洲激情在线视频| 免费在线看一区| 久久久久.com| 国产精品美女久久久浪潮软件| 加勒比av一区二区| 欧美一级大片在线免费观看| 欧美激情综合色| 久久激情中文| 国产欧美一区二区精品忘忧草| 亚洲精品国产拍免费91在线| 久久先锋影音| 午夜一区二区三区在线观看| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 欧美在线综合| 国产精品麻豆va在线播放|