日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

来自看雪的手把手调试DebugPort清零

發(fā)布時間:2024/4/11 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 来自看雪的手把手调试DebugPort清零 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
現(xiàn)在多數(shù)程序為了防止調(diào)試。基本上都用到了驅(qū)動HOOK?內(nèi)核API。
至于繞過那些HOOK,基本上大家應(yīng)該已經(jīng)是沒有什么問題了。

估計像我這樣的菜鳥也不算多了。研究DebugPort?清0,倒是難倒了我。。。

所謂DebugPort?清0,就是向?EPROCESS->DebugPort??不停寫入?NULL(0)值。。讓調(diào)試器無法收到調(diào)試信息。。。

現(xiàn)在能找到的資料也不算多。。。也許是因為解決方法一旦公布出來,從而導(dǎo)致程序升級。

就現(xiàn)在能找到的資料來談?wù)?

1:通過修改調(diào)試相關(guān)函數(shù),修改DebugPort端口,指向EPROCESS結(jié)構(gòu)中的其它成員,大多數(shù)驅(qū)動已經(jīng)有監(jiān)視了。

2:NOP掉程序驅(qū)動中清0函數(shù)和監(jiān)視函數(shù),需要分析程序驅(qū)動。

3:修改EThread->Process?指向自定義結(jié)構(gòu),程序驅(qū)動如果也是這樣訪問的DebugPort此方法都無效了。

4:HOOK?缺頁異常然后把eprocess弄成invalid然后自己處理,此方法本菜鳥沒試過,因為本菜鳥還不知如果HOOK?缺頁異常,能找到的資料甚少。也希望有大牛們能指點一二。

5:用WRK自己編譯內(nèi)核ntoskrnl.exe,改造EPROCESS結(jié)構(gòu)。。。此法只能用于?XP64和2003SP1.

暫時本菜只了解到這些方法,本菜才疏學(xué)淺,至今自己也沒想出別的解決思路。。。

下面說下本菜用第一種方法在?WIN7下的研究。。

因為網(wǎng)上資料大多數(shù)為XP系統(tǒng)的。所以自己分析了一下WIN7?調(diào)試相關(guān)函數(shù)。

本菜用的雙機調(diào)試,至于如何雙機調(diào)試網(wǎng)上資料很多。就不在贅訴。

打開虛擬機,打開一個程序。如?LoadSys.exe

之后本機打開Windbg通過串行端口連接虛擬機。

lkd->!process?0?0?LoadSys.exe

得到LoadSys.exe?的EPROCESS地址如。0x87654321

lkd->ba?r4?0x87654321+0xec?(WIN7上DebugPort?偏移為?0xec,可以通過lkd->dt?nt!_eprocess,查看。)

上一句下了訪問斷點。。之后進入虛擬機,打開一個OD。附加LoadSys.exe..這時虛擬機就會斷下來。我們來看看調(diào)用了哪些函數(shù)。。

代碼: 讀: nt!DbgkCreateThread+0x22a: 856ab86a?399eec000000????cmp?????dword?ptr?[esi+0ECh],ebx nt!PsGetProcessDebugPort+0x8: 85514130?8b80ec000000????mov?????eax,dword?ptr?[eax+0ECh] nt!DbgkpSetProcessDebugObject+0x8d: 856f7959?83beec00000000??cmp?????dword?ptr?[esi+0ECh],0 nt!DbgkpSetProcessDebugObject+0x9d: 856f7969?89beec000000????mov?????dword?ptr?[esi+0ECh],edi nt!DbgkpMarkProcessPeb+0x85: 856f6e90?3987ec000000????cmp?????dword?ptr?[edi+0ECh],eax nt!DbgkpQueueMessage+0xad: 856f74a7?8b80ec000000????mov?????eax,dword?ptr?[eax+0ECh] nt!KiDispatchException+0x1d8: 8550539f?39b0ec000000????cmp?????dword?ptr?[eax+0ECh],esi nt!DbgkForwardException+0x49: 8565deac?8b98ec000000????mov?????ebx,dword?ptr?[eax+0ECh] nt!PspExitThread+0x2ad: 8569094c?83bfec00000000??cmp?????dword?ptr?[edi+0ECh],0 nt!DbgkExitThread+0x28: 856f8cf1?83b9ec00000000??cmp?????dword?ptr?[ecx+0ECh],0 nt!PspTerminateAllThreads+0x1dd: 856a7ff4?83bfec00000000??cmp?????dword?ptr?[edi+0ECh],0 nt!DbgkExitProcess+0x28: 856f8d63?83b9ec00000000??cmp?????dword?ptr?[ecx+0ECh],0 nt!DbgkpCloseObject+0xd6: 856f707f?3998ec000000????cmp?????dword?ptr?[eax+0ECh],ebx nt!DbgkpCloseObject+0x119: 856f70c2?3998ec000000????cmp?????dword?ptr?[eax+0ECh],ebx nt!DbgkpCloseObject+0x121: 856f70ca?83a0ec00000000??and?????dword?ptr?[eax+0ECh],0 以上為讀斷點部分。。

