使用THEOS编写Tweak

使用THEOS编写Tweak再特特特特特别强调,如果你一步一步跟着做,出现了任何问题,任何报错。不要急不要急,后面会有您想要的。 打开终端,执行nic.pl,会出现12个选项。 接下来会进行一系列初始化设置。 初始化成功后,会在当前目录中生成一个与你的Project Name同名的纯小写文件夹,子目录下有…

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

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

  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的时候,有几个坑,点这里

今天的文章使用THEOS编写Tweak分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/20005.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注