OD是逆向工程中的一個重要工具,逆向工程調試說明具體請參考:百度百科,OD介紹,當然就我了解而言,俗話就是破解軟件,市面上的什么破解版,精簡版啥的基本都是通過這種技術的,但是這並不能一概而論說逆向工程就是侵權的,在調試測試中它可起的重要的作用.
逆向調試可分為動態分析技術和靜態分析技術,動態分析就是實時加載軟件,對軟件進行實時斷點操作;靜態分析是指在某些不適合運用軟件執行的場合使用的,比如對某種病毒的分析,你運行就不是中招了嗎..當然我相信大家在對某種病毒調試時,多會用虛擬機來進行實驗吧,就算病毒是內核級的,指向系統硬件的,也不怕它,(重裝(新建加載ISO);(或者恢復到相應的快照)這是vm虛擬機的用法,大家可以百度安裝,據我了解,新win10也支持了虛擬機的設置,但這里我得提醒一下,win10的虛擬化技術與虛擬機是不兼容的,特別是我在python中部署docker容器的時候,出現的一些錯誤(雖然我知道docker部署在linux好用一點,但是我對Linux不是很搞得懂的,現在連python的環境配置都失敗了好幾次,RHEL系統太那個了(一個yum源非得要收費..還得建立本地yum倉庫和更改阿里雲的centos yum源),幾次想rm -rf/*了.
首先得了解一下OD可是比喻為動態分析的寶刀,可以通過這張圖了解一下OD的基本界面:

首先我們可以來個最簡單的,修改一個win32文件的標題,進入xp系統,不得不說,xp還是兼容性最好的系統:

源文件為hello.exe,打開便出現如下,標題為l love fishc.com

我們要做的修改就是把他改成別的,將它拖進OD,出現:

CTRL+F2進行重加載,定位成入口點,然后按F8進行單步調試,直至出現該程序界面,

彈窗是出現了該點,call意思是調用某模塊,按F2加斷點,然后CTRL+F2重加載,按F9跳到斷點,F7進入程序模塊內部:

這時就看了title和text文本,至於為什么text文本出現亂碼,因為它的編碼方式不同,可能不是utf-8或者gbk模式,點擊title:

第三行是匯編代碼 push是壓入操作,意思應該是壓入棧,后面是機器碼,CTRL+G調用跟隨表達式:輸入該機器執行碼;

出現以下標符,全選修改;

可以不要保持大小,這里可以不涉及到內存溢出的問題,它還是個簡單的win32程序,修改我們想要的ascll碼,比如博客地址等:

寫完后還要加個00,表示字符串的結束,c,c++等都是這樣的,然后執行保存;



保存為hello1.exe:

這樣就執行hello1.exe 出現下圖:

好了,一個簡單的程序修改標題就完成了,雖然很簡單,但實踐還是需要時間的.
