日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ios逆向工具theos安装和使用tweak替换和卸载

發(fā)布時(shí)間:2023/12/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios逆向工具theos安装和使用tweak替换和卸载 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 安裝brew
  • 添加環(huán)境變量
  • 安裝 theos
  • 如果遞歸安裝報(bào)錯(cuò) 443 沒(méi)有權(quán)限下載,請(qǐng)查看我寫的這篇文章,可以幫你分開(kāi)下載子模塊
  • 新建theos項(xiàng)目
  • usb ssh登錄手機(jī)root賬戶
  • 獲取app的bundleID
  • 執(zhí)行theos指令nic.pl
  • hook功能選擇tweek
  • 設(shè)置hook文件
    • 設(shè)置makefile文件
  • 使用frida脫殼app
  • 使用frida脫殼成功以后獲得脫殼后使用class-dump導(dǎo)出.h頭文件
  • 使用Reveal 定位要改的視圖class名字
  • 把hook代碼寫入帶app中
  • 把上面的編譯安裝操作編寫成sh腳本
  • 添加環(huán)境變量的方法:
  • 刪除掉hook代碼

安裝brew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

使用brew安裝 ldid

brew install ldid

添加環(huán)境變量

open ~/.zshrc

注意,mac新版系統(tǒng)環(huán)境變量不再是~/.bash_profile

在文件里添加一行,新建環(huán)境變量THEOS,讓這個(gè)變量等于你硬盤下存儲(chǔ)theos的文件路徑,例如我存到下面的路徑里,PATH是把theos安裝文件夾下的bin當(dāng)做默認(rèn)可執(zhí)行目錄,在任意位置都能執(zhí)行theos文件夾下bin下的文件,
因?yàn)檫@個(gè)bin目錄下的nic.pl會(huì)創(chuàng)建文件到bin目錄下,并且bin目錄下不允許用nic.pl創(chuàng)建文件,所以要把bin目錄添加的PATH環(huán)境變量,這樣就可以在其他文件夾下執(zhí)行bin下的文件nic.pl了

export THEOS=/Volumes/SN7501T/越獄相關(guān)代碼/theos export PATH=$THEOS/bin:$PATH 冒號(hào):$PATH是引用以前的PATH值,冒號(hào)是添加 把冒號(hào)左邊的添加到PATH里面,如果不加:$PATH,就會(huì)把$PATH覆蓋

讓文件~/.zshrc生效

source ~/.zshrc

安裝 theos

使用遞歸下載 git clone --recursive加github地址 加剛才的環(huán)境變量$THEOS,把theos 下載到你的硬盤上

git clone --recursive git@github.com:theos/theos.git $THEOS

如果遞歸安裝報(bào)錯(cuò) 443 沒(méi)有權(quán)限下載,請(qǐng)查看我寫的這篇文章,可以幫你分開(kāi)下載子模塊

git clone --recursive遞歸下載github出現(xiàn)443子模塊無(wú)權(quán)限下載的解決方法
安裝完以后,因?yàn)樯厦嬖O(shè)置了環(huán)境變量$PATH,所以現(xiàn)在在任何目錄下,都可以執(zhí)行nic.pl指令,注意這個(gè)指令不要再theos文件夾下執(zhí)行

新建theos項(xiàng)目

安裝好以后執(zhí)行在任意目錄下執(zhí)行.theos/bin目錄下不能執(zhí)行這條命令,會(huì)提示在你其他目錄新建項(xiàng)目

nic.pl

出現(xiàn)下面界面代表已經(jīng)安裝成功

usb ssh登錄手機(jī)root賬戶

運(yùn)行要hook的app ,例如下面這個(gè)app neteasemusic

cycript -p neteasemusic

獲取app的bundleID

[NSBundle mainBundle].bundleIdentifier

獲得id :com.netease.cloudmusic

執(zhí)行theos指令nic.pl

在mac端新建一個(gè)文件夾,在里面輸入命令

nic.pl

會(huì)列出一個(gè)列表

tdw@tdwdeMini-m1 hook % nic.pl NIC 2.0 - New Instance Creator ------------------------------[1.] iphone/activator_event[2.] iphone/activator_listener[3.] iphone/application_modern[4.] iphone/application_swift[5.] iphone/control_center_module-11up[6.] iphone/cydget[7.] iphone/flipswitch_switch[8.] iphone/framework[9.] iphone/library[10.] iphone/notification_center_widget[11.] iphone/notification_center_widget-7up[12.] iphone/preference_bundle_modern[13.] iphone/theme[14.] iphone/tool[15.] iphone/tool_swift[16.] iphone/tweak[17.] iphone/tweak_with_simple_preferences[18.] iphone/xpc_service[19.] iphone/xpc_service_modern Choose a Template (required):

hook功能選擇tweek

選擇 iphone/tweak的位置 輸入16

Project Name (required): 是自己起的項(xiàng)目名: music
Package Name 是你自己起的bundle名字
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: 這個(gè)輸入上面用cycript獲取的要破解的app的bundleID
下面的都輸入回車就行了,顯示如下,出現(xiàn)Done.代表新建項(xiàng)目完成

Project Name (required): music //自己起的項(xiàng)目名 Package Name [com.yourcompany.music]: com.tdw.music //自己起的包名 Author/Maintainer Name [譚迪文]: [iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.netease.cloudmusic //app原來(lái)的bundle ID [iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: Instantiating iphone/tweak in music/... Done.

建立好以后這個(gè)文件夾是這樣出來(lái)4個(gè)文件,如下圖:

設(shè)置hook文件

設(shè)置makefile文件

用Sublime Text打開(kāi)Makefile文件,添加2個(gè)環(huán)境變量,因?yàn)橛胾sb鏈接的,所以就填寫localhost的本機(jī)ip:127.0.0.1 ,端口是usb映射的端口,我映射的是20000

export THEOS_DEVICE_IP=127.0.0.1 export THEOS_DEVICE_PORT=20000


也可以把這兩行添加到環(huán)境變量里,這樣就不需要每次makefile都添加這2行了

open ~/.zshrc

然后再里面添加這2行,再讓文件生效

source ~/.zshrc

修改
打開(kāi)Tweak.x文件,把里面開(kāi)頭結(jié)尾的注釋符號(hào)手動(dòng)去掉,然后選擇objective-C查看文件,如下圖

使用frida脫殼app

我寫的這篇文章內(nèi)容詳細(xì)寫了如何脫殼
ios脫殼工具frida使用教程和各種踩坑總結(jié)(app store可用脫殼)
是否需要脫殼,請(qǐng)直接查看上面這篇文章最下面,使用otool macho-文件名 -l | grep crypt 指令查看app是否加密
使用frida之后會(huì)在frida-ios-dump-master文件夾下獲得.ipa文件如下圖
把.ipa文件重命名為.zip文件,然后解壓縮,如下圖

在解壓縮之后的文件夾下會(huì)找到脫殼后的包.
用終端進(jìn)入這個(gè)包的目錄,執(zhí)行命令

class-dump -H 包名 -o 導(dǎo)出目錄名

例如:
class-dump -H neteasemusic -o headers

使用frida脫殼成功以后獲得脫殼后使用class-dump導(dǎo)出.h頭文件

我在下面這篇文章中寫了如何使用class-dump導(dǎo)出.h文件
ios逆向工具Class-dump的安裝和導(dǎo)出.h文件的教程
執(zhí)行class-dump后,會(huì)在包的目錄下找到,我們導(dǎo)出的目錄headers,里面有這個(gè)app的.h頭文件,如下圖:

使用Reveal 定位要改的視圖class名字

reveal的使用教程請(qǐng)查看我寫的下面這篇文章
ios逆向視圖查看器Reveal安裝和使用教程
例如,我要改的視圖是這個(gè)class: NMHomeBannerEntityCell

我把上面用class-dump導(dǎo)出的.h文件中找到這個(gè).h文件,把所有.h文件的文件夾拖拽進(jìn)Sublime Text中,然后command+p,搜索:NMHomeBannerEntityCell.
查找到NMHomeBannerEntityCell.h文件
在里面,找到,我要改的方法,例如我修改init方法

- (id)initWithFrame:(struct CGRect)arg1;

我把,類名NMDiscoveryBannerView,復(fù)制進(jìn)theos創(chuàng)建的Tweak.x文件中的%hook 后面,代表要hook的class名,刪掉文件中的其他方法,再?gòu)?fù)制剛才.h文件中要改的方法名,在這個(gè)方法名,寫入你自己要修改的方法.我在下面方法里面添加一個(gè)紅色的view,在里面加了一個(gè)label文字

%hook NMDiscoveryBannerView - (id)initWithFrame:(struct CGRect)arg1{return nil; } %end

把hook代碼寫入帶app中

確保此時(shí) usb連接越獄手機(jī)的root賬戶沒(méi)有斷開(kāi),如果斷開(kāi)重新連接
.在mac上theos創(chuàng)建的Makefile文件所在的項(xiàng)目文件夾下,終端執(zhí)行 make編譯文件

make

執(zhí)行生成deb包的指令make package包含了 make的編譯操作,所以第一步make可以省略

make package

安裝到手機(jī)中

make install

會(huì)提示是否安裝輸入yes
安裝完以后會(huì)在手機(jī)目錄下出現(xiàn)兩個(gè)文件,文件名字就是你起的項(xiàng)目名,例如下圖用ifunbox查看多了2個(gè)文件:
music.dylib
music.plist

每次啟動(dòng)app都會(huì)加載這2個(gè)文件,執(zhí)行自己hook代碼代替原來(lái)app的方法

把上面的編譯安裝操作編寫成sh腳本

make clean是清除之前編譯結(jié)果,要不然如果代碼沒(méi)改變,就不會(huì)重新編譯.
把下面的代碼存入到 .sh文件中,例如保存成:theos.sh
debug 版本

make clean && make package && make install

release 版本

make clean && make package debug=0 && make install

然后把這個(gè)theos.sh的文件所在路徑添加到環(huán)境變量中,就可以在任何地方執(zhí)行這個(gè)theos.sh文件

添加環(huán)境變量的方法:

open ~/.zshrc

然后在里面添加一行,例如theos.sh文件的所在位置是JailBreak

export PATH="JailBreak:$PATH"

然后讓.zshrc文件生效

source ~/.zshrc

刪除掉hook代碼

刪掉 手機(jī)目錄 Device/Library/MobileSubstrate/DynamicLibraries 下面的上面2個(gè)文件,啟動(dòng)app的時(shí)候就不會(huì)加載hook代碼,而是變成默認(rèn)的app

總結(jié)

以上是生活随笔為你收集整理的ios逆向工具theos安装和使用tweak替换和卸载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。