美文网首页
创建第一个钩子程序

创建第一个钩子程序

作者: b485c88ab697 | 来源:发表于2016-06-07 17:32 被阅读418次

什么是tweak(钩子)程序

创建第一个钩子程序

  • 创建工程

    • 选择tweak
    • 输入tweak工程名
    • 输入deb包的名称(Bundle identifier)
    • 输入作者名称
    • 输入tweak应用对象 com.apple.springboard
    • 输入tweak安装完成后需要重启的应用SpringBoard
  • 工程说明

    • Makefile 文件制定工程用到的文件,框架,库等信息,将整个过程自动化

    • 导入公共库
      include $(THEOS)/makefiles/common.mk

    • 设置工程名
      TWEAK_NAME = 工程名

    • tweak包含的源文件,多个文件以空格分隔(可以按需求修改)
      工程名_FILES = Tweak.xm

    • 安装工程后执行脚本
      install.exec "killall -9 SpringBoard"

    • 指定处理器架构
      ARCHS = arm7 arm 64

    • 指定SDK版本
      TARGET = iphone:lastest:8.0

    • 导入framework
      工程名_FRAMEWORKS = UIKit

    • 链接Mach-O对象
      工程名_LDFLAGS = -lz -lsqlite3.0

    • 设置THEOS_DEVICE_IP环境变量,方便安装
      THEOS_DEVICE_IP =

  • tweak.mx文件说明

  • 后缀“x”表示支持Logos和C语言,后缀“mx”表示支持Logos和C/C++/Object-C语法

  • 介绍Logos语法

    • %hook 指定需要hook的class,必须以%end结尾
    • %log 该指令在%hook内部使用。将函数的类名,参数等信息写入syslog
    • %orig 该指令在%hook内部使用。执行被构筑的函数的原始代码,如果去 掉%orig那么原始代码就不会被调
    • %group 代码分组
    • %init 代码初始化
    • %ctor 构造方法
    • %new 在hook的class创建新方法
    • 内部使用class_addMethod运行时构建
    • Category与class_addMethod区别,前者是静态的,后者是动态的,编译时会找不到该类,但是hook的类又是app中的类,所以要用动态创建
    • %c 该指令的作用等同于objc_getClass或者NSClassFromString,即动态获取一个类的定义,在%hook或%ctor内使用
  • control 文件记录了deb包管理系统所需的基本信息,会被打包进deb包里。会在Cydia中看到

  • project.plist 这个plist文件的作用和App中的Info.plist了类似,它记录了一些配置信息,描述了tweak的作用范围,比如hook哪个app Filter下是一个array,可以分为3类

    • Bundles,指定若干bundle为tweak作用对象
    • Classes,指定若干class为tweak的作用对象
    • Executables,指定若干个可执行文件为tweak的作用对象
  • 编译,打包,安装,清理

    • 编译执行 make
    • 打包 make package
    • 安装 make package install
    • 清理 make clean
  • 制作开发脚本

满地打滚卖萌求赞,如果本文帮助到你,轻点下方的红心,给作者君增加更新的动力。

相关文章

  • 创建第一个钩子程序

    什么是tweak(钩子)程序 创建第一个钩子程序 创建工程选择tweak输入tweak工程名输入deb包的名称(B...

  • react的生命周期

    react的生命周期函数(钩子) 三个阶段 创建阶段 运行和交互阶段 卸载阶段 第一个阶段: 创建阶段 const...

  • 微信小程序开发|文件类型与目录结构

    微信小程序开发从基础走起,本文介绍小程序开发的文件类型与目录结构。 创建你的第一个小程序 创建你的第一个小程序还是...

  • linux服务器上svn的相关操作

    创建仓库配置文件主目录 创建仓库配置文件分目录,可创建多个 创建仓库 钩子文件内容 给钩子文件权限 服务器上需要先...

  • 1.HelloWorld

    创建第一个程序 创建 File - New - Java Project - Project Name 右键src...

  • 源码时代H5前端小课堂:小程序交互中的下拉刷新

    在小程序中onLoad生命钩子只在页面创建时调用一次,在做navigateTo页面跳转后,返回上级页面,由于nav...

  • iOS逆向0011--HOOK(一)-原理

    一、HOOK概述 HOOK(钩子) 其实就是改变程序执行流程的一种技术的统称! 一、什么是钩子hook 二、钩子的...

  • 分析Dapr第一个程序

    按照官网的示例创建第一个Dapr程序。创建一个控制台程序,安装程序包Dapr.Client,修改代码如下: 然后,...

  • jenkins+svn持续集成环境搭建

    1.系统结构总述 创建虚拟机安装Linux系统 subversion服务器 项目对应版本库 版本库中钩子程序 1....

  • SetWindowsHookEx

    SetWindowsHookEx 将应用程序定义的钩子过程安装到钩子链中.您将安装一个挂钩程序来监视系统的某些类型...

网友评论

      本文标题:创建第一个钩子程序

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