1TweakStartUp - 喜马拉雅FM去广告
Sun, May 6, 2018
思路
- Reveal查看广告控件
- 处理
- 方案一:用cycript把这个控件干掉
- 问题:不彻底,只是在内存中干掉了
- 方案二:把这个View的init方法的实现hook掉,直接return nil;
- 通过class-dump找到这个View的头文件
- 通过class-dump找到这个View的头文件
- 方案一:用cycript把这个控件干掉
hook的简单实现
Theos工具
作用:实现比较简单的hook操作
使用原理
编写的hook代码 → deb插件 → 安装到手机上 → 修改宿主函数
安装方法
安装签名工具ldid
$ brew install ldid |
添加theos路径到环境变量
export THEOS=~/theos export PATH=$THEOS/bin:$PATH # 把命令路径扔给PATH环境变量 #不能PATH=$THEOS/bin这样写,会把之前的PATH都覆盖掉了 :为分隔符 $PATH 引用以前的环境变量 |
下载theos
git clone --recursive https://github.com/theos/theos.git $THEOS // 递归clone依赖的库 |
基本使用
前置 - 环境变量配置
需要使用nic.pl这个文件创建一个项目 - 记得确认PATH环境变量已经配好了
使用
➜ Desktop nic.pl NIC 2.0 - New Instance Creator ------------------------------ [1.] iphone/activator_event [2.] iphone/application_modern [3.] iphone/cydget [4.] iphone/flipswitch_switch [5.] iphone/framework [6.] iphone/ios7_notification_center_widget [7.] iphone/library [8.] iphone/notification_center_widget [9.] iphone/preference_bundle_modern [10.] iphone/tool [11.] iphone/tweak [12.] iphone/xpc_service Choose a Template (required): 11 Project Name (required): Momotweak Package Name [com.yourcompany.momotweak]: com.azen.momotweak Author/Maintainer Name [Azen Xu]: [iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.maimemo.ios.momo // 此处需要填写目标Hook app的bundle id [iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: Instantiating iphone/tweak in momotweak/... Done. |
修改文件
# makefile文件,需要指定下关联手机的端口号 和 IP号 export THEOS_DEVICE_IP=127.0.0.1 # 配置连接手机的端口 export THEOS_DEVICE_PORT=38438 # 配置连接手机的端口 include $(THEOS)/makefiles/common.mk TWEAK_NAME = Momotweak Momotweak_FILES = Tweak.xm include $(THEOS_MAKE_PATH)/tweak.mk after-install:: install.exec "killall -9 SpringBoard" # 安装之后,重启SpringBoard |
hook目标方法
编译tweak文件
make
打包成deb
make package
安装
make install # 会自动将deb通过makefile中指定的环境变量IP:PORT安装到手机上
报错与解决
Can't locate IO/Compress/Lzma.pm | https://www.jianshu.com/p/866c7418d506 |