1. 程式人生 > >iOS安全攻防(十五)使用hopper修改字串

iOS安全攻防(十五)使用hopper修改字串

2014-12-25 09:59 by 16位元組, ... 閱讀, ... 評論, 收藏, 編輯

逆向iOS的mach-o檔案,除了用耳熟能詳的ida反彙編器外,在mac下還有個叫做hopper的反彙編器,hopper可謂是價效比很高的利器,一年約600rmb的價格,讓我等屌絲可以承受,官網地址http://www.hopperapp.com,有demo版可以試用,這篇帖子使用hopper來講解修改字串。

真機執行程式,控制檯輸出如下:

NewImage
 今天是聖誕節,這篇帖子的內容是把 "hello world" 修改成 “Christmas",先把目標檔案拖入到hopper中,游標定位到main函式:

NewImage

hopper也有類似ida的f5功能,把arm彙編逆向成虛擬碼,ida中的這個功能,在上一篇帖子裡已經用過了,這裡主要講hopper,使用快捷鍵alt+enter:

NewImage

明顯看出hopper的虛擬碼已經是接近oc原始碼了,而ida是純c的虛擬碼。

從虛擬碼視窗中看出main生產了一個Atom例項,而沒有輸出字串的程式碼,但是init的方法是可以自定義的,進入Atom的init一窺究竟。

成功載入mach-o檔案之後,hopper的左側面板會出現分析出來的類和其方法:

NewImage

進入init方法,看其虛擬碼:

NewImage

果然在init裡輸出了 “hello world”,看一下init的arm彙編程式碼:

NewImage

在 0000b248         add        r0, pc

從這行後面的註釋可以看出”hello world”是NSLog的引數,定位到這行,使其處於高亮狀態,接著看hopper右側欄:

NewImage

上圖第一個區域指“被誰引用”,第二個區域指“從哪裡引用”,在第2個區域裡雙擊顯示的指令,跳轉至:

NewImage

繼續看右側“從哪裡引用”區域:

NewImage

上圖顯示有2行指令,第一行直接看到“hello world”字串,點選跳轉:

NewImage

這裡就是我們目的地了,除了”hello world”外,還有其他分析出來的字串,在這行,我們開啟hopper的16進位制編輯器:

NewImage

NewImage

高亮的那行16進位制數字就是代表”hello world”,其中包含空格鍵和字串結尾’/0。'

雙擊修改成相應字串ascii碼:

NewImage

由於”Christmas”比原來的”hello world”字串短,需要在’s’的後面的位元組修改成00,即字串結尾。

修改完畢後,儲存檔案:

NewImage

接下來只要把app重新安裝到ios裝置裡,就能顯示“Cristmas”: