稀土掘金 (十七) : 教你反編譯別人的app

iOS app可以“有條件”地被反編譯

脫掉App Store給“二級制文件”穿上的外衣

如何利用工具去反編譯

在感興趣的地方生成偽代碼

如何預防反編譯

iOS app可以“有條件”地被反編譯

首先,告訴大家一個不幸的消息,上架至App Store的app诊赊,被apple加密了。所以標題才是“有條件”才能進行反編譯棚潦,令人欣喜的是,在debug下產(chǎn)生的ipa或者是release下的ipa包或者是渠道包(各種應(yīng)用市場能下的ipa包)都能直接反編譯乱灵。

脫掉App Store給“二級制文件”穿上的外衣

當然硫朦,引言已經(jīng)說了溯饵,道高一尺魔高一丈侵俗,就算是被apple加密的ipa,其實也是可以反編譯的丰刊,只不過相對麻煩罷了隘谣。

來來來,給你們幾個工具啄巧,就可以解掉apple的加密了寻歧。

clutch

dumpdecrypted

gdb

AppCrackr

由于AppCrackr被很多開發(fā)者吐槽,這個傻瓜式的解密會嚴重導致盜版泛濫秩仆,所以這個工具已經(jīng)很不好用了码泛。

這里就不展示demo了,感覺如果把App Store上的東西反編譯出來發(fā)到網(wǎng)上去澄耍,我感覺我的程序員生涯可能就要到頭了弟晚。

如何利用工具去反編譯

這里會介紹兩個工具class-dumpHopper Disassembler忘衍。

首先逾苫,先擼一個最簡單的app來做小白鼠卿城。下載地址(包含二進制文件&dump結(jié)果)

看圖,就是這樣铅搓,我只改了ViewController這個類瑟押。



由代碼可以看出,我就寫了兩個方法testClassDump和testHideClassDump星掰,后者沒有聲明在.h中(ps:我想試驗這樣能不能被反編譯到)多望。

ok,前戲都做完了氢烘,可以開始干活了怀偷。

我們run一下工程,然后打開Products文件夾下的DecompilingTest.app所在目錄播玖,顯示包內(nèi)容椎工,拿到二進制文件

然后我是復制到桌面,然后執(zhí)行下述命令蜀踏,即可拿到工程中的.h文件维蒙。

OK,得到下述結(jié)果果覆,我們看看拿到的ViewController.h里面颅痊,能拿到什么方法


事實證明,沒有聲明的方法也被dump出來了局待。

下一步我們要做的就是看看能不能拿到這兩個方法的具體實現(xiàn)了斑响,接下來我們用Hopper Disassembler來試試。

Hopper Disassembler的用法很簡單钳榨,只要將二進制文件拖進去就行了舰罚。看看拖進去之后的結(jié)果重绷。

此時心中一萬頭草泥馬飛奔而過沸停,what’s the fk!昭卓!一堆匯編語言寶寶看不懂啊愤钾。(當然那個ret應(yīng)該是return的意思我猜)

在感興趣的地方生成偽代碼

Don’t worry!點右上角的if(b)f(x);按鈕候醒,我們能看到這個方法的偽代碼能颁,大部分的時候我們能從偽代碼中看出我們需要的信息。

結(jié)果如下:

至此倒淫,兩個方法都被反編譯出來了;锞铡!

這里需要注意,就算方法沒有聲明在.h中镜硕,也能被dump运翼,之后就能被反編譯了。

如何預防反編譯

說了這么多兴枯,我們預防呢血淌,是不是需要像Java的一樣加上各種復雜的混淆呢。

其實我覺得大可不必财剖,本身反編譯成本就很大悠夯,代碼這么多,一個個反編譯過來是在蛋疼躺坟,就算有偽代碼也需要理解沦补,而且有些代碼就算有偽代碼也很難理解。

只要做好核心代碼咪橙,做好混淆就行了夕膀,比如涉及到密碼,核心算法匣摘。

總結(jié):

沒有絕對安全的系統(tǒng)店诗,也沒有黑客破不掉的系統(tǒng),所有需要的只是時間而已音榜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庞瘸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赠叼,更是在濱河造成了極大的恐慌擦囊,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘴办,死亡現(xiàn)場離奇詭異瞬场,居然都是意外死亡,警方通過查閱死者的電腦和手機涧郊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門贯被,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妆艘,你說我怎么就攤上這事彤灶。” “怎么了批旺?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵拌喉,是天一觀的道長土童。 經(jīng)常有香客問我静暂,道長,這世上最難降的妖魔是什么棚唆? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮心例,結(jié)果婚禮上宵凌,老公的妹妹穿的比我還像新娘。我一直安慰自己契邀,他們只是感情好摆寄,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坯门,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逗扒。 梳的紋絲不亂的頭發(fā)上古戴,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音矩肩,去河邊找鬼现恼。 笑死,一個胖子當著我的面吹牛黍檩,可吹牛的內(nèi)容都是我干的叉袍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刽酱,長吁一口氣:“原來是場噩夢啊……” “哼喳逛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起棵里,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤润文,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后殿怜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體典蝌,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年头谜,在試婚紗的時候發(fā)現(xiàn)自己被綠了骏掀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡柱告,死狀恐怖截驮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情末荐,我是刑警寧澤侧纯,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站甲脏,受9級特大地震影響眶熬,放射性物質(zhì)發(fā)生泄漏妹笆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一娜氏、第九天 我趴在偏房一處隱蔽的房頂上張望拳缠。 院中可真熱鬧,春花似錦贸弥、人聲如沸窟坐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哲鸳。三九已至,卻和暖如春盔憨,著一層夾襖步出監(jiān)牢的瞬間徙菠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工郁岩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留婿奔,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓问慎,卻偏偏與公主長得像萍摊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子如叼,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容