




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 crack低兵亂談1) SmartCheck前段時(shí)間剁一個(gè)掃描器。也沒(méi)用PEiD之類的工具查看一下就直接上IDA了,這才發(fā)現(xiàn)是VB開(kāi)發(fā)的。但仍直接用regmon、cdb剁它,還寫了個(gè)loader。后來(lái)yjl給我提到SmartCheck。我又用它重新剁了一遍,發(fā)現(xiàn)這個(gè)工具清晰地記錄了API調(diào)用流程,比如訪問(wèn)了哪些注冊(cè)表項(xiàng),用了哪些VB庫(kù)函數(shù)等等,最關(guān)鍵的是它給出了這些操作對(duì)應(yīng)的代碼偏移。SmartCheck里給出的偏移是"file offset",在IDA中要"Jump to file offset"才成。在其幫助下直接注冊(cè)成功,拋棄了loader。這件
2、事給我一個(gè)教訓(xùn)。以前不太接觸VB、Delphi開(kāi)發(fā)的程序,總是習(xí)慣了直接IDA反匯編之后上cdb硬剁,從未想過(guò)找趁手的工具,以后要聰明些才成。2) Spy+我不清楚對(duì)付Borland C+、Delphi開(kāi)發(fā)的GUI程序,是否有類似mfcspy這樣的工具。前段時(shí)間剁另兩個(gè)掃描器時(shí)用PEiD之類的工具查看,報(bào)告是這兩工具開(kāi)發(fā)的。我對(duì)消息處理這些沒(méi)啥經(jīng)驗(yàn),就胡整了一氣,下面是些彎路記載。用Spy+的"Find Window"查看目標(biāo)控件,關(guān)注"Window Properties/General"中的兩個(gè)值:Window Handle : 001E04E0Win
3、dow Proc : 015909BD不要理會(huì)Class頁(yè)中的Window Proc。點(diǎn)Synchronize同步,在右鍵菜單中選Messages,對(duì)指定窗口進(jìn)行消息監(jiān)視。在菜單Messages中選Stop Logging,此時(shí)Logging Options可選,點(diǎn)它進(jìn)入"MessageOptions/Messages"頁(yè),選Clear All,然后再勾中你關(guān)心的消息分類,這樣可以有效減少消息監(jiān)視的輸出信息。如果你不確認(rèn)要監(jiān)視哪些消息,可以在全選中的情況下先監(jiān)視上一會(huì),可以明顯看到大量重復(fù)的鼠標(biāo)、鍵盤消息,再針對(duì)性地過(guò)濾這些無(wú)關(guān)宏旨的垃圾消息。我當(dāng)時(shí)的情況是,在一堆垃圾鼠標(biāo)
4、、鍵盤消息中混有WM_USER+num消息,于是我就只監(jiān)視WM_USER分類。即使這樣,監(jiān)視到的消息量仍很大,好在可以通過(guò)統(tǒng)計(jì)分析人工過(guò)濾掉重復(fù)度太高的那些。我通過(guò)這個(gè)蠢辦法找出了我所關(guān)心的一個(gè)消息,假設(shè)如下:Window Handle : 001E04E0Message : 100D (Sent)注意,這個(gè)Sent意味著這個(gè)消息是通過(guò)SendMessage()發(fā)過(guò)來(lái)的,如果顯示Posted,就不要用后面的辦法調(diào)試,我對(duì)PostMessage()更不熟悉,胡整不出明堂來(lái)。PEiD說(shuō)這個(gè)程序是"Borland C+ 1999"開(kāi)發(fā)的。用cdb attach上去看看"
5、Window Proc":> u 015909BD015909bd e842f6ffff call 01590004> u 0159000401590004 59 pop ecx01590005 e9d6531aff jmp 007353e0> u 007353e0007353e0 55 push ebp007353e1 8bec mov ebp,esp007353e3 31c0 xor eax,eax007353e5 50 push eax007353e6 ff7514 push dword ptr ebp+14h007353e9 ff7510 push dwor
6、d ptr ebp+10h007353ec ff750c push dword ptr ebp+0Ch007353ef 89e2 mov edx,esp007353f1 8b4104 mov eax,dword ptr ecx+4007353f4 ff11 call dword ptr ecx / 注意這里007353f6 83c40c add esp,0Ch007353f9 58 pop eax007353fa 5d pop ebp007353fb c21000 ret 10h窗口過(guò)程原型如下:LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg
7、, WPARAM wParam, LPARAM lParam);在0x015909BD設(shè)個(gè)條件斷點(diǎn):> bp 15909BD "j (dwo(esp+4)=1E04E0 & dwo(esp+8)=100D) '''gc'"> g> kpn # ChildEBP RetAddr00 0012d9ac 77e2b6e3 0x15909bd01 0012d9d8 77e2b874 USER32!InternalCallWinProc+0x2802 0012da50 77e2c8b8 USER32!UserCallWinPr
8、ocCheckWow+0x15103 0012daac 77e2c9c6 USER32!DispatchClientMessage+0xd904 0012dad4 7c958536 USER32!_fnDWORD+0x2405 0012db00 77e2d1ec ntdll!KiUserCallbackDispatcher+0x2e06 0012db3c 77e1cee9 USER32!NtUserMessageCall+0xc07 0012db5c 00782ba9 USER32!SendMessageA+0x7f08 0012f888 0041bc38 xxx!Dxcommoninitia
9、lization$qqrv+0x96ca109 0012f938 0043435e xxx!Shdocvw_tlbTCppWebBrowserSetWordBoolProp$qqrio+0x41300a 0012fad0 00436694 xxx!Shdocvw_tlbTCppWebBrowserSetWordBoolProp$qqrio+0x1c8560b 0012fb4c 006a2d80 xxx!Shdocvw_tlbTCppWebBrowserSetWordBoolProp$qqrio+0x1eb8c0c 0012fb78 006a59b6 xxx!DxbarTdxBarItemDoC
10、lick$qqrv+0x2c0d 0012fbbc 006a70d0 xxx!DxbarTdxBarItemControlControlUnclick$qqro+0x15a0e 0012fbc8 00696503 xxx!DxbarTdxBarButtonControlControlUnclick$qqro+0x3c0f 0012fbf4 00699ff0 xxx!DxbarTCustomdxBarControlWMLButtonUp$qqrr17MessagesTWMMouse+0x11b10 0012fc04 77e2cb48 xxx!DxbarTdxBarControlWMLButton
11、Up$qqrr17MessagesTWMMouse+0x16011 0012fc08 77e24576 USER32!NtUserGetThreadState+0xc12 0012fc20 0074b95c USER32!GetCapture+0x1813 0012fc30 0074e4ef xxx!Dxcommoninitialization$qqrv+0x5fa54從0x15909BD處跟蹤到0x007353f4處,跟進(jìn)那個(gè)call里面,一路上如果是間接調(diào)用就動(dòng)態(tài)跟進(jìn)去,如果是直接調(diào)用就在IDA中跟過(guò)去。就這個(gè)Borland C+開(kāi)發(fā)的程序而言,沒(méi)跟多遠(yuǎn)就找到了"非框架代碼性質(zhì)&
12、quot;的窗口消息處理代碼。攔下面這些函數(shù)可能并不是個(gè)好主意:> x user32!*CallWindowProc*77e40448 USER32!CallWindowProcA = <no type information>77e2bf59 USER32!CallWindowProcW = <no type information>77e2bf7d USER32!CallWindowProcAorW = <no type information>> x user32!*CallWinProc*77e2cc04 USER32!UserCallW
13、inProc = <no type information>77e2b6bb USER32!InternalCallWinProc = <no type information>77e2b7d2 USER32!UserCallWinProcCheckWow = <no type information>不過(guò)我的目的不在于此,我想找的是0x0041BC38附近的代碼,也就是消息的源頭。SendMessage()函數(shù)原型如下:LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lPara
14、m);考慮設(shè)置另一個(gè)條件斷點(diǎn)再查看調(diào)用棧回溯:> bp user32!SendMessageA "j (dwo(esp+4)=1E04E0 & dwo(esp+8)=100D) '''gc'"就是記錄一些胡整時(shí)的過(guò)程,沒(méi)啥。3) 在IDA中改函數(shù)名我一般把交叉引用顯示的數(shù)量設(shè)到20,這樣那些明顯被頻繁引用的函數(shù)在靜態(tài)查看過(guò)程中一眼就注意到了。我喜歡在IDA中改函數(shù)名,當(dāng)然是把那些sub_xxx()改名,而不是把本來(lái)就有符號(hào)的函數(shù)改名,比如這樣:PrivateSprintfPrivateResolveHost_0PrivateRe
15、solveHost_1MsgBox_0MsgBox_1MsgBox_2PrivateIsDebuggerPresent這樣在靜態(tài)查看過(guò)程中會(huì)好一些。再就是在函數(shù)頭用repeatable comment,這樣調(diào)用該函數(shù)的代碼處會(huì)自動(dòng)出現(xiàn)你加的注釋,我傾向在此對(duì)各形參的意義進(jìn)行解釋。4) CreateWindow/DrawText我發(fā)現(xiàn)一些Borland C+、Delphi開(kāi)發(fā)的程序不喜歡調(diào)用MessageBox(),而是自己創(chuàng)建窗口(CreateWindow),在里面作畫(DrawText),攔的時(shí)候要當(dāng)心些。> x user32!*MessageBox*77e67d40 USER32!M
16、essageBoxIndirectA = <no type information>77e2ee4a USER32!MessageBoxExW = <no type information>77e677dc USER32!LogMessageBox = <no type information>77e2f06a USER32!SoftModalMessageBox = <no type information>77e2eed2 USER32!MessageBoxWorker = <no type information>77e542a
17、d USER32!MessageBoxExA = <no type information>77e67e30 USER32!MessageBoxIndirectW = <no type information>77e67906 USER32!ServiceMessageBox = <no type information>77e5425f USER32!MessageBoxA = <no type information>77e2ee1c USER32!MessageBoxW = <no type information>77e67c
18、71 USER32!MessageBoxTimeoutA = <no type information>77e2ee6e USER32!MessageBoxTimeoutW = <no type information>> x user32!*CreateWindow*77e1c301 USER32!CreateWindowExA = <no type information>77e221c9 USER32!NtUserCreateWindowEx = <no type information>77e2201d USER32!VerNtUs
19、erCreateWindowEx = <no type information>77e223b8 USER32!CreateWindowExW = <no type information>77e222db USER32!_CreateWindowEx = <no type information>> x user32!DrawText*77e2494a USER32!DrawTextExWorker = <no type information>77e311a4 USER32!DrawTextExA = <no type infor
20、mation>77e25248 USER32!DrawTextW = <no type information>77e24c82 USER32!DrawTextExW = <no type information>77e3116d USER32!DrawTextA = <no type information>我現(xiàn)在習(xí)慣性地用Spy+看一些那個(gè)彈出窗口,然后設(shè)法攔CreateWindow()。5) LoadPE比Stud_PE更可靠碰上個(gè)用Borland C+開(kāi)發(fā)的未加殼的程序,用LoadPE可以打開(kāi)并修改校驗(yàn)和,用Stud_PE打開(kāi)時(shí)直接結(jié)束進(jìn)程。懶得深究了。6) 不要一上來(lái)就用IDA開(kāi)搞除了前面說(shuō)過(guò)的那個(gè)VB寫的程序,后來(lái)又碰上一件事,是一個(gè)IDA的插件,有點(diǎn)小BUG,我想直接二進(jìn)制patch一下。注意到這個(gè)插件有如下調(diào)用:CoCreateInstance( CLSID_XXX, . );動(dòng)態(tài)調(diào)試IDA,攔了這個(gè)函數(shù)并查看
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山西財(cái)貿(mào)職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))歷年真題考點(diǎn)含答案解析
- 2025年安陽(yáng)幼兒師范高等專科學(xué)校高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年安慶職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 烤肉餐飲類模板
- 心理健康教育自我認(rèn)識(shí)
- 根管預(yù)備護(hù)理配合
- 人教版數(shù)學(xué)小學(xué)六年級(jí)下冊(cè)《第七課圖形與位置》練習(xí)
- 山東建筑大學(xué)《水工鋼筋混凝土結(jié)構(gòu)及鋼結(jié)構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州職業(yè)技術(shù)學(xué)院《周易》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年甘肅省定西市岷縣二中高三英語(yǔ)試題第四次月考試卷含解析
- 福建貴祥紙業(yè)有限公司生活用紙生產(chǎn)線技術(shù)改造項(xiàng)目環(huán)境影響報(bào)告
- BQ40Z50 軟件界面翻譯
- 臀位助產(chǎn)操作流程及評(píng)分標(biāo)準(zhǔn)
- 新概念二Lesson 23同步練習(xí)題
- 2023年寧夏電力投資集團(tuán)公司人員招聘筆試題庫(kù)含答案解析
- 一文詳解緩沖電路原理及設(shè)計(jì)
- 中國(guó)兒童藝術(shù)劇院公開(kāi)招聘10人模擬預(yù)測(cè)(共1000題)筆試備考題庫(kù)及答案解析
- 讀后續(xù)寫打碎花瓶的小男孩講義2023屆高考英語(yǔ)作文備考
- -體育測(cè)量與評(píng)價(jià)課件-第七章體質(zhì)測(cè)評(píng)
- 硫磺安全技術(shù)說(shuō)明書MSDS
- 都江堰簡(jiǎn)介課件
評(píng)論
0/150
提交評(píng)論