婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 分享Win10 1903過TP的雙機調試問題

分享Win10 1903過TP的雙機調試問題

熱門標簽:怎么去掉地圖標注文字 北京外呼系統咨詢電話 高德地圖標注公司位置需要錢嗎 合肥阿里辦理400電話號 襄陽外呼增值業務線路解決方案 地圖標注資源分享注冊 慶陽外呼系統定制開發 海南人工外呼系統哪家好 廊坊地圖標注申請入口

差不多我用到的大部分代碼都是從上面cv(Ctrl+c---->Ctrl+v)下來的

1、首先解決The context is partially valid. Only x86 user-mode context is available. 

具體方式是hookKdpTrap

2、 防止安全組件加載失敗

SharedUserData->KdDebuggerEnabled = FALSE;  //防止安全組件加載失敗,SharedUserData這個是一個導出的全局變量直接寫就行

3、XP會清零KdDebuggerEnabled

這里本來是打算做一個定時器,但是還是會導致TesNginx.Sycccccccccccccc出現藍屏,所以只有手動的去修改

4、斷鏈隱藏 kdcom,防止kdcom內存被清空導致和windbg通訊不了

5、XP會檢測KdEnteredDebugger,如果是1就直接藍屏

處理方式是讓他去找其他位置(PUCHAR)KdEnteredDebugger + 0x30;  //據暗中觀察,+0x30 的位置恒為0

做完這些之后基本上就能夠下斷點了,但是其實還是有問題(由于hook了系統函數有一定的幾率會觸發109錯誤->PathGuard,一開始我也分不清楚,后來慢慢的也了解了)

之后放上一張過了圖片

最后把代碼也帶上吧,.asm文件很簡單簡單的inlinhook就行了

