Ollydbg/x32dbg/x64dbg貼心伴侶 Version 6.48使用詳解和開發歷程:
2020.7.24號是個不幸的日子,我人生當中第一次體驗到了心碎的感覺。這天晚上,我正在繼續忙着整理匯編破解總結資料時,我的一塊希捷硬盤(2000G)
突然間硬盤分區不顯示了(實際上是兩個分區)里邊有大量自制的軟件,破解資料總結,破解流程圖,大白使用視頻總結與思維導圖,各種網上優秀的共享軟件,各種視頻學習筆記總結資料等。有太多太多的回憶的東西和情感在里邊,一下子全都沒有了,那種撕心裂肺,那種希望一下子被磨滅了。我辛苦漢化的IDE for python也有其中,而我自編的《信手拈來按鍵幫你來》Delphi源碼也在虛擬機文件中。還好我最近自編的《Ollydbg/x32dbg/x64dbg貼心伴侶》
不在其中,費了好大勁漢化的RegexBuddy不在里邊。DDMS漢化也沒有了,辛苦漢化的wind ide for python也沒有了,開發了兩年多的《信手拈來按鍵幫你來AHK》也沒有了(而且程序的源碼在VMDK虛擬機里。。。還有太多太多的東西也沒能幸免。在網上創業是非常不容易的,尤其在中國。我也在想,這些年都干了什么?對得起逝去的時間么?為什么沒給硬盤多一份備份?為什么這東西突然就掛了?好容易最近編的軟件,做的視頻取得了一些小收入。又有不幸傳來,真是欲哭無淚啊。所以眼下最重要的是把手里的這個《Ollydbg/x32dbg/x64dbg貼心伴侶》賣出去,好買塊大硬盤(沒有大硬盤的日子是極其悲催的,沒有更多的地方下載,安裝一個Delphi10.3原來的兩塊硬盤剩余空間就沒有多少了)
接下來還要攢足很多錢去維修這塊硬盤。因為這里邊有很多有意義,費了大勁整理出來的資料。
《Ollydbg/x32dbg/x64dbg貼心伴侶》是一款匯編破解輔助工具,易在讓逆向過程變得輕松簡單,讓x32dbg中大量的命令行變得簡單化操作;同時也是部海量整理的匯編
總結數據庫。因為它搜集了看雪論壇精華20部,加密與解密,逆向的原理,吾愛破解論壇精華,飄雲閣論壇精華於一身,各種Ollydbg/x32dbg插件與使用視頻總結在內的工具
並且這些東西是從實踐操作中來的,因為耗費了大量的精力去總結與開發我的軟件,之中要不斷的測試與完善,我軟件中的一些不足,改善使用體驗。因為我在設計工具時就在
想,如何讓工具可以最大化的為人提供“提示”,提供“指引”等幫助,而不是讓人沒事去記這么多總結經驗在內,因為每個人都各有一套分析的方法和調試的技巧在里邊。因
為視角和認識上的不同,所以這個世界才會這么的豐富多彩。
整個程序是這樣設計的,模仿OD中的浮動工具欄顯示在調試器的右上角區域中。開始設計時共弄了18個按鈕,在使用x32dbg/x64dbg和摸索使用其幫助后發現,貌似經常
用到的命令沒有這么多,所以后來我又刪除了5個。因為每個按鈕都要彈出子菜單的命令來,所以全搞上就有三百多個命令項,實在是太壯觀了。如圖1所示
程序使用Delphi10.3.3來開發,從2019.11開始,就沒有停息過,干到現在已經加入了很多解決問題的工具(下面詳細來說)如今正當干得如火如荼時,想不到又出了如此
問題。唉。。。真是欲哭無淚了~~ 算了,還是告別煩惱,說說讓人興奮的地方吧~~我的盆栽蘋果樹都能劫后余生,難道我還不如一顆樹嗎?
在x32dbg/x64dbg中有初始化調試器的專有命令,這和我們使用的Ollydbg是不同的。也有附加調試器的命令,比如abc commander,比如MindMaster這樣的軟件在調試過程中都是要使用到的,不然程序會跑飛,直接打臉。為了讓附加更加的方便,我重新修改了x32dbg/x64dbg的熱鍵Alt+A,這樣在目標程序中,我們直接按鍵就可以一鍵式附加過來了(通過模擬一系列窗口按鍵操作完成,PS說話QT程序真的好惡心)
在x32dbg/x64dbg中的斷點也跟Ollydbg有很大的不同,不僅可以設置CC斷,硬件斷,內存斷,還能給dll設置斷點,還能設置異常斷點。(當然還有配置轉向斷點)為了方便設置硬件斷點和內存斷點,這里我自制了一套熱鍵,具體可以參考下面的快捷鍵一覽表。
在x32dbg/x64dbg中的條件斷點與Ollydbg有很大的不同(條件斷點可以按照指定的條件對目標進行設斷干預操作),主要表現在設置界面相當的復雜,因為支持數百種內置函數與表達式(我們現在已經集成到了界面中【大部分吧,仍有一部分漏網,需要日后理解后再添加進來】;擴展的命令也有很多個。與此差不多同時也有關聯的則是追蹤命令。追蹤命令是相當的強大的,這個在OD中是沒有的,例如以往我們在某個程序需要使用硬件斷點或內存斷點來截獲到該地址調用處的全局變量A,何時被修改了,何時修改了寄存器數值等操作,我們則需要幾步來操作,而使用追蹤命令則可以讓程序自動化的去判斷是否目標數值發生變化?地址在哪里,這是非常強大的地方。我們把這個功能設置到了界面中,
x32dbg/x64dbg中是不支持判斷比較字符串的,通過插件,我們解決了此問題。為了更加靈活的使用它,這里界面改成了ListBox或命令腳本兩種方式來解決發送【生成的】命令
(並且配有使用要點總結與功能用法實例,相當的貼心與人性化了吧?)
【內存】內存相關命令若干
【控制】控制關命令若干
【變量】聲明變量,刪除變量,獲取變量
【搜索】我們可以在內存中搜索特征碼,搜索匯編命令,搜索跨模塊間的調用。
【插件】啟動加載卸載插件相關命令
【界面】在內存窗口,堆棧窗口快速顯示相關的數據,查看當前地址屬性哪個內存模塊,清除日志等。
【退出】主要功能強殺x32dbg/x64dbg 進程(因為有時程序退出過程很慢,或很卡頓)跨模塊提取(主要為了解決有時我們在堆棧窗口中看到的地址很多的時候准備的)
編輯x32dbg.ini or x64dbg.ini方便我們快速對此文件進行編輯。
我們再來詳細的說說主界面組成和功能介紹吧:
為了方便調用界面,我們設計了Win+S調出主界面!

【x32dbg/x64dbg/Ollydbg常用斷點自動下斷】這個是參考《加密與解密第四版》操作系統部分函數屬性哪一個進程文件制作出來的。我們在使用Ollydbg's StrongOD等下斷插件或浮動工具欄時發現有優點了不足;有些部分是死的,不方便用戶日后維護。另外就是x32dbg/x64dbg官方的主頁上雖然給了很多的下斷相關的插件,但是我們長期使用中發現這些工具有很多的問題。其中最大的問題就是兼容性有問題,一旦升級功能就不正常了,除非你會編程開發才能解決。再有不能像Ollydbg's StrongOD那樣批量下斷,縱然有那樣的插件也需要一個一個來點擊設斷,非常的不方便。
通過我們的Delphi編程,我們實則的單個下斷與批量下斷,並且非常方便維護升級。
另外,界面中另設了一鍵跳轉到條件斷點的機關,方便將斷點轉移。
頂部設為三組快速跳轉標簽頁的機關。可搜索,可直接點選轉移。
【破解關鍵字大全】設計時考慮到復制OD或x32dbg/x64dbg的字符串參考列表到剪貼板,這樣就不需要一個一個查看設斷了,根據經驗自動化給這些地址設上斷點。
設斷點時也分為兩種:1種是F1模擬按鍵方式,第2種方式采用腳本的方式來完成。

【模糊代碼查詢】OD支持命令序列和模糊代碼搜索兩種。通過查詢和模仿案例,我們就能快速的定位代碼了。
特別是破解過以前的版本,用這種方法定位是非常高效的。

【特征碼組合猜想】是在模糊代碼查詢的基礎上,一次靈感的迸發后想到的解決方案,主要為了解決在x32dbg/x64dbg中沒有模糊搜索的命令和替換碼,只能模糊搜索2進制數值
所以想到,何不自己猜測目標程序的特定位置長啥樣來定位呢?這是非常有挑戰性的解決和定位方法。

【近跳完跳速查】在《加密與解密第四版》中就有類似的表,所以我還是集成到了程序中,方便在迷糊時使用和查詢下好了。



【條件斷點生成器】在該選項卡中共分為三個標簽頁,它們分別是Ollydbg/x36dbg和給力一跟
Ollydbg主要把OD幫助中的條件斷點部分展示給大家 ,並且給出大量的實例,方便點擊生成條件斷點
x36dbg呢?相比OD的條件斷點要復雜了好多倍。使用起來是有難度的,內置的表達式是非常多的,因此掌握起來有難度,因為我們弄了大量的下拉分類菜單,方便調用和生成。
最后一個是給力一跟,上面我們已經說過了,這里不再贅述。

【修改命令大全】從匯編黑客工具箱,《加密與解密第四版》《吾愛破解論壇精華》《飄雲閣論壇精華》自己日常修改最多的經驗中總結的一些修改命令


【破解套路和定位方法匯總】與上面類似,但也有自己總結的獨到的地方,如破解下斷25式


【XX語言OEP特征碼】目前收錄了一些,但我自己認為還不夠全面。


【固定基址】有些程序基址不是固定的,所以有時我們需要自己用工具來處理下,但是修改的地方不是那么好記的,因此我弄了兩張截圖,方便理解和查找,方便恢復記憶。
【大多數軟件去廣告絕殺】這里總結了一下大多數軟件去廣告的最有效的方法。
【vmx改來改去】有時我們需要在虛擬機里調試,特別是過虛擬機檢測,因為虛擬機VMWARE的配置文件vmx需要來回修改非常麻煩,因此設計了一個一鍵讀取配置的解決方案,
准備了幾個方案,方便來回一鍵式修改。
【幸運草】在破解的時候,我們需要有些自己常用的注冊名,這些注冊名的位數,轉換后的相應代碼是經常用到的,所以在破解過程中會給我們提供少許的幫助,所以我就弄了這么一個字符串的東東嘍~~

【匯編比較下斷】有時您是否遇到過以下問題。有個軟件別人破解過,但自己沒有搞明白,我想自己再搞搞,同時理解下別人的破解思路和學習下他人的的破解過程,有匯編比較
工具,但卻不能一次性的批量下斷,遇到本工具就出現了。准備一些比較結果,輸入三個地址,程序就自動轉換好了,並批量的下好了斷點。
最后是快捷鍵列表:
顯示窗口類:
CPU窗口: Alt+C
斷點窗口:Alt+B
內存窗口:Alt+M
日志窗口:Alt+L
堆棧窗口:Alt+K
模塊窗口/API調用:Alt+E/Ctrl+N
引用:Alt+R
句柄:Alt+W
流程圖:Alt+G
線程:Alt+T=======>有問題
腳本:Alt+S/Ctrl+Alt+S=======>有問題
函數Ctrl+Alt+F======>有問題
============================
自定義命令:
Shift+Q 清空CC斷點
Ctrl+Shift+Q 清空硬件斷點
Ctrl+Shift+Alt+Q 清空內存斷點
==============================
Ctrl+H 脫殼時下硬件訪問斷點時使用。bph 005B7C20,r,2
Ctrl+Shift+1 設置硬件1字節訪問斷點
Ctrl+Shift+2 設置硬件2字節訪問斷點
Ctrl+Shift+3 設置硬件4字節訪問斷點
Ctrl+Shift+4 設置硬件8字節訪問斷點(僅x64dbg)
Ctrl+Shift+5 設置硬件1字節寫入斷點
Ctrl+Shift+6 設置硬件2字節寫入斷點
Ctrl+Shift+7 設置硬件4字節寫入斷點
Ctrl+Shift+8 設置硬件8字節寫入斷點 (僅x64dbg)
Ctrl+Shift+9 設置硬件執行斷點
Win+Num1 設置一性次內存訪問斷點 等價rw
Win+Num2 設置一性次內存讀取斷點 等價r
Win+Num3 設置一性次內存寫入斷點 等價w
Win+NumDot 設置一性次內存執行斷點 等價x
Win+S激活新的窗口
Alt+A目標窗口中按(譬如,親愛的妹子.exe),得到目標窗口進程的PID,回到命令行處粘即可附加
Ctrl+Shift+G一鍵定位RVA(x64dbg頂部標題上按)
Alt+Shift+G一鍵定位FOA(x64dbg頂部標題上按)
Ctrl+Shift+T在x32dbg窗口標題處點擊得到x32dbg/x64dbg的完整路徑,轉換后打開x32dbg.ini/x64dbg.ini
Shift+F2 禁用當前行的F2/CC斷點
未來還將繼續總結《看雪論壇精華1-20》《吾愛破解論精華》《飄雲閣論壇精華》
終身會員制將體驗到不斷的升級服務和更多的破解總結資料
