2014-07-03 42 views
7

我最近在OllyDbg 2.01和crackmes可執行文件的幫助下開始了破解和反向工程。OllyDbg 2.01 - 查找一個引用靜態字符串的命令

在這個特殊的crackme

所以,我是通過命令滾動,發現一個用ASCII字符串「&檔案」的PUSH(這是一個菜單字符串):

1

所以我想:「如果我可以通過簡單的滾動來找到這些信息,當然必須有一種自動的方式來查找引用特定字符串的命令「。

所以我到了程序的頂部,按CTRL + B和搜索ASCII「文件」,希望能夠再次找到它:

2

擊中確定後,OllyDbg的未找到早些時候PUSH。相反,我得到這樣的:

3

Mmmh ..好吧,這不是我所期待的,但讓我們看看裏面有什麼了。所以我點擊右鍵=>在轉儲跟着,我得到這個:

4

所以是的,我們發現我們的垃圾堆字符串。但是,我仍然沒有找到我原來的推。您還可以注意到該字符串的地址與PUSH的參數(40512C)相同。

作爲最後一次嘗試,我右鍵單擊地址40512C處的字母,選擇「查找引用」,但不輸入:未找到引用。

So TL; DR問題:我如何自動查找引用字符串的命令?因爲顯然我不想每次找到一個字符串都要滾動整個命令堆棧。

PS:字符串不出現在「引用文本字符串」中。

在此先感謝您的幫助。

編輯:好吧,所以我找到了解決方案。我搜索了代碼「2C 51 40 00」,這是後退的地址,我又找到了我的PUSH。這有點冒失,歡迎任何擁有更高效解決方案的人分享。

回答

4

所以,有多種方法可以做到這一點。我更喜歡以下內容: Ctrl+G並轉到轉儲中的字符串。 (0x0040512C)選擇第一個字節並點擊Ctrl+R。這會給你一個特定字符串被引用的列表。您也可以在字符串「&」的第一個字節上放置一個硬件斷點,然後每次訪問它時都會中斷。你也可以搜索常量(地址或ascii字符本身)。

順便說有一個專門用於reverseengineering :)

+0

我試着按Ctrl + R爲(第一字節右擊並選擇「查找引用」)在我的崗位說明的子網站,但它並沒有屈服任何結果。 關於記憶斷點:是的,我最近發現他們,他們真棒:)。 感謝有關reverseeengineering子網站的提示,我會檢查一下。 – Ely

相關問題