使用THEOS编写Tweak

特特特特特别强调,只用于技术交流,任何责任我都不想负~~
再特特特特特别强调,如果你一步一步跟着做,出现了任何问题,任何报错。不要急不要急,后面会有您想要的。

本例拦截某即时通讯软件?的手机登录页面中的登录点击事件。步骤如下:

  1. 打开终端,执行nic.pl,会出现12个选项。
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
复制代码
  1. 编写tweak,选择第11个,直接输入:
    $ 11
  2. 接下来会进行一系列初始化设置。

Project Name (required): //创建项目的唯一名字。
Package Name [com.yourcompany.wechatpwddemo]: //创建包的唯一ID,中括号中为默认选项,注意小写。
Author/Maintainer Name [马万旻]://创建者的名字
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]://需要注入的目标应用的Bundle ID(你要为哪个APP编写tweak)
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]://安装成功后杀掉的制定进程(SpringBoard就是我们正向开发中心心念念想控制的那个桌面?)

初始化成功后,会在当前目录中生成一个与你的Project Name同名的纯小写文件夹,子目录下有四个文件。

  • Makefile //makefile文件
  • Tweak.xm //编写代码的文件
  • WeChatPwdDemo.plist //plist文件,用于指定需要注入的目标文件的bundle id。
  • control //制定deb包的一些信息,包括名字、描述、版本号等。
  1. 拦截某即时通讯软件?的手机登录页面中的登录点击事件,通过分析,我们可以找到登录事件的响应方法,编辑Tweak.xm写入以下内容:
%hook WCAccountNewPhoneVerifyViewController
- (void)onNext {
	%orig;
	UIView *view = MSHookIvar<UIView *>(self,"_pwdView");
	UITextField *pwdTf = view.subviews[0].subviews[0];
	NSLog(@"\n\n\n\n\n\n\n\n%@\n\n\n\n\n\n\n\n\n", pwdTf.text);
}
%end
复制代码

在用户输入密码的时候,将会在控制台输出密码。

  1. 在生成的四个文件目录下,执行$ make,使用$ make message=yes可以看到Theos的内部处理细节。编译完成后,会生成一个隐藏的.theos文件夹和一个obj文件夹。
  2. 将其打包成deb。执行$ make package。完成后会生成一个packages文件夹,文件夹下会有一个deb包。
  3. 将deb文件安装到手机中,执行$ make install,这里会报错,需要在环境变量中设置,可以设置在makefile文件中,也可以设置在.zchrc/.bash_profile中。 这里的THEOS_DEVICE_IP和THEOS_DEVICE_PORT是ssh登录的IP和端口。
$ export THEOS_DEVICE_IP=127.0.0.1
$ export THEOS_DEVICE_PORT=12345
复制代码

安装完成后,会在设备的Library/MobileSubstrate/DynamicLibraries/查看到你的dylib和plist。以下方式可以查看日志:

  • 在Xcode->Window->Devices and Simulators选项,从控制台查看执行的log信息。
  • 运行brew install libimobiledevice命令,安装libimobiledevice命令工具。运行idevicesyslog | grep 关键字命令,查看日志。

在使用theos的时候,有几个坑,点这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值