iOS 之 如何分析一個 App 的實現(xiàn)

逆向.jpg

初衷:

有時候看見喜歡的 app 肯定會想要對他的實現(xiàn)一探究竟峡钓。我給大家分享下我是如何簡單分析的槐雾。希望大家一起進(jìn)步夭委。

準(zhǔn)備的工具

  • Hopper
  • Charles
  • Reveal
  • MonkeyDev
  • pp助手
  • class-dump

目標(biāo)

酷漫漫畫 App(如果涉及到侵權(quán),請及時聯(lián)系作者刪除)募强。

接下來的步驟就是默認(rèn)你上面的工具都是已經(jīng)安裝好的株灸。

第一步 導(dǎo)出頭文件

  • pp助手里面越獄應(yīng)用里面搜索 酷漫漫畫 然后下載


    搜索應(yīng)用.jpg
  • 找到 ipa,復(fù)制一份擎值,后綴改為.zip慌烧。解壓出來一個文件夾。
    終端執(zhí)行以下命令得出頭文件

class-dump -H 目標(biāo)執(zhí)行程序 -o 導(dǎo)出的頭文件存放文件夾

漫畫頭文件.jpg

第二步 結(jié)合 Hopper 來分析應(yīng)用引用了哪些第三方庫以及分析代碼邏輯

  • 打開 Hopper 扔進(jìn)去 包里面的執(zhí)行文件進(jìn)行分析鸠儿。
    分析.jpg

通過左上角搜索關(guān)鍵詞可以知道應(yīng)用到底使用了哪些第三方庫屹蚊。我查找到這個目標(biāo) app 使用了以下第三方。

  • 百度云推送
  • ShareSDK
  • SRWebSocket
  • IQKeyboardManager
  • YYWebImage
  • YYCache
  • JSONModel
  • SDPhotoBrowser
  • MWPhotoBrowser
  • SDWebImage
  • MBProgressHUD
  • Masonry
  • WCAlertView
  • SIAlertView
  • CustomIOS7AlertView

假如你對某個頭文件中的方法實現(xiàn)邏輯感興趣进每,可以這樣做汹粤。

比如對圖中圈住的方法感興趣


頭文件中的方法.jpg

可以在 Hopper 中這樣分析


分析邏輯.jpg

想了解 Hopper 點擊這里

第三步 使用 MonkeyDev 和 Reveal 對UI界面進(jìn)行查看,還可以用代碼進(jìn)行 hook 調(diào)試田晚。

  • 運行起來程序后(注入 動態(tài)庫 dylib 進(jìn)行調(diào)試)嘱兼,點擊 Reveal 就可以看到界面的層級關(guān)系了。


    界面層級關(guān)系.jpg

通過左邊的名字 不難分析出贤徒,這個界面是用 UIScrollView 實現(xiàn)的芹壕,UIScrollView 里面就是 幾個view 展示的。

分析首頁的時候 發(fā)現(xiàn)最上面的左右 兩個 Button 距離左/右的距離為0 然后 Button 寬30 高33接奈。點擊響應(yīng)的時候不太方便踢涌。 人手指最舒服的點擊大小是 寬和高都是 44。

  • 想 hook 某些方法或者加寫頁面 可以在里面寫代碼


    hook 方法.jpg

第四步 使用Charles 進(jìn)行 API 分析鲫趁。

  • 抓到的時候發(fā)現(xiàn)這個 app 還使用的是 http 請求斯嚎。
  • 沒看之前有個想法就是說,想通過偽造包請求來查看收費的漫畫章節(jié)(比如它的實現(xiàn)可能是通過 某個參數(shù) 為1或者0來判斷是否允許用戶觀看)。

這是正常免費漫畫章節(jié)的請求堡僻。


免費章節(jié)API.jpg

然后是點擊收費章節(jié)的請求糠惫。


收費章節(jié)API.jpg

通過發(fā)送的參數(shù)可以分析出,是在服務(wù)器端來判斷你的賬戶里面金額夠不夠觀看收費章節(jié)钉疫。說明咱們之前的想法是錯誤的硼讽。

  • 但是到這里的時候 我還有 2 個想法。

1牲阁、正常免費章節(jié)的 api 返回的數(shù)據(jù)是這樣的(部分 JSON 數(shù)據(jù))固阁。

