




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
OD被Anti的原因分析及應(yīng)對(duì)之道OD載入程序就自動(dòng)退出是比較惱人的,還沒開始調(diào)試呢就退出了,這可讓人如何是好。初學(xué)破解的人一定會(huì)遇到這個(gè)問題,怎樣解決呢,網(wǎng)上雖然有零星的介紹但都不全面,以下是我總結(jié)的一些,希望能對(duì)各位初學(xué)者有所幫助。(比如Peid、FI查殼查不到,OD一載入就退出,這極有可能是VMProtect的保護(hù)(虛擬機(jī)保護(hù)),用EXEinfo可以查出來一些版本的VMP,如果有這個(gè)提示那就更確定無疑了“Adebuggerhasbeenfoundrunninginyoursystem.Pleaseunloaditfrommemoryandrestartyourprogram”。)1.更換幾個(gè)OD試試,OllyICE、Shadow、加強(qiáng)版等2.用附加的方式加載程序,文件–>附加,能解決很多問題3.OD目錄下,將475K的DbgHelp.dll文件換成近1M大小的DbgHelp.dll文件,475K的有溢出漏洞,這條比較關(guān)鍵4.使用StrongOD插件,(StrongOD+原版OD試試),這條比較關(guān)鍵5.StrongOD中選擇CreateAsRestrict6.嘗試命令bpExitProcess,看能否發(fā)現(xiàn)什么線索7.改變OllyDbg.ini中的驅(qū)動(dòng)名稱,修改版的OD不需要自己改DriverName
-
驅(qū)動(dòng)文件名,設(shè)備對(duì)象名DriverKey -
和驅(qū)動(dòng)通信的keyHideWindow -
是否隱藏窗口,1為隱藏,0為不隱藏HideProcess -
是否隱藏od進(jìn)程,1為隱藏,0為不隱藏ProtectProcess -
是否隱藏保護(hù)Od進(jìn)程,1為保護(hù),0為不保護(hù)8.改OD窗體類名,用的修改版的話一般都改過了,不需要自己再改方法如下:主窗體類名:引用:VA:004B7218Offset:000B6018各子窗體類名:引用:VA:004B565B~004B568AOffset:000B445B~000B448A改成任意,可以過GetWindow檢測9.手動(dòng)修改程序“導(dǎo)出表”中的“函數(shù)名數(shù)目”值,上面方法不管用再試試它方法:使用“LordPE”打開要編輯的PE程序,然后依次選擇[目錄]->[導(dǎo)出表對(duì)應(yīng)的“..”按鈕],把“函數(shù)名數(shù)目”的值減1,并點(diǎn)擊“保存”按鈕,就OK了。為了好看些,也可以把“函數(shù)數(shù)目”和“函數(shù)名數(shù)目”的值都同時(shí)減1并保存,效果一樣。解釋:一般情況下EXE不會(huì)加“導(dǎo)出表”,如果加了,就應(yīng)該給出所導(dǎo)出的API函數(shù)。當(dāng)我們打開這類PE程序(EXE版)時(shí),會(huì)發(fā)現(xiàn)它存在“導(dǎo)出表”,但“導(dǎo)出表”中并沒有導(dǎo)出的API函數(shù)。同時(shí)“函數(shù)數(shù)目”和“函數(shù)名數(shù)目”的值都比原PE程序設(shè)置的值大了1(如:EXE版“導(dǎo)出表”列表中顯示了0個(gè)導(dǎo)出的API函數(shù),殼將其“函數(shù)數(shù)目”和“函數(shù)名數(shù)目”的值都設(shè)置成了1;DLL版“導(dǎo)出表”列表中顯示了0xD個(gè)導(dǎo)出的API函數(shù),殼將其“函數(shù)數(shù)目”和“函數(shù)名數(shù)目”的值都設(shè)置成了0xE。)。所以我們將其減1,就OK了。被修改過的PE程序,可以正常運(yùn)行,不會(huì)有任何影響。這只是我的一點(diǎn)總結(jié),附加方式加載、替換DBGHELP.DLL、使用StrongOD插件和修改導(dǎo)出表函數(shù)名數(shù)目的方法是可行的,能夠解決一些問題。當(dāng)然這些方法可能并不全面。ANTI-OD原因解讀:概括來說:TLS回調(diào)函數(shù)在入口點(diǎn)之前執(zhí)行,并進(jìn)行了ANTI-OD的操作.具體請(qǐng)看:TLS數(shù)據(jù)初始化和TLS回調(diào)函數(shù)都會(huì)在入口點(diǎn)之前執(zhí)行,也就是說TLS是程序最開始運(yùn)行的地方,因此可以在這里防止ANTI-OD的代碼,檢測并關(guān)閉OD。應(yīng)對(duì)方法:默認(rèn)情況下OllyDbg載入程序?qū)?huì)暫停在入口點(diǎn),應(yīng)該配置一下OllyDbg使其在TLS回調(diào)被調(diào)用之前中斷在實(shí)際的loader。通過“選項(xiàng)->調(diào)試選項(xiàng)->事件->第一次中斷于->系統(tǒng)斷點(diǎn)”來設(shè)置中斷于ntdll.dll內(nèi)的實(shí)際loader代碼。這樣設(shè)置以后,OllyDbg將會(huì)中斷在位于執(zhí)行TLS回調(diào)的ntdll!LdrpRunInitializeRoutines()之前的ntdll!_LdrpInitializeProcess(),這時(shí)就可以在回調(diào)例程中下斷并跟蹤了。例如:在內(nèi)存映像的.text代碼段上設(shè)置內(nèi)存訪問斷點(diǎn),就可以斷在TLS回調(diào)函數(shù)里。更多TLS內(nèi)容請(qǐng)看我的兩篇博文:TLS回調(diào)函數(shù),Anti-od原理分析:/tls-anti-od-reason.htmlTLS回調(diào)函數(shù),Anti-od實(shí)例:
/tls-anti-od-example.html更多反調(diào)試知識(shí)請(qǐng)看《脫殼的藝術(shù)》和我的《各種反調(diào)試技術(shù)原理與實(shí)例匯編版》:
/anti-debug-methods-asm.html《各種反調(diào)試技術(shù)原理與實(shí)例VC版》:
/anti-debug-methods-vc.html如需交流請(qǐng)進(jìn)群:1684360實(shí)例代碼:程序見附件,用原版OD測試,參考了某位大蝦的代碼。.386.model
flat,stdcalloption
casemap:noneincludewindows.incincludeuser32.incincludekernel32.incincludelibuser32.libincludelibkernel32.lib.data?dwTLS_Indexdd
?OPTION
DOTNAME;;定義一個(gè)TLS節(jié)
.tls
SEGMENT
TLS_StartLABEL
DWORDdd
0100h
dup(“slt.”)TLS_End
LABEL
DWORD.tls
ENDSOPTION
NODOTNAME.dataTLS_CallBackStart
dd
TlsCallBack0TLS_CallBackEnd
dd
0szTitle
db
”HelloTLS”,0szInTls
db
”我在TLS里”,0szInNormal
db
”我在正常代碼內(nèi)”,0szClassName
db
”ollydbg”
;
OD
類名;這里需要注意的是,必須要將此結(jié)構(gòu)聲明為PUBLIC,用于讓連接器連接到指定的位置,;其次結(jié)構(gòu)名必須為_tls_uesd這是微軟的一個(gè)規(guī)定。編譯器引入的位置名稱也如此。PUBLIC_tls_used_tls_usedIMAGE_TLS_DIRECTORY<TLS_Start,TLS_End,dwTLS_Index,TLS_CallBackStart,0,?>.code;***************************************************************;;TLS的回調(diào)函數(shù)TlsCallBack0procDllhandle:LPVOID,dwReason:DWORD,lpvReserved:LPVOID
mov
eax,dwReason;判斷dwReason發(fā)生的條件
cmp
eax,DLL_PROCESS_ATTACH
;在進(jìn)行加載時(shí)被調(diào)用
jnz
ExitTlsCallBack0
invoke
FindWindow,addrszClassName,NULL
;通過類名進(jìn)行檢測
.if
eax
;找到
invoke
SendMessage,eax,WM_CLOSE,NULL,NULL
.endif
invoke
MessageBox,NULL,addrszInTls,addrszTitle,MB_OK
mov
dwordptr[TLS_Start],0
xor
eax,eax
inc
eaxExitTlsCallBack0:
retTlsCallBack0
ENDP;****************************************************************Start:
invoke
MessageBox,NULL,addrszInNormal,addrszTitle,MB_OK
invoke
ExitProcess,1
end
Start關(guān)于反調(diào)試的實(shí)現(xiàn)方法請(qǐng)看“脫殼的藝術(shù)”一文和本人的“各種反調(diào)試技術(shù)原理與實(shí)例”。附送編程必備之素質(zhì)在新手入門編程之前小編想給大家一些關(guān)于學(xué)習(xí)編程的建議。很多零基礎(chǔ)非計(jì)算機(jī)科班出身的初學(xué)者擔(dān)心自己學(xué)不好編程,其實(shí)這種擔(dān)心完全是多余的,學(xué)習(xí)編程就和學(xué)習(xí)一門外語是一樣的,即使現(xiàn)在你還是零,在經(jīng)過了一段時(shí)間的努力學(xué)習(xí)之后,也能成功掌握編程語言。那么有人可能要問了,新手入門編程需要具備哪些素質(zhì)呢?或者換句話說,在學(xué)習(xí)編程的過程中哪些素質(zhì)會(huì)幫助我們更好更快的掌握一門編程語言呢?1.懂得打字。常常會(huì)有人擔(dān)心入門編程對(duì)學(xué)習(xí)者有一個(gè)很高的要求,其實(shí)不論你的性別還是學(xué)歷如何,入門編程的唯一門檻就是你會(huì)不會(huì)打字。如果你連打字都成問題的話,那你學(xué)習(xí)編程也會(huì)成問題。尤其如果你連程序源代碼中的那些奇怪字符都打不出來的話,就根本別提編程了。沒有這種基本素質(zhì)的話,你將連最基本的軟件工作原理都難以學(xué)會(huì)。因此,新手入門編程的第一個(gè)必須具備的素質(zhì)就是懂得打字,只有輸入代碼樣例并讓他們運(yùn)行起來,才能幫你記住各種符號(hào)的名字并對(duì)它們熟悉起來,在這個(gè)過程也會(huì)讓你對(duì)編程語言更加熟悉。2、關(guān)注每個(gè)細(xì)節(jié)。尤其對(duì)剛剛學(xué)習(xí)編程的新手來講,對(duì)于細(xì)節(jié)的注重程度可以決定你的學(xué)習(xí)效果。事實(shí)上這也是任何行業(yè)區(qū)分好壞的標(biāo)準(zhǔn)。你必須關(guān)注你工作中任何一個(gè)微小的細(xì)節(jié),否則你的工作成果將缺乏重要的元素。從學(xué)習(xí)編程的角度來講,只有通過將仿照案例的代碼一字不差地打出來,這樣的實(shí)踐訓(xùn)練才能讓自己集中精力到你作品的細(xì)節(jié)上面。這樣關(guān)注細(xì)節(jié)的素質(zhì),會(huì)讓你在學(xué)習(xí)的過程中成長的更快!3.捕捉不同點(diǎn)。為什么這是一個(gè)編程必須具備的素質(zhì)?道理很簡單,在程序員長年累月的工作中的一項(xiàng)重要技能,就是對(duì)于不同點(diǎn)的區(qū)分能力。有經(jīng)驗(yàn)的程序員拿著兩份僅有細(xì)微不同的程序,可以立即指出里邊的不同點(diǎn)來。程序員甚至造出工具來讓這件事更加容易,不過我們不會(huì)用到這些工具。你要先用笨辦法訓(xùn)練自己的大腦,等你具備一些相關(guān)能力的時(shí)候才可以使用這些工具。在新手做每一個(gè)習(xí)題的時(shí)候,不免會(huì)寫錯(cuò)點(diǎn)東西,甚至有經(jīng)驗(yàn)的程序員也會(huì)偶爾出點(diǎn)錯(cuò)。你的任務(wù)是對(duì)比你寫過的東西和正確的答案,并將所有的不同點(diǎn)都改正。這個(gè)過程可以訓(xùn)練你關(guān)注自己的錯(cuò)誤,bugs以及其他的一些問題。4.多親自動(dòng)手敲代碼。切忌復(fù)制粘貼代碼,制粘貼會(huì)讓你學(xué)習(xí)過程中的練習(xí)變得毫無意義。都說學(xué)習(xí)講究眼到筆到心到,無論你對(duì)代碼的內(nèi)容多么清楚了,還是要自己手動(dòng)練習(xí)敲代碼。重復(fù)練習(xí)習(xí)題的目的是訓(xùn)練你的雙手和大腦思維,讓你有能力讀代碼、寫代碼、觀察代碼。如果你復(fù)制粘貼的話,那你就是在欺騙自己,而且所謂的練習(xí)也將失去效果。5.堅(jiān)持重復(fù)學(xué)習(xí)。無論是學(xué)什么東西,在我們開始接觸一個(gè)全新的東西或者事物的時(shí)候,都是從零基礎(chǔ)開始的,因此我們說萬事開頭難。這個(gè)難其實(shí)就是堅(jiān)持,也是學(xué)習(xí)編程必須具備的重要素質(zhì)。學(xué)習(xí)編程難嗎?如果不能為什么這么多自學(xué)編程的人都從入門到放棄。說白了,還是堅(jiān)持不下來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商聚區(qū)辦公樓轉(zhuǎn)讓居間
- 二零二五年度北京市通信中心綠色環(huán)保裝修服務(wù)合同
- 光伏發(fā)電規(guī)劃報(bào)告
- 公務(wù)用車輛管理系統(tǒng)
- 低空經(jīng)濟(jì)發(fā)展行動(dòng)計(jì)劃
- 營養(yǎng)學(xué)飲食指南閱讀題
- 房車項(xiàng)目可行性研究報(bào)告
- 智能家居網(wǎng)絡(luò)系統(tǒng)
- 中光能光伏發(fā)電
- 建筑設(shè)計(jì)咨詢服務(wù)合同
- 人教版(2024)七年級(jí)下冊英語Unit 5 Here and Now 單元教學(xué)設(shè)計(jì)(共6課時(shí))
- 動(dòng)態(tài)博弈模型構(gòu)建-深度研究
- 二零二五年度城市排水管網(wǎng)運(yùn)維合作協(xié)議4篇
- Unit 1 Animal friends Section A Grammar Focus英文版說課稿-2024-2025學(xué)年人教版(2024)七年級(jí)英語下冊
- 2024 大模型典型示范應(yīng)用案例集-1
- 四川省成都市成華區(qū)2024年中考語文二模試卷附參考答案
- 子宮內(nèi)膜增生護(hù)理個(gè)案
- 2025年臨床醫(yī)師定期考核試題中醫(yī)知識(shí)復(fù)習(xí)題庫及答案(200題)
- 反分裂、反滲透、反顛覆心得體會(huì)
- 頸椎病小講課
- 期末綜合試卷(試題)2024-2025學(xué)年人教版數(shù)學(xué)五年級(jí)上冊(含答案)
評(píng)論
0/150
提交評(píng)論