Cycript和Reveal安裝

cycript是什么?

cycript是objc++、javascript、java等語言的混合物,可以用來調(diào)試 探索 修改正在運(yùn)行的ios、mac的app。
我們要調(diào)試我們app,首先需要手機(jī)越獄,至于怎么越獄以及需要安裝什么源我在上一篇文章都有講到,查看一下就知道了。這里我們需要安裝的軟件如下:


image.png

和這個(gè)插件


image.png

當(dāng)然默認(rèn)安裝了第一個(gè)插件之后就會(huì)自動(dòng)的安裝第二個(gè)插件,這個(gè)插件是jay Freeman開發(fā)的,所以放心使用,因?yàn)檫@個(gè)人開發(fā)的都是神器。

cycript的開啟和關(guān)閉

  • 開啟
    我們需要做的是連接上我們的越獄手機(jī)(用usb進(jìn)行連接),然后執(zhí)行我們寫好的那兩個(gè)shell文件(在我的上一篇文章中有寫到關(guān)于shell),我們就可以用我們的mac來通過命令來控制我們的手機(jī)了。接下來我們需要通過ps來查看一下我們當(dāng)前的手機(jī)有哪些進(jìn)程,通過使用命令配合進(jìn)程的id或者進(jìn)程的名稱我們就可以進(jìn)入當(dāng)前我們需要調(diào)試的app。
    具體命令如下:
  • 列出所有的進(jìn)程
    (特別需要注意的是:你需要將你的app打開,否則是顯示不出來你的進(jìn)程app的,本人因?yàn)檫@個(gè)錯(cuò)誤折騰了一天)
ps -A
或者
ps aux 
  • 關(guān)鍵字列出進(jìn)程
ps -A | grep 關(guān)鍵字
  • 開啟cycript
    (你調(diào)試那個(gè)app就需要將這個(gè)app放在前臺運(yùn)行 否則會(huì)一直卡住不動(dòng))
cycripy -p 進(jìn)程的id
或者
cycript -p 進(jìn)程名稱 (一般用這個(gè)不會(huì)發(fā)生改變,但是進(jìn)程的id可能會(huì)發(fā)生改變)
  • 取消輸入
ctrl + C
  • 退出
ctrl + D
  • 清屏
ctrl + R

常用語法

image.png

image.png

封裝cycript的庫

我們可以看到cycript是非常麻煩的,高手給我們封裝好了一個(gè)庫,那么我們就可以將封裝好的庫導(dǎo)入到我們需要的位置進(jìn)行展示,庫在哪里?
在這個(gè)位置:https://github.com/CoderMJLee/mjcript
我們使用命令將這個(gè)文件導(dǎo)入到我們的手機(jī)中,然后導(dǎo)入進(jìn)行使用,比如:
我們使用命令:

scp -P 10010 .cy文件路徑 root@localhost:/usr/lib/cycript0.9 路徑下

然后我們按照上邊的命令進(jìn)行展示:


image.png

可見我們已經(jīng)把springBoard進(jìn)行展示出來 ,并且打印了一些信息了。

  • 怎樣封裝呢?
    1.首先我們使用subline text這個(gè)工具點(diǎn)擊右下角選擇javascript這個(gè)工具


    image.png

    然后我們輸入,固定格式


    image.png

    接下來我們配合我們的oc和js的相關(guān)的語法進(jìn)行完成。
  • 注意點(diǎn):
    1.其中有等號的需要加上分號。
    2.方法需要加上大括號。
    3.當(dāng)我們寫好我們的.cy文件,我們需要將我們當(dāng)前調(diào)試的app殺死,其次執(zhí)行我們遠(yuǎn)程拷貝文件的命令,然后我們再次打開我們要調(diào)試的app,然后在重新導(dǎo)入文件,輸入命令進(jìn)行相關(guān)的調(diào)試。

關(guān)于Cycript的路徑問題

我們一般拷貝的話 我們直接將我們的.cy文件直接放到/usr/lib/cycript0.9這個(gè)路徑下,其實(shí)我們可以看jay Freeman 這個(gè)作者他是自己創(chuàng)建了文件夾將自己寫的.cy文件放到了這個(gè)文件夾


image.png

其實(shí)如果按照正規(guī)來講我們也需要將我們的文件放到一個(gè)特殊的文件夾下來執(zhí)行。比如我可以這么放,我執(zhí)行這個(gè)命令

scp -P 10010 ~/Desktop/mjcript/mjcript.cy root@localhost:/usr/lib/cycript0.9/DG/

