IOS逆向獲取摩拜單車掃一掃捷徑

每天掃單車的時候都要在眾多APP中路那個找到摩拜铁蹈,然后打開掃一掃卓鹿。作為一名開發(fā)者我不得不面臨這一個嚴(yán)峻的問題我需要把兩步操作合并房揭,并且越快達(dá)到目的越好箭阶。我第一個想到的就是IOS 10 以后的負(fù)一屏,就想使用支付寶二維碼付款了一樣谚殊,不打開APP最好了丧鸯。

F6D47A7B438DC343C21ED0340336247B.png

看到摩拜也內(nèi)置了TodayWidget,我就試著加到了負(fù)一屏嫩絮,但是負(fù)一屏的空間有限丛肢,摩拜提供的4個功能對我來說只有掃碼有用,于是我想了不能只要這一個功能呢剿干,提起單一掃一掃功能蜂怎,我就想到了今年下半年即將。置尔。杠步。emmm workflow,也就是現(xiàn)在的快捷指令。那么根據(jù)其他打開應(yīng)用掃一掃的方法(通過應(yīng)用的URL Schemes打開應(yīng)用對應(yīng)的頁面如支付寶的alipayqr?://....和微信的wexin://scanqrcode),我們只要找到了對應(yīng)的URL我們也可以制作一個workflow去打開摩拜的掃碼界面榜轿。
思路有了幽歼,那我們開始動手。(ps偷懶百度一下差导,萬一有現(xiàn)成的呢试躏?醒醒吧!如果有你也就看不到這篇文章了)
第一步 :去某P助手下載砸殼后的IPA文件设褐,解壓之后打開找到info.plist文件直接接從里面找看看有沒有完整的颠蕴。

<dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLName</key>
            <string>com.mobike.firstBike</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>mobike</string>
            </array>
</dict>

很遺憾我們只找到了前綴是mobike高帖。
第二部 : 既然簡單的找不到摊腋,那就暴力點直接HOOK APP了装悲,最先想到的的HOOK APP處理URL的方法,于是我們利用MonkeyDev創(chuàng)建APP hook 項目贱除,然后

%hook AppDelegate

- (_Bool)handleOpenUrl:(id)arg1{
     NSLog(@"==================\n%@\n==================\n",arg1);
    return %orig();
}
- (_Bool)application:(id)arg1 openURL:(id)arg2 options:(id)arg3{
     NSLog(@"==================\n%@\n==================\n",arg2);
    return %orig();
}
- (_Bool)application:(id)arg1 openURL:(id)arg2 sourceApplication:(id)arg3 annotation:(id)arg4{
     NSLog(@"==================\n%@\n==================\n",arg2);
    return %orig();
}
- (_Bool)application:(id)arg1 handleOpenURL:(id)arg2{
     NSLog(@"==================\n%@\n==================\n",arg2);
    return %orig();
}

%end

如果處理了跳轉(zhuǎn)的URL應(yīng)該可以直接打印出URL的內(nèi)容。但是問題來了寡键,我們沒辦法調(diào)用URL跳轉(zhuǎn)到APP掀泳,因為MonkeyDev并不會把todaywidge一起重簽名,安裝到手機(jī)西轩,好在摩拜還提供了3D touch打開4個功能的入口和todaywidge功能一樣如圖

TodayWidget 3D Touch
8344833D0E4096AA1C60DDB8A852BD01.png
451A0CDE0002434A1A457986B926B4A9.png

那試一下吧员舵,咦并沒有打印URL,什么地方錯了藕畔?好吧3D touch處理是在應(yīng)用內(nèi)部不必須調(diào)用URL马僻,可以直接打開對應(yīng)的頁面。
第三步 :SO 注服,這個方法貌似行不通韭邓,下載原版的APP是可以通過TodayWidget調(diào)用URL的但是你不確定是hook了的APP先響應(yīng)還是原APP先響應(yīng)URL,所以我們換一種更為直接的方式溶弟。
第四步 : 直接上Hopper女淑,把IPA解包后的文件夾中的TodayWidget二進(jìn)制文件扔進(jìn)hopper (文件名MBKTodayWidget),插件只有一個viewController代碼也比較少明早起來還是很方便的辜御,
觀察得知頁面用了一個collectionView鸭你,在其代理里找到處理方法,

F7523A87-BE4D-48A5-8622-D64FB29ED62F.png

其方法具體內(nèi)容如下

void -[MBKTodayViewController setupItemDataWithIndex:](void * self, void * _cmd, int arg2) {
    r7 = (sp - 0x14) + 0xc;
    r5 = self;
    r4 = @"";
    r0 = [r4 retain];
    if (arg2 > 0x3) goto loc_ab1a;
loc_aad0:
    switch (r0) {
        case 0:
            r4 = @"mobike://home/scanqr/todayWidget";
            break;
        case 1:
            r4 = @"mobike://home/reportfault/todayWidget";
            break;
        case 2:
            r4 = @"mobike://home/parkviolationreport/todayWidget";
            break;
        case 3:
            r4 = @"mobike://home/mobeans/todayWidget";
            break;
    }
    [r4 retain];
    goto loc_ab1a;
loc_ab1a:
    r5 = [[r5 extensionContext] retain];
    r6 = [[NSURL URLWithString:r4] retain];
    [r5 openURL:r6 completionHandler:0x10148];
    r0 = r4;
    return;
}

不出意外我們找到了我們想要的URL我抠,通過URL我做了一個workflow苇本,在手機(jī)自帶瀏覽器打開下載摩拜掃碼,一鍵直達(dá)摩拜APP掃碼頁面袜茧。

本文設(shè)計最基礎(chǔ)的IOS逆向知識菜拓,有興趣的同學(xué)歡迎交流。(似乎在越獄手機(jī)上使用cycript有更好的方式笛厦,歡迎交流你的想法)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纳鼎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子裳凸,更是在濱河造成了極大的恐慌贱鄙,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姨谷,死亡現(xiàn)場離奇詭異逗宁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)梦湘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門瞎颗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來件甥,“玉大人,你說我怎么就攤上這事哼拔∫校” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵倦逐,是天一觀的道長譬正。 經(jīng)常有香客問我,道長檬姥,這世上最難降的妖魔是什么曾我? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮健民,結(jié)果婚禮上您单,老公的妹妹穿的比我還像新娘。我一直安慰自己荞雏,他們只是感情好虐秦,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凤优,像睡著了一般悦陋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筑辨,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天俺驶,我揣著相機(jī)與錄音,去河邊找鬼棍辕。 笑死暮现,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的楚昭。 我是一名探鬼主播栖袋,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抚太!你這毒婦竟也來了塘幅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤尿贫,失蹤者是張志新(化名)和其女友劉穎电媳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庆亡,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡匾乓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了又谋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拼缝。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡括享,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出珍促,到底是詐尸還是另有隱情铃辖,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布猪叙,位于F島的核電站娇斩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏穴翩。R本人自食惡果不足惜犬第,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芒帕。 院中可真熱鬧歉嗓,春花似錦、人聲如沸背蟆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽带膀。三九已至志珍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垛叨,已是汗流浹背伦糯。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留嗽元,地道東北人敛纲。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像剂癌,于是被迫代替她去往敵國和親淤翔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353