使用Logify跟踪函数调用

###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

#####6.创建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删掉

复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值