記下函數(shù)+偏移,進入虛擬機,退出OD和LoadSys.exe...

重新打開LoadSys.exe
之后回到Windbg
lkd->!process?0?0?LoadSys.exe
重新獲得?LoadSys.exe?的EPROCESS地址,如:0x88776655

lkd->ba?w4?0x88776655+0xec
給LoadSys.exe的DebugPort下寫入斷點

再進入虛擬機,開OD,附加LoadSys.exe..之后就會斷下。。。

代碼: 寫: nt!DbgkpSetProcessDebugObject+0xa3???//和讀其中一個重復(fù) nt!DbgkClearProcessDebugObject+0x41: 856d3e84?05ec000000??????add?????eax,0ECh nt!DbgkpCloseObject+0x128????????????和讀其中一個重復(fù) 至此我們就找到了WIN7下?調(diào)試寫入DebugPort的內(nèi)核相關(guān)函數(shù)。

剩下的事情,我們只需要編寫驅(qū)動將每個函數(shù)偏移下的??ec??改寫成?其它EPROCESS中成員?偏移。。。如WIN7下的??CREATE_TIME成員?為?a0。。。EXIT_TIME成員為a8...


改寫完后。。。用OD隨便附加一個程序。查看其EPROCESS中?你改寫的那個偏移,如我改寫的是a0。。a0中就存有一個???對象句柄??。。就證明改寫成功。。。

然后打開有保護驅(qū)動的XX程序。。。用OD附加。OD創(chuàng)建線程完后。加載DLL的時候。。直接藍(lán)屏。。。

代碼: a5f3334e?894dfc??????????mov?????dword?ptr?[ebp-4],ecx a5f33351?eb27????????????jmp?????EagleNT+0xa37a?(a5f3337a) a5f33353?833d5833f4a506??cmp?????dword?ptr?[EagleNT+0x1a358?(a5f43358)],6 a5f3335a?7517????????????jne?????EagleNT+0xa373?(a5f33373) a5f3335c?833d5c33f4a501??cmp?????dword?ptr?[EagleNT+0x1a35c?(a5f4335c)],1 a5f33363?750e????????????jne?????EagleNT+0xa373?(a5f33373) a5f33365?8b5508??????????mov?????edx,dword?ptr?[ebp+8] a5f33368?81c22c020000????add?????edx,22Ch a5f3336e?8955fc??????????mov?????dword?ptr?[ebp-4],edx a5f33371?eb07????????????jmp?????EagleNT+0xa37a?(a5f3337a) a5f33373?c745fc00000000??mov?????dword?ptr?[ebp-4],0 a5f3337a?837dfc00????????cmp?????dword?ptr?[ebp-4],0 a5f3337e?7415????????????je??????EagleNT+0xa395?(a5f33395) a5f33380?6a10????????????push????10h a5f33382?8b45fc??????????mov?????eax,dword?ptr?[ebp-4]?a5f33385?8b08????????????mov?????ecx,dword?ptr?[eax]??ds:0023:0000022a=????????????a5f33387?51??????????????push????ecx a5f33388?6820bdf4a5??????push????offset?EagleNT+0x22d20?(a5f4bd20) a5f3338d?e89ea1ffff??????call????EagleNT+0x4530?(a5f2d530) a5f33392?8845fb??????????mov?????byte?ptr?[ebp-5],al a5f33395?8a45fb??????????mov?????al,byte?ptr?[ebp-5] a5f33398?8be5????????????mov?????esp,ebp a5f3339a?5d??????????????pop?????ebp a5f3339b?c20400??????????ret?????4 分析DUMP文件藍(lán)在這句。。。應(yīng)該是游戲有檢測。。。
a5f33385?8b08????????????mov?????ecx,dword?ptr?[eax]??ds:0023:0000022a=????????

于是HOOK?程序驅(qū)動跳過這里。。。
仍然藍(lán)屏,分析DUMP文件藍(lán)在
?ntkrnlpa.exe?(?nt+2af571?)
代碼: 856c054a?33ff????????????xor?????edi,edi 856c054c?894b1c??????????mov?????dword?ptr?[ebx+1Ch],ecx 856c054f?3bc7????????????cmp?????eax,edi 856c0551?750d????????????jne?????nt+0x2af560?(856c0560) 856c0553?c7442414530300c0?mov?????dword?ptr?[esp+14h],0C0000353h 856c055b?e9ad000000??????jmp?????nt+0x2af60d?(856c060d) 856c0560?b101????????????mov?????cl,1 856c0562?8d7010??????????lea?????esi,[eax+10h] 856c0565?ff155c214185????call????dword?ptr?[nt+0x115c?(8541215c)] 856c056b?88442413????????mov?????byte?ptr?[esp+13h],al 856c056f?8bc6????????????mov?????eax,esi?856c0571?f00fba3000??????lock?btr?dword?ptr?[eax],0???ds:0023:4d5d748c=?????????856c0576?7205????????????jb??????nt+0x2af57d?(856c057d) 856c0578?e886c7d7ff??????call????nt+0x2bd03?(8543cd03) 856c057d?64a124010000????mov?????eax,dword?ptr?fs:[00000124h] 856c0583?8b542414????????mov?????edx,dword?ptr?[esp+14h] 856c0587?894604??????????mov?????dword?ptr?[esi+4],eax 856c058a?0fb6442413??????movzx???eax,byte?ptr?[esp+13h] 856c058f?89461c??????????mov?????dword?ptr?[esi+1Ch],eax 856c0592?f6423801????????test????byte?ptr?[edx+38h],1 藍(lán)在這里
856c0571?f00fba3000??????lock?btr?dword?ptr?[eax],0???ds:0023:4d5d748c=????????


由于本菜才疏學(xué)淺,于是本菜到此不知道如何再分析下去。。。
希望有大牛們,指點一二。。除上述5種方法以外,還有哪些方法能夠繞過DebugPort?清0.
再就是?本菜的分析如何才能繼續(xù)。。。。

只要思路,方法。。。不要代碼結(jié)果。。。本菜雖菜,但會以學(xué)習(xí)為目的提升自身能力,不愿直接拿到那代碼而不明其中原理。。。

轉(zhuǎn)自看雪的一位牛人。在這里對那位牛人表示敬佩

總結(jié)

以上是生活随笔為你收集整理的来自看雪的手把手调试DebugPort清零的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91免费视频网站 | 无码人妻精品一区二区三区99不卡 | 日韩 国产 在线 | 打开免费观看视频在线 | 欧美一区| 国模私拍一区二区三区 | 最近日韩免费视频 | 毛片在线视频播放 | 2019亚洲天堂 | 国产伦精品一区二区三区高清版 | 爱射综合 | 欧美一二三区视频 | www.亚洲高清 | 91九色中文 | av在线收看 | 搞黄网站在线观看 | 中文成人在线 | 国产老头老太作爱视频 | 国产不卡一区二区视频 | youjizz日韩 | 亚洲91网站 | 黄色的网站免费观看 | www在线视频| 乱岳 | h成人在线 | 国产精品美女www爽爽爽视频 | 亚洲25p | 黑人性生活视频 | 91精品一区二区三区在线观看 | 手机成人在线视频 | 成人乱码一区二区三区av | 日本xxxx18高清hd | 国产最新在线 | 成人欧美一区二区三区黑人免费 | 国产精品一区二区三区四区视频 | 欧美三级手机在线观看 | 女人天堂网 | 黄色在线a | 大桥未久av一区二区三区中文 | 天干夜夜爽爽日日日日 | 日韩精品久久一区二区 | 色婷婷av一区二区三区之红樱桃 | 欧美黄色短视频 | 九九视频在线播放 | 欧美日韩高清不卡 | 国产香蕉视频在线播放 | 国产精品久久久久久在线观看 | 樱桃成人精品视频在线播放 | 精品无码一级毛片免费 | 日本三级小视频 | 亚洲两性视频 | 欧美人与性囗牲恔配 | 亚洲精品久久久久国产 | 中文字幕乱码中文乱码777 | 中文字幕日韩一区二区 | 人妻丰满熟妇无码区免费 | 国产精品一级二级三级 | 性欧美videos另类hd | 国产黄色网 | 国产伊人久久 | 欧美人与性动交xxⅹxx | 成人短视频在线播放 | 夜夜操夜夜摸 | 一级黄色短视频 | 亚洲一区二区三区成人 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 中文字幕亚洲日本 | 精品国产aⅴ麻豆 | 国产农村妇女精品一区 | 国产黄色小视频在线观看 | 五月天丁香网 | 91黄色国产| 超碰伊人久久 | 人妻少妇无码精品视频区 | 欧美一区二区在线观看 | 在线观看免费黄色小视频 | 强videoshd酒醉 | 日韩av区| jizz成熟丰满老女人 | 五月涩 | 亚洲va天堂va欧美ⅴa在线 | 日产av在线播放 | 香蕉视频污在线观看 | 无码人妻丰满熟妇区五十路 | 91偷拍精品一区二区三区 | 日本视频www | 日韩人体视频 | 国产日韩欧美在线观看 | 黄色av播放 | 久久免费在线 | 日韩女优在线播放 | 日本韩国在线观看 | 99九九久久 | 国产精品久久久久久久免费看 | 爱的色放韩国电影 | 国产成人综合av | 日本熟妇一区二区三区四区 | 中文字幕在线视频免费播放 | 日韩欧美高清视频 |