#include Ntifs.h>
#include ntimage.h>
extern void debg();
//關閉寫保護
KIRQL WPOFFx64(){
 KIRQL irql = KeRaiseIrqlToDpcLevel();
 UINT64 cr0 = __readcr0();
 cr0 = 0xfffffffffffeffff;
 __writecr0(cr0);
 _disable();
 return irql;
}
//開啟寫保護
void WPONx64(KIRQL irql){
 UINT64 cr0 = __readcr0();
 cr0 |= 0x10000;
 _enable();
 __writecr0(cr0);
 KeLowerIrql(irql);
}
//這里嘗試過tp的雙機調試,環境為win10 1903
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//1、首先解決The context is partially valid. Only x86 user-mode context is available. 
/*
nt!KdpTrap:
fffff807`64bfffc8 48895c2408   mov   qword ptr [rsp+8],rbx
fffff807`64bfffcd 4889542410   mov   qword ptr [rsp+10h],rdx
fffff807`64bfffd2 57       push  rdi
fffff807`64bfffd3 4883ec40    sub   rsp,40h
fffff807`64bfffd7 33d2      xor   edx,edx
*/
ULONG64 orgkdt = 0xfffff80166201fc8;
//ULONG64 orgkdt= 0xfffff80764bfffc8;//直接寫硬編碼,這里需要進行修改-------------------------------------------------------------------------------------------------------------------------------------------------------
NTKERNELAPI UCHAR * PsGetProcessImageFileName(__in PEPROCESS Process);
extern NTSTATUS hdbktrap(IN PKTRAP_FRAME TrapFrame,IN PKEXCEPTION_FRAME ExceptionFrame,IN PEXCEPTION_RECORD ExceptionRecord,IN PCONTEXT ContextRecord,IN KPROCESSOR_MODE PreviousMode,IN BOOLEAN SecondChanceException);
//這里做一個跳轉
VOID ModifyKdpTrap(PVOID myaddress,PVOID targetaddress) {
 KIRQL irql;
 ULONGLONG myfun;
 UCHAR jmp_code[] = "\x48\xB8\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF\xE0\x00\x00";//mov rax xxx,jmp rax
 myfun = (ULONGLONG)myaddress;//替換成自己的函數地址
 RtlCopyMemory(jmp_code + 2, myfun, 8);
 //debg();
 irql = WPOFFx64();
 RtlCopyMemory(targetaddress, jmp_code, 12);
 WPONx64(irql);
}
//這里完成hook
NTSTATUS HookKdpTrap(
 IN PKTRAP_FRAME TrapFrame,
 IN PKEXCEPTION_FRAME ExceptionFrame,
 IN PEXCEPTION_RECORD ExceptionRecord,
 IN PCONTEXT ContextRecord,
 IN KPROCESSOR_MODE PreviousMode,
 IN BOOLEAN SecondChanceException){
 
 PEPROCESS hp = PsGetCurrentProcess();
 if (!_stricmp((char *)PsGetProcessImageFileName(hp), "TASLogin.exe")){
 return STATUS_SUCCESS;
 }
 return hdbktrap(TrapFrame, ExceptionFrame, ExceptionRecord, ContextRecord, PreviousMode, SecondChanceException);
}
//這里做一個還原
void UnHookKdpTrap() {
 KIRQL irql;
 UCHAR orignal_code[] = "\x48\x89\x5c\x24\x08\x48\x89\x54\x24\x10\x57\x48\x83\xec\x40";//mov rax xxx,jmp rax
 irql = WPOFFx64();
 RtlCopyMemory(orgkdt, orignal_code, 15);
 WPONx64(irql);
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//2、 防止安全組件加載失敗
VOID DisableKdDebuggerEnabled() {
 SharedUserData->KdDebuggerEnabled = FALSE; //防止安全組件加載失敗
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//3、TP會清零KdDebuggerEnabled,這里做一個每隔一秒的定時器
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//4、斷鏈隱藏 kdcom,防止kdcom內存被清空導致和windbg通訊不了
/*
0: kd> dt _eprocess
nt!_EPROCESS
  +0x000 Pcb       : _KPROCESS
  +0x2e0 ProcessLock   : _EX_PUSH_LOCK
  +0x2e8 UniqueProcessId : Ptr64 Void
  +0x2f0 ActiveProcessLinks : _LIST_ENTRY
*/
PDRIVER_OBJECT pDriverObject = NULL;
typedef struct _KLDR_DATA_TABLE_ENTRY {
 LIST_ENTRY InLoadOrderLinks;
 PVOID ExceptionTable;
 ULONG ExceptionTableSize;
 PVOID GpValue;
 ULONG UnKnow;
 PVOID DllBase;
 PVOID EntryPoint;
 ULONG SizeOfImage;
 UNICODE_STRING FullDllName;
 UNICODE_STRING BaseDllName;
 ULONG Flags;
 USHORT LoadCount;
 USHORT __Unused5;
 PVOID SectionPointer;
 ULONG CheckSum;
 PVOID LoadedImports;
 PVOID PatchInformation;
} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY;
VOID HideDriver(){
 PKLDR_DATA_TABLE_ENTRY entry = (PKLDR_DATA_TABLE_ENTRY)pDriverObject->DriverSection;
 PKLDR_DATA_TABLE_ENTRY firstentry;
 UNICODE_STRING uniDriverName;
 firstentry = entry;
 // 初始化要隱藏驅動的驅動名
 RtlInitUnicodeString(uniDriverName, L"kdcom.dll");
 while ((PKLDR_DATA_TABLE_ENTRY)entry->InLoadOrderLinks.Flink != firstentry){
 if (entry->FullDllName.Buffer != 0){
  if (RtlCompareUnicodeString(uniDriverName, (entry->BaseDllName), FALSE) == 0){
  //DbgPrint("隱藏驅動 %ws 成功!\n", entry->BaseDllName.Buffer);
  // 修改 Flink 和 Blink 指針, 以跳過我們要隱藏的驅動
  *((ULONG*)entry->InLoadOrderLinks.Blink) = (ULONG)entry->InLoadOrderLinks.Flink;
  entry->InLoadOrderLinks.Flink->Blink = entry->InLoadOrderLinks.Blink;
  /*
   使被隱藏驅動LIST_ENTRY結構體的Flink, Blink域指向自己
   因為此節點本來在鏈表中, 那么它鄰接的節點驅動被卸載時,
   系統會把此節點的Flink, Blink域指向它相鄰節點的下一個節點.
   但是, 它此時已經脫離鏈表了, 如果現在它原本相鄰的節點驅動被
   卸載了, 那么此節點的Flink, Blink域將有可能指向無用的地址, 而
   造成隨機性的BSoD.
  */
  entry->InLoadOrderLinks.Flink = (LIST_ENTRY*)(entry->InLoadOrderLinks.Flink);
  entry->InLoadOrderLinks.Blink = (LIST_ENTRY*)(entry->InLoadOrderLinks.Flink);
  break;
  }
 }
 // 鏈表往前走
 entry = (PKLDR_DATA_TABLE_ENTRY)entry->InLoadOrderLinks.Flink;
 }
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//5、處理TP藍屏
/*
fffff807`642d2210 48895c2420   mov   qword ptr [rsp+20h],rbx
fffff807`642d2215 4488442418   mov   byte ptr [rsp+18h],r8b
fffff807`642d221a 56       push  rsi
fffff807`642d221b 57       push  rdi
fffff807`642d221c 4154      push  r12
fffff807`642d221e 4155      push  r13
fffff807`642d2220 4157      push  r15
fffff807`642d2222 4883ec20    sub   rsp,20h
*/
#define KdEnteredDebugger 0xfffff80165d061e0
//#define KdEnteredDebugger 0xfffff80764704100//直接寫硬編碼,這里需要進行修改-----------------------------------------------------------------------------------------------------------------------------------------------
extern PMDL hookIoAllocateMdl(__drv_aliasesMem PVOID VirtualAddress, ULONG Length, BOOLEAN SecondaryBuffer, BOOLEAN ChargeQuota, PIRP Irp);
ULONG64 IoAllocateM=0;
//這里做一個跳轉
VOID ModifyIoAllocateMdl(PVOID myaddress, PVOID targetaddress) {
 KIRQL irql;
 ULONGLONG myfun;
 UCHAR jmp_code[] = "\x48\xB8\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF\xE0\x00\x00";//mov rax xxx,jmp rax
 myfun = (ULONGLONG)myaddress;//替換成自己的函數地址
 RtlCopyMemory(jmp_code + 2, myfun, 8);
 //debg();
 irql = WPOFFx64();
 RtlCopyMemory(targetaddress, jmp_code, 12);
 WPONx64(irql);
}
PMDL newIoAllocateMdl(__drv_aliasesMem PVOID VirtualAddress, ULONG Length, BOOLEAN SecondaryBuffer, BOOLEAN ChargeQuota, PIRP Irp){
 //debg();
 if(VirtualAddress == KdEnteredDebugger){
 //DbgPrint("[KdEnteredDebugger] address: %p\n", KdEnteredDebugger);
 VirtualAddress = (PUCHAR)KdEnteredDebugger + 0x30; //據暗中觀察,+0x30 的位置恒為0
 }
 return hookIoAllocateMdl(VirtualAddress, Length, SecondaryBuffer, ChargeQuota, Irp);
}
//這里做一個還原
void UnHookIoAllocateMdl() {
 KIRQL irql;
 UCHAR orignal_code[] = "\x48\x89\x5c\x24\x20\x44\x88\x44\x24\x18\x56\x57\x41\x54\x41\x55";
 irql = WPOFFx64();
 RtlCopyMemory(IoAllocateMdl, orignal_code, 15);
 WPONx64(irql);
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
VOID DriverUnload(PDRIVER_OBJECT DriverObject) {
 //還原之前的KdpTraphook
 UnHookKdpTrap();
 //還原之前的IoAllocateMdl
 UnHookIoAllocateMdl();
 //取消定時器
 
 DbgPrint("See You !\n");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegPath) {
 pDriverObject = DriverObject;
 DriverObject->DriverUnload = DriverUnload;
 //這里把這個函數進行了hook
 ModifyKdpTrap(HookKdpTrap, orgkdt);
 //防止安全組件加載失敗
 DisableKdDebuggerEnabled();
 //摘掉kdcom的eprocess
 HideDriver();
 //干掉TP藍屏
 IoAllocateM = (ULONG64)IoAllocateMdl;//得到函數的地址
 ModifyIoAllocateMdl(newIoAllocateMdl, IoAllocateMdl);
 //設置定時器
 return STATUS_SUCCESS;
}

總結

以上所述是小編給大家分享的Win10 1903過TP的雙機調試問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • 詳解Win10 Bash/WSL調試Linux環境下的.NET Core應用程序

標簽:鎮江 哈密 鶴崗 臺州 商丘 株洲 平頂山 綿陽

巨人網絡通訊聲明:本文標題《分享Win10 1903過TP的雙機調試問題》,本文關鍵詞  分享,Win10,1903,過,的,雙機,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《分享Win10 1903過TP的雙機調試問題》相關的同類信息!
  • 本頁收集關于分享Win10 1903過TP的雙機調試問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    丰满放荡岳乱妇91ww| 国产欧美1区2区3区| 日韩美女视频19| 欧美一区二区三区在线| 亚洲高清一区二区三区| 亚洲成av人片在www色猫咪| 亚洲福利电影网| 成人av电影在线| 午夜视频一区二区| 欧美在线不卡一区| 午夜在线电影亚洲一区| 欧美性一区二区| 亚洲男同性视频| 欧美日韩国产综合一区二区三区| 麻豆精品国产传媒mv男同| 国产欧美日韩亚州综合| gogogo免费视频观看亚洲一| 日本aⅴ免费视频一区二区三区| 在线中文字幕不卡| 韩国午夜理伦三级不卡影院| 国产成人免费在线观看| 国产精品久久夜| 91久久精品一区二区二区| 精品视频在线视频| 国产成人精品亚洲777人妖| 五月激情六月综合| 亚洲精品中文在线影院| 欧美mv日韩mv亚洲| 色系网站成人免费| 欧美精品在线一区二区| 色噜噜狠狠色综合欧洲selulu| 午夜私人影院久久久久| 韩国欧美国产一区| 麻豆精品一区二区av白丝在线| 亚洲伊人色欲综合网| 伊人开心综合网| 综合色天天鬼久久鬼色| 91麻豆精品国产91久久久久久| 中文字幕在线不卡| 亚洲欧美日韩中文字幕一区二区三区| 欧美视频精品在线| 狠狠色狠狠色综合系列| 九九热在线视频观看这里只有精品| 亚洲精品国产一区二区精华液| 国产精品沙发午睡系列990531| 奇米精品一区二区三区在线观看| 欧美日韩国产综合一区二区三区| 中文字幕成人av| 日韩色视频在线观看| 国产日韩精品一区二区三区在线| 在线精品视频免费观看| 制服丝袜日韩国产| 国产精品久久久久影院亚瑟| 一区二区三区中文字幕电影| 欧美aaa在线| 色先锋资源久久综合| 欧美一区二区三区喷汁尤物| 国产精品麻豆视频| 国产一区视频导航| 欧美一区二区三区免费视频| 成人免费毛片高清视频| 亚洲一级二级在线| 亚洲国产成人porn| 成人午夜激情视频| 国产亚洲综合av| www.欧美.com| 国产精品毛片高清在线完整版| 久久99精品一区二区三区三区| 日韩久久精品一区| 九九热在线视频观看这里只有精品 | 精品一区二区三区免费毛片爱 | 91麻豆福利精品推荐| 久久不见久久见免费视频1| 性做久久久久久久久| 亚洲精品亚洲人成人网 | 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 丁香婷婷深情五月亚洲| 国模大尺度一区二区三区| 亚洲成人综合网站| 蓝色福利精品导航| 不卡的av电影| 欧美影院精品一区| 精品久久久久久久久久久久久久久久久 | 国产一二精品视频| 久久亚洲综合色一区二区三区| 亚洲va天堂va国产va久| 欧美日韩免费不卡视频一区二区三区| 国产精品久久777777| 不卡的av网站| 亚洲成a人在线观看| 日本国产一区二区| 青青草伊人久久| 久久午夜电影网| 国产91色综合久久免费分享| 国产欧美一区二区三区在线看蜜臀| 国产精品免费看片| 欧洲一区二区av| 亚洲色图第一区| 欧美精品黑人性xxxx| 免费看日韩a级影片| 久久久久久**毛片大全| 丁香婷婷综合网| 一区二区三区精品视频| 91麻豆精品91久久久久同性| 男女性色大片免费观看一区二区 | 日韩欧美国产1| 91精品国产高清一区二区三区蜜臀 | 欧美影视一区二区三区| av成人免费在线| 欧美日韩精品一区二区| 在线免费视频一区二区| 欧美日韩精品免费观看视频| 欧美一区二区国产| 9191久久久久久久久久久| 麻豆精品精品国产自在97香蕉| 一区二区欧美精品| 偷拍日韩校园综合在线| 一区二区三区在线视频播放| 久久精品亚洲精品国产欧美| 欧美一级高清片| 日韩一区二区三区观看| 欧美日韩国产综合一区二区| 欧美亚洲国产怡红院影院| 91蜜桃视频在线| 91浏览器在线视频| 国产成人一区在线| 久久99国产精品久久| 18涩涩午夜精品.www| 亚洲欧洲一区二区在线播放| 欧美国产激情一区二区三区蜜月 | 欧美三级乱人伦电影| 色综合久久九月婷婷色综合| 在线一区二区三区四区五区| 91福利在线导航| 欧美日韩高清一区| 精品福利一二区| 国产精品久久久久四虎| 亚洲欧洲在线观看av| 三级欧美在线一区| 免费欧美在线视频| 91国在线观看| 久久精品视频免费| 亚洲图片自拍偷拍| 久久精品综合网| 久久久久久日产精品| 亚洲成精国产精品女| 成人精品国产一区二区4080| 欧美手机在线视频| 亚洲情趣在线观看| 精品盗摄一区二区三区| 精品无人码麻豆乱码1区2区 | 久久成人免费网站| 国产视频一区二区在线| 欧美日韩综合在线免费观看| 午夜精品久久久久久久久久久| 欧美xxxxxxxx| 成人av中文字幕| www日韩大片| 国产九色sp调教91| 亚洲人成电影网站色mp4| 日韩精品中文字幕一区| 成人一区在线看| 欧美日韩国产精品自在自线| 亚洲欧美日韩系列| 国产精品99久久久| 午夜精品福利一区二区蜜股av| 国产精品视频免费看| 精品卡一卡二卡三卡四在线| 91传媒视频在线播放| 懂色av一区二区三区蜜臀| 亚洲精品国产一区二区精华液| 国产肉丝袜一区二区| 日韩一区二区在线看| 国产高清不卡一区| 久久99国内精品| 久久黄色级2电影| 亚洲成人免费av| 亚洲国产美国国产综合一区二区| 国产精品欧美一区喷水| 日韩一区二区三区电影在线观看| 欧美美女喷水视频| 5月丁香婷婷综合| 欧美丰满美乳xxx高潮www| 欧美日韩不卡一区| 91精品欧美综合在线观看最新| 91精品国产综合久久小美女| 欧美va在线播放| 久久亚洲一区二区三区明星换脸| 亚洲精品一区二区三区精华液 | 日韩欧美一区在线观看| 欧美一三区三区四区免费在线看 | 在线观看区一区二| 精品视频123区在线观看| 欧美色图在线观看| 欧美高清一级片在线| 欧美久久高跟鞋激| 2021久久国产精品不只是精品| 国产欧美日韩综合| 一区二区三区免费网站| 日韩经典一区二区|