使用Logify跟踪函数调用
2016-08-01 本文已影响1802人
西博尔
1.准备工作
1.创建一个工程
我的demo:CycriptTest , 工程里面写几个方法就够了, 主要是用来测试方法的响应 , 最好写几个可以触发的那种方法
2.安装应用到手机
1.直接运行我(你)的工程
2.生成ipa,重签名 ,安装到手机上
3.dump头文件
class-dump -H YourIPA -o Header
4.logify.pl 生成Tweak.xm
我使用的是我自己工程下面的LoginViewController
Logify.pl脚本在你安装theos的时候就自带了
所以:
/opt/theos/bin/logify.pl LoginViewController.h >Tweak.xm
____________________________________________________
localhost:~ DH$ cd /Users/DH/Desktop/CycriptTest
localhost:CycriptTest DH$ /opt/theos/bin/logify.pl /Users/DH/Desktop/CycriptTest/Header/LoginViewController.h >Tweak.xm
localhost:CycriptTest DH$
如果要跟踪多个头文件,则继续转换:/opt/theos/bin/logify.pl 其它头文件 >> Tweak.xm 注意中间是 >>
.
.
5.查看你的Tweak.xm
111.png6.创建theos工程
localhost:CycriptTest DH$ /opt/theos/bin/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): TrackFunction
Package Name [com.yourcompany.trackfunction]: com.coralsec
Author/Maintainer Name [小伍]: 小xiaowu
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.coralsec.cycriptest
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: CycriptTest
Instantiating iphone/tweak in trackfunction/...
Done.
localhost:CycriptTest DH$
最后一个我写的是我工程的可执行文件的名字, 为了是在安装了插件之后能直接关闭, 要不还要自己手动关闭重新打开
7.替换Tweak.xm
用我们刚才生成的Tweak 替换刚才创建的theos项目的Tweak.xm
8.编译打包安装
记得在MakeFile中添加
THEOS_DEVICE_IP = 192.168.1.24
ding_FRAMEWORKS=UIKit Foundation
直接在有MakeFile界面的文件夹下 make package install
报错了
==> Error: /Applications/Xcode.app/Contents/Developer/usr/bin/make install requires that you set THEOS_DEVICE_IP in your environment.
显然是没指定设备ip
localhost:trackfunction DH$ export THEOS_DEVICE_IP=192.168.1.24
修改方案
ssh: connect to host 192.168.1.24 port 22: Host is down
make: *** [internal-install] Error 255
又有错误了, 没发现进程, 找不到CycriptTest
No matching processes were found
make: *** [after-install] Error 1
修改方案
, 把CycriptTest 打开就好了, 或者把MakeFile里面的kill -9 那段话都删掉
9.打开Xcode->Window->Devices 选择你的设备
触发界面的方法就会看到log信息了
如果发现没有成功, 点击方法没有输出log
检查一下几点
1.hook的函数是否正确
2.hook的类是否写正确
3.如果还不行 ,就去文件系统/Library/MobileSubstrate/DynamicLibraries中找到 之前便携过的dylid删掉