"imageList": [{
            "image_id": 1,
            "comic_id": 36427,
            "image_server_id": 99,
            "chapter_id": 3267,
            "image_url": "http:\/\/s2.static.kuman.com\/\/001\/00\/39\/46\/10461\/81015a81073611fc2.jpeg!km2",
            "sync_status": 0
        }, {
            "image_id": 2,
            "comic_id": 36427,
            "image_server_id": 99,
            "chapter_id": 3267,
            "image_url": "http:\/\/s2.static.kuman.com\/\/001\/00\/39\/46\/10461\/89445a8107373294c.jpeg!km2",
            "sync_status": 0
        },

對比兩個 image_url 數(shù)據(jù) 會發(fā)現(xiàn)

http://s2.static.kuman.com//001/00/39/46/10461/XXXXXX.jpeg!km2

在 標(biāo)注 XXXXX 的地方就是他們不一樣的地方,如果逆向找出生成的規(guī)則城菊,你就能免費看所有的漫畫了备燃。需要時間不停的去驗算規(guī)則。

2凌唬、就是通過偽造假的下單成功請求來使你的賬戶余額變多并齐。
這個 app 使用的支付方式分別是 支付寶、微信客税、Apple Pay况褪。
支付的 api 是 http://api.kuman.com/pay/recharge
思路是先花錢通過下單成功來查看一套完整的流程更耻,記錄每個步驟的參數(shù)和返回數(shù)據(jù)测垛,通過 Paw 之類的請求工具改變部分參數(shù)來不停的嘗試。
主要就是看服務(wù)端那邊對支付成功后是否進(jìn)行了二次校驗秧均。如果沒有的話就是可以通過一次支付成功來不停的告訴服務(wù)器支付成功食侮,然后服務(wù)器端就會不停的給你賬戶加余額,這樣你就可以放心的觀看免費章節(jié)了目胡。

有什么問題可以留言評論疙描。只有大家不停的分享,才會能更快的進(jìn)步讶隐。如果想逆向別人的 app起胰。只有你正向開發(fā)達(dá)到了一定的深度,逆向起來就會感覺輕松不少巫延。我這是大致的介紹下方法效五。如果想更深入的話需要你自己學(xué)習(xí)了÷澹或者說有更好的方法也可以介紹給我畏妖。

如果想了解更多的知識,請在開發(fā)者頭條里面關(guān)注我們疼阔,不定期分享關(guān)于 iOS 的文章戒劫。

加入我們 一同進(jìn)步.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末半夷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子迅细,更是在濱河造成了極大的恐慌巫橄,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茵典,死亡現(xiàn)場離奇詭異湘换,居然都是意外死亡,警方通過查閱死者的電腦和手機统阿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門彩倚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扶平,你說我怎么就攤上這事帆离。” “怎么了结澄?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵盯质,是天一觀的道長。 經(jīng)常有香客問我概而,道長,這世上最難降的妖魔是什么囱修? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任赎瑰,我火速辦了婚禮,結(jié)果婚禮上破镰,老公的妹妹穿的比我還像新娘餐曼。我一直安慰自己,他們只是感情好鲜漩,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布源譬。 她就那樣靜靜地躺著,像睡著了一般孕似。 火紅的嫁衣襯著肌膚如雪踩娘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天喉祭,我揣著相機與錄音养渴,去河邊找鬼。 笑死泛烙,一個胖子當(dāng)著我的面吹牛理卑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蔽氨,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼藐唠,長吁一口氣:“原來是場噩夢啊……” “哼帆疟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宇立,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤踪宠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泄伪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體殴蓬,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年蟋滴,在試婚紗的時候發(fā)現(xiàn)自己被綠了染厅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡津函,死狀恐怖肖粮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尔苦,我是刑警寧澤涩馆,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站允坚,受9級特大地震影響魂那,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜稠项,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一涯雅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧展运,春花似錦活逆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至埂软,卻和暖如春锈遥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背勘畔。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工迷殿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咖杂。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓庆寺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诉字。 傳聞我的和親對象是個殘疾皇子懦尝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,519評論 25 707
  • 用到的組件 1知纷、通過CocoaPods安裝 2、第三方類庫安裝 3陵霉、第三方服務(wù) 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,602評論 1 180
  • 人生的目標(biāo)不可過度理想化琅轧,因此對人生的想象不能有太多的欲望,如果過度那必然是一種挫敗踊挠,更是一種自我折磨乍桂。雖...
    來喜wzf閱讀 550評論 10 22
  • 當(dāng)期未考剛過剩檀,本以為暑假可以出去玩憋沿,去放松。我錯了沪猴,暑假不放松也可以很快樂辐啄。 暑假,是個新的學(xué)習(xí)的機會运嗜。不要補習(xí)壶辜,...
    w王佳怡閱讀 213評論 0 0
  • 一種附著是一種難堪 再不舍的秋天 該到夕陽落血時 是該,到放逐于離去的時候 帶來過什么 擁有過什么 將要帶走什么 ...
    文與奴情系舢哲閱讀 102評論 0 0