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


個人原創,轉帖請注明來源:cnblogs.com/jailbreaker

逆向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”:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM