無(wú)須越獄、自動(dòng)集成、只需要一個(gè)砸殼的應(yīng)用---MonkeyDev

《iOS應(yīng)用逆向與安全》 上線啦!!!

購(gòu)買(mǎi)地址:

天貓: iOS應(yīng)用逆向與安全

京東: iOS應(yīng)用逆向與安全

一切以Wiki為準(zhǔn)!!!!!!

前言

之前基于iOSOpenDev重新弄了一個(gè)MonkeyDev,最初的版本支持Xcode 9和最新theos創(chuàng)建CaptainHook Tweak和Logos Tweak,后面又增加了一個(gè)Command-line Tool工具的支持。

然后想到如果是非越獄機(jī)器或者使用Xcode調(diào)試第三方應(yīng)用的時(shí)候很多集成步驟,注入dylib,集成Reveal、Cycript等等,這些步驟其實(shí)都是重復(fù)性的工作,所以現(xiàn)帶給大家MonkeyDev支持,一步到位!

那么需要怎么做呢?

安裝MonkeyDev

這個(gè)看第一篇文章,或者看github文檔 就可以了。

很多人就是因?yàn)闆](méi)有仔細(xì)看文檔,然后出錯(cuò)了不知道怎么解決,所以先仔細(xì)看一遍文檔把。

使用:一步到位

CaptainHook Tweak、Logos Tweak and Command-line Tool的使用這里就不講了,如果有不會(huì)的我到時(shí)再單獨(dú)寫(xiě)一篇文章。

這里主要介紹的功能是MonkeyDev一步集成非越獄調(diào)試。

準(zhǔn)備好砸殼的ipa或者app

第一步是準(zhǔn)備好砸殼的ipa或者app,可以從第三方應(yīng)用市場(chǎng)或者http://www.iphonecake.com去下一個(gè)。

創(chuàng)建MonkeyApp項(xiàng)目

點(diǎn)擊File - New - Project...創(chuàng)建iOS項(xiàng)目,選擇MonkeyApp。

image

創(chuàng)建完成之后,你會(huì)得到一個(gè)這樣的工程:

image

解析一下,這里我創(chuàng)建的項(xiàng)目名字就是MonkeyApp,所以下面對(duì)應(yīng)的都是MonkeyApp,你自己創(chuàng)建的由你的項(xiàng)目名字而定!

MonkeyAppDylib這個(gè)是將被注入目標(biāo)App的動(dòng)態(tài)庫(kù),你自己要hook的代碼可以在MonkeyAppDylib.m文件里面寫(xiě),我在里面寫(xiě)了一些Demo代碼,支持OC runtime的HOOK,C函數(shù)的fishhook。

AntiAntiDebug這個(gè)里面是反反調(diào)試的代碼。

fishhook這個(gè)是自動(dòng)集成的fishhook模塊。

下面Framewroks已經(jīng)自動(dòng)集成了Reveal.frameworkCycript.framework

拖入編譯

我準(zhǔn)備了一個(gè)砸殼了的ipa文件,然后我右鍵項(xiàng)目里面的TargetApp文件夾Show in Finder,把ipa文件拖入下面的位置(當(dāng)然app文件夾也可以的):

image

put ipa or app here這個(gè)文件不要?jiǎng)h除。

好了,還要做什么嗎? 不, 不用了。編譯運(yùn)行到非越獄手機(jī)。

打開(kāi)電腦的Reveal,就可以看到界面了:

image

Cycript查看界面也沒(méi)有問(wèn)題:

image

這里Cycript默認(rèn)端口是6666

更多功能

動(dòng)態(tài)庫(kù)調(diào)試

MonkeyAppDylib.m文件中寫(xiě)了自己的代碼之后就可以直接下斷點(diǎn)調(diào)試,效果如下:

image

Demo App

MonkeyApp不拖入App或者ipa的情況下,會(huì)有一個(gè)默認(rèn)的App,以供讀者自己測(cè)試,樣子大概是這個(gè)樣子····

image

你可以自己修改MonkeyAppDylib.m里面的代碼,這個(gè)是筆者針對(duì)Demo寫(xiě)的例子啦。。。。

CHDeclareClass(CustomViewController)

CHOptimizedMethod(0, self, NSString*, CustomViewController,getMyName){
    //get origin value
    NSString* originName = CHSuper(0, CustomViewController, getMyName);
    
    NSLog(@"origin name is:%@",originName);
    
    //get property
    NSString* password = CHIvar(self,_password,__strong NSString*);
    
    NSLog(@"password is %@",password);
    
    //change the value
    return @"AloneMonkey";
    
}

CHConstructor{
    CHLoadLateClass(CustomViewController);
    CHClassHook(0, CustomViewController, getMyName);
}

默認(rèn)集成的庫(kù)

本工具會(huì)默認(rèn)集成Reveal.frameworkCycript.framework,em.....

集成的Reveal.framework是最新版本的,所以你可能需要最新的Reveal,否則使用自己的Reveal.framework替換掉/opt/MonkeyDev/frameworks下面的Reveal.framework。

Cycript.framework/opt/MonkeyDev/library目錄下面。

可以在如下位置刪除掉默認(rèn)集成的庫(kù):

image

增加自己的庫(kù)

emmm。。。。。

動(dòng)態(tài)庫(kù)的話,把你的*.framework文件拷貝到/opt/MonkeyDev/frameworks目錄下面,然后在下圖的位置add進(jìn)去,emmm。。。。就可以了。

image

靜態(tài)庫(kù)的話,直接增加到上面,指定search path就可以了,和正常開(kāi)發(fā)沒(méi)啥區(qū)別。。。

增加自己的資源

如果想要加入storyboard或者bundle資源的話,將其拷貝到如下目錄即可!

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift版本點(diǎn)擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 26,093評(píng)論 7 249
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,304評(píng)論 4 61
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,754評(píng)論 8 183
  • 輸入是Input,輸出是Output,因此,我們把輸入輸出統(tǒng)稱(chēng)為Input/Output,或者簡(jiǎn)寫(xiě)為IO。 輸出:...
    黃大臻Dzreal閱讀 446評(píng)論 0 0
  • 把愛(ài) 倒出來(lái)的時(shí)候 慢一點(diǎn) 要沿著杯壁 我可不想你的愛(ài)呀 成為杯口的一朵浮沫 我已經(jīng)不是小孩子了 我當(dāng)然知道啤酒沫...
    段童閱讀 301評(píng)論 0 2

友情鏈接更多精彩內(nèi)容