日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩特级 | 五月婷婷狠狠爱 | 少妇太紧太爽又黄又硬又爽小说 | 日韩av一区二区在线播放 | 毛片黄片免费看 | 国产一页 | 精品1区2区| xxxxwwww国产| 国产综合无码一区二区色蜜蜜 | 欧美激情午夜 | 久操国产 | 69av一区二区三区 | 靠逼动漫| 亚洲自拍偷拍在线 | 麻豆一区产品精品蜜桃的特点 | 一级特黄特色的免费大片视频 | 午夜视频在线免费 | 高清国产在线观看 | 色老妹| 叶山小百合av一区二区 | 91天天操 | 欧美日韩小视频 | 一区二区三区欧美视频 | 亚洲免费av一区二区 | 神马午夜av | 欧美精品手机在线 | 96免费视频 | 国产精品一区久久 | 国产人成精品 | 中国女人一级一次看片 | 激情影音| 国产在线xxxx | 黄色片在线观看视频 | 亚洲第一视频网站 | 在线视频 一区二区 | 久久一区二 | 天天久久| 先锋影音久久 | 一本一道无码中文字幕精品热 | 九九九久久久精品 | 亚洲国产精品久久久久爰色欲 | 69视频污 | 梦梦电影免费高清在线观看 | 麻豆国产尤物av尤物在线观看 | 欧洲精品免费一区二区三区 | 青青草原国产视频 | 欧美黄片一区 | 一本色道综合久久欧美日韩精品 | 国产免费一区二区三区在线观看 | 成人黄色在线观看 | 猎艳山村丰满少妇 | 天天摸天天 | 国内自拍第三页 | 国产v片在线观看 | 亚洲熟妇av乱码在线观看 | 九九热播视频 | 亚洲成a人片 | 亚洲欧美综合一区二区 | 国产91一区 | 国产大片黄 | 午夜伦理视频 | 成人在线直播 | 顶级黑人搡bbw搡bbbb搡 | 特大黑人巨交吊性xxxx视频 | 好吊妞这里只有精品 | 国产91精品一区 | 日韩欧美国产另类 | 夜夜撸影院| 巨胸大乳www视频免费观看 | 国产老熟妇精品观看 | xxxx国产| 制服丝袜天堂 | 香蕉啪啪网 | 色眯眯影院 | 天天操操操操 | 五月激情片 | 成人免费91 | 美女毛片网站 | 毛片福利视频 | 亚洲色图2 | 亚洲激情在线观看视频 | 久久久精品免费视频 | 男人的天堂va | 日本啪啪网 | 92久久精品一区二区 | 国产一级视频免费观看 | 成人小视频免费观看 | 黄色片免费播放 | 亚洲女人视频 | 午夜免费毛片 | 日本一区二区免费在线 | 四虎影视免费永久观看在线 | 久久精彩免费视频 | 懂色一区二区二区av免费观看 | 911亚洲精选 | 亚洲成在人| 色婷婷精品久久二区二区密 | 欧美巨大另类极品videosbest | 丁香婷婷六月 |