第1章 WindowsPE開發(fā)環(huán)境_第1頁
第1章 WindowsPE開發(fā)環(huán)境_第2頁
第1章 WindowsPE開發(fā)環(huán)境_第3頁
第1章 WindowsPE開發(fā)環(huán)境_第4頁
第1章 WindowsPE開發(fā)環(huán)境_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

WindowsPE權威指南作者(zuòzhě)戚利出

版社機械工業(yè)出版社WindowsPE共三十五頁什么是PE?我們討論的不是WindowsPreinstallationEnvironment,Windows預安裝環(huán)境。而是PE:PortableExecutableFileFormat(可移植的執(zhí)行體)。Windows平臺主流可執(zhí)行文件格式(géshi)。.exe與.dll文件都是PE格式。WindowsPE共三十五頁為什么研究(yánjiū)PE了解WindowsPE文件結構加密與解密(jiěmì)、軟件漢化、逆向工程、反病毒等安全領域的應用WindowsPE共三十五頁開發(fā)語言:MASM32源程序的編輯器:記事本notepad動態(tài)調試器OllyDBG靜態(tài)調試器W32DASM字節(jié)碼的閱讀器和編輯器FlexHex、WinhexPE文件(wénjiàn)查看修改工具PEditor本章介紹學習WindowsPE需要(xūyào)的軟件開發(fā)環(huán)境WindowsPE開發(fā)環(huán)境共三十五頁開發(fā)(kāifā)語言MASM32搭建學習WindowsPE需要的軟件開發(fā)環(huán)境基于MASM32的匯編程序更接近于系統(tǒng)的底層,靈活、強大生成的可執(zhí)行(zhíxíng)PE文件體積小,速度快...WindowsPE開發(fā)環(huán)境共三十五頁開發(fā)(kāifā)語言MASM32WindowsPE開發(fā)(kāifā)環(huán)境共三十五頁.386.modelflat,stdcalloptioncasemap:none?開發(fā)(kāifā)語言MASM32WindowsPE開發(fā)(kāifā)環(huán)境共三十五頁includewindows.incincludeuser32.incincludelibuser32.libincludekernel32.incincludelibkernel32.lib引入外部的動態(tài)鏈接庫,這些(zhèxiē)庫里有本程序需要的函數(shù)-代碼重用開發(fā)(kāifā)語言MASM32WindowsPE開發(fā)環(huán)境共三十五頁;數(shù)據(jù)(shùjù)段

.dataszTextdb'HelloWorld',0

;要顯示的信息;代碼段

.codestart:

invokeMessageBox,NULL,offsetszText,NULL,MB_OKinvokeExitProcess,NULLendstart開發(fā)(kāifā)語言MASM32WindowsPE開發(fā)環(huán)境共三十五頁invokeMessageBox,NULL,offsetszText,NULL,MB_OKInvoke-并不是80386處理器的指令,而是一個MASM編譯器的偽指令調用WINDOWSAPI,或調用匯編子程序。格式(géshi)為invoke程序名,參數(shù)1,參數(shù)2,…參數(shù)2先入堆棧,參數(shù)1再入堆棧,以此類推如invokemysubpro,eax,ecx編譯器會編譯成下面這個模樣:pushecxpusheaxcallmysubpro開發(fā)(kāifā)語言MASM32WindowsPE開發(fā)環(huán)境共三十五頁invokeMessageBox,NULL,offsetszText,NULL,MB_OK

Win32程序是構筑在Win32API基礎上的。

在Win32API中,包括了大量的函數(shù)、結構和消息等,

它不僅為應用程序所調用,也是Windows自身的一部分,Windows自身的運行也調用這些(zhèxiē)API函數(shù)。MessageBoxwin32API函數(shù),由user32.dll提供MessageBoxA-窄字符:ANSIMessageBoxW-寬字符:unicode開發(fā)(kāifā)語言MASM32WindowsPE開發(fā)環(huán)境共三十五頁Microsoft-《MicrosoftWin32Programmer‘sReference》中定義了常用API的參數(shù)和函數(shù)(hánshù)聲明,消息框函數(shù)(hánshù)的聲明:intMessageBox(HWNDhWnd,//handletoownerwindow窗口句柄LPCTSTRlpText,//textinmessagebox要顯示的字符串地址LPCTSTRlpCaption,//messageboxtitle標題字符串地址UINTuType//messageboxstyle消息框類型);最后還有一句說明:Library:UseUser32.lib-說明了這個函數(shù)包括在User32.dll中invokeMessageBox,NULL,offsetszText,NULL,MB_OK開發(fā)(kāifā)語言MASM32WindowsPE開發(fā)環(huán)境共三十五頁研究EXE文件內部指令跳轉、病毒分析、逆向(nìxiànɡ)工程調試(diàoshì)軟件OllyDBG-ODWindowsPE開發(fā)環(huán)境1、指令集指令解釋區(qū)4、棧區(qū)2、寄存器及運行狀態(tài)區(qū)3、代碼和數(shù)據(jù)字節(jié)碼區(qū)共三十五頁該位置處的數(shù)據(jù)是一個內存地址,該地址指向(zhǐxiànɡ)了kernel32.dll動態(tài)鏈接庫中函數(shù)ExitProcess的真實位置。WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD指令集指令解釋區(qū)共三十五頁包含了所有(suǒyǒu)的32位寄存器:eax、ebx、ecx、esi、edi等ebp棧基地址指針esp棧頂指針eip指向下一條要執(zhí)行的指令的位置WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD寄存器及運行狀態(tài)區(qū)共三十五頁指定(zhǐdìng)內存范圍的字節(jié)碼WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD代碼和數(shù)據(jù)字節(jié)碼區(qū)共三十五頁反映了當前棧的分配情況及棧在程序(chéngxù)與棧在程序(chéngxù)運行過程中的變化情況。WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD棧區(qū)共三十五頁F8:單步步過。每按一次這個鍵執(zhí)行一條反匯編窗口(chuāngkǒu)中的一條指令,遇到

CALL

等子程序不進入其代碼。F7:單步步入。功能同單步步過(F8)類似,區(qū)別是遇到

CALL

等子程序時會進入其中,進入后首先會停留在子程序的第一條指令上。WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-ODHelloWorld.exe的跟蹤執(zhí)行共三十五頁左右分別是指令執(zhí)行后棧的變化(biànhuà)情況WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD利用F7執(zhí)行指令EIP發(fā)生變化了嗎?共三十五頁PUSHhellowor.00403000

即指向(zhǐxiànɡ)szTextWindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD繼續(xù)共三十五頁call指令處使用F8,不會內部跟蹤該函數(shù)(hánshù),直接給出結果。WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-ODF8單步步過共三十五頁00402000開始(kāishǐ)的1000H為.rdata區(qū),輸入表。查看這部分內容。WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD是一個地址0X7545BC9A也就是ExitProcess函數(shù)的入口共三十五頁EXE文件(wénjiàn)被裝載到內存后的部分結構WindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-ODEXE文件共三十五頁對目標EXE文件進行(jìnxíng)修改將顯示信息HelloWorld更改為GoodMorningWindowsPE開發(fā)(kāifā)環(huán)境調試軟件OllyDBG-OD修改EXE文件字節(jié)碼共三十五頁WindowsPE開發(fā)(kāifā)環(huán)境調試(diàoshì)軟件W32DASM共三十五頁WindowsPE開發(fā)(kāifā)環(huán)境十六進制編輯(biānjí)軟件FlexHex共三十五頁破解(pòjiě)軟件注冊-思路左:破解前右:破解后WindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器共三十五頁運行軟件,獲取與破解(pòjiě)有關的提示信息提示-注冊失敗WindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器共三十五頁利用FlexHEX獲取(huòqǔ)“注冊失敗!”字符串的文件偏移地址。0X00081A79WindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器以上是打開靜態(tài)的EXE文件,一旦EXE文件運行,也就是載入內存后,該字符串的地址就是內存地址了。內存地址=0X00400000+

0X00081A79=0X00481A79共三十五頁在OD中搜索(sōusuǒ)這個常量-內存地址為0X00405D2DWindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器-OD中搜索共三十五頁用到MessageboxA函數(shù),以此為線索,發(fā)現(xiàn)紅框內的提示(tíshì):和一個0X00405CD2處jump有關WindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器-W32DASM找判斷語句的位置共三十五頁到0X00405CD2處,果然是一個jg,也就是說注冊出錯會給出提示失敗的消息框。所以將指令(zhǐlìng)改為jl,使得判斷條件剛好相反。WindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器-W32DASM找判斷語句的位置共三十五頁原jg指令(zhǐlìng)如下圖WindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器-OD修改為jl指令共三十五頁WindowsPE開發(fā)(kāifā)環(huán)境破解實例-U盤監(jiān)控器-重新測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論