注意:我首先用ifunbox創(chuàng)建了一個(gè)DG文件夾,如果不自己創(chuàng)建我們這個(gè)命令是不能自動(dòng)創(chuàng)建的,那么接下來怎么引用呢,我以網(wǎng)易云音樂為例,用圖片的方式展示了:


image.png

關(guān)于mjcript怎么使用

第一參考李明杰老師的github簡介,第二的我們可以用subline text打開它,直接看里邊的方法
比如我截取其中的一部分:

    MJLoadFramework = function(name) {
        var head = "/System/Library/";
        var foot = "Frameworks/" + name + ".framework";
        var bundle = [NSBundle bundleWithPath:head + foot] || [NSBundle bundleWithPath:head + "Private" + foot];
        [bundle load];
        return bundle;
    };

    // keyWindow
    MJKeyWin = function() {
        return UIApp.keyWindow;
    };

    // 根控制器
    MJRootVc =  function() {
        return UIApp.keyWindow.rootViewController;
    };

我們就知道他里邊有MJRootVc(), MJKeyWin等等,還有我們現(xiàn)在已經(jīng)懂了cycript相關(guān)的東西 ,比如我修改網(wǎng)易的登錄按鈕、修改微信的錢包那就是很容易做到的了,我這里就不在贅述了,如果你還不明白,請看這個(gè)鏈接(http://www.itdecent.cn/p/4271bba925fb)這種的多的很。但是你要明白我們現(xiàn)在的修改都是在內(nèi)存中,如果你點(diǎn)擊了返回在進(jìn)來它還是會(huì)變回原來的樣子,怎樣長久的修改我會(huì)在以后的文章說道。但是需要大家注意:就拿修改微信余額來說就算我們在客戶端長久修改了他的余額但是服務(wù)器還是修改不了,我們只是針對客戶端,怎樣把服務(wù)器修改了那么就需要你研究他的算法來進(jìn)行破解,估計(jì)不是高手中的高手也破解不了一般如果不是黑客入侵他的數(shù)據(jù)庫,修改他內(nèi)部的東西是改不了的,但是黑客也入侵不了他的數(shù)據(jù)庫,如果你能入侵那么騰訊也該倒閉了,所以我們還是不要異想天開了,我們學(xué)習(xí)逆向就需要研究他內(nèi)部怎么實(shí)現(xiàn)的就行了。

Reveal

  • Reveal的安裝
    首先我們需要在我們的越獄手機(jī)上安裝一些插件,具體怎么做我用圖片的方式來進(jìn)行展示:
    第一步:
    image.png

    第二步:
    image.png

    注意:其中安裝Reveal Loader他中途會(huì)有一段卡頓的時(shí)間,不用重啟慢慢的等待它完成。
    第三步:
    image.png

    注意:
    1.當(dāng)我找我自己的iphone的時(shí)候發(fā)現(xiàn)沒有RHRevealLoader這個(gè)文件夾,那么這時(shí)候就需要自己創(chuàng)建一個(gè),然后將我們mac上的那個(gè)文件導(dǎo)入到這個(gè)文件夾下。
    2.我們知道reveal下載網(wǎng)站,但是人家是要錢或者免費(fèi)給你用幾天,我看到這個(gè)都不爽,所以我找了一個(gè)免費(fèi)版(不知道怎么就是不愿意花錢),https://pan.baidu.com/s/1lz9lwTKXD9bS8DnvT9gkBQ,提取碼為:b31u
  • reveal使用
    1.首先打開你要調(diào)試的app的界面(注意reveal只能查看ui)
    2.看我圖片顯示


    image.png

    最新版的reveal是支持wifi和usb調(diào)試的 ,但是我這個(gè)我看了下只支持usb
    如圖


    image.png

    這樣的話點(diǎn)擊左邊的框就可以看到他具體的結(jié)構(gòu)和層級關(guān)系了。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 我如何能遇見,那一年的秋山, 停靠在古道涼亭上的你, 回眸剎那,便牽動(dòng)心弦; 無聲細(xì)語,深情只停一瞬。 曾想著,走...
    鍍風(fēng)閱讀 258評論 0 5
  • 每一次中高層會(huì)議,都是一次精神上的洗禮和自我覺醒的過程。 有這樣一句話,我努力不是為了別的,而是為了我吃飯的時(shí)...
    騎魚去流浪閱讀 750評論 16 8
  • 在看《悟空傳》之前,我真的以為《西游記》就是一部展現(xiàn)孫悟空神通廣大的一部打打妖怪說說笑話那樣一個(gè)平庸的...
    你該是一棵樹閱讀 531評論 0 0

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