使用Logify跟踪函数调用

作者: 西博尔 | 来源:发表于2016-08-01 19:09 被阅读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.png
    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删掉
    
    

    相关文章

      网友评论

      • 胡言乱语_d043:logify.pl 生成Tweak.xm的时候报错
        No such file or directory at /opt/theos/bin/logify.pl
        line 23.
      • 范少:请问当要到处的头文件,引用了系统类库外的库,该怎么处理呢?
        类似下面的错误
        Tweak.xm:23:175: error: unknown type name 'BadRoomLogicController'
        西博尔:只要你有.h文件, 就能批量处理 , 没太理解你的

      本文标题:使用Logify跟踪函数调用

      本文链接:https://www.haomeiwen.com/subject/gvxfsttx.html