一、tweak 工程

  1、创建步骤

    a) terminal cd 到想要存放项目的目录下

    b) 按图步骤完成即可

  


二、工程文件描述

  1、control

    记录 deb 包管理系统所需的基本信息。

  2、appInfo.plist 描述 tweak 的作用范围,以下可混合使用

    a)  bubdles,tweak 控制的应用 bundle id

    b) classed, tweak 控制的 class

    c) executables tweak 控制的

  注意:如果 Filter 下的类别超过一个,需要加上 "Mode String Any"

  3、makefile  

    a) ProjectName = Tweak.xm,多个文件的时候改为 "= Tweakxm New.mm Objc.m"  

    b) ProjectName_FRAMEWORKS = UIKit 所依赖的框架

    c) 指定 ios sdk 版本,安装要求的版本

      下面两段意思是: 开发框架为 armv7,采用 7.1 版本的 sdk,且发布要求在 ios 7.1以上版本。    

ARCHS = armv7
TARGET = iphone:7.1:7.1

    d) 安装的时候需要指定设备的 ip address,故在最上面加上

THEOS_DEVICE_IP = 192.168.2.117

    

  4、Tweak.xm

    a) %hook

%hook ClassName

// 要 hook 的方法名

%end

  b) %log, 多个表达的时候加上 ","

%log((NSString*)@"abc", (NSString*)@"efg");

  c) %orig:调用原来的方法

  d) %group: 将 hook 分组, 如果不指定默认是 %group _ungrouped

%group name
% hook className %end
%end

  e) %init(groupName): 不带参数等价于 %init(_ungrouped)

  f) %ctor {}: tweak 的构造完成初始化工作。

%ctor {
%init; // 如果此处没有初始化 _ungrouped,则所有属于 _ungrouped 的 hook 将不工作。
%init(custom group);
}

  

  


三、部署和安装

  a) cd 到项目目录

  b) make:编译操作

    多次后会有提示  "make[2]: Nothing to be done for ",执行 "$ make clean"

  c) make package:打包

    出现错误:

Making stage for tweak FirstTweak...

/Applications/Xcode.app/Contents/Developer/usr/bin/make package requires you to have a layout/ directory in the project root, containing the basic package structure, or a control file in the project root describing the package.

make: *** [internal-package] Error 1

    原因:文件路径含有空格

  d) 在 makefile 中填写好设备的 ip address,并 ssh 连接设备 "$ ssh root@192.168.2.117" 再执行 "make package install" 。


四、清理编译打包产生的工程文件

$ make clean

$ rm -rf ./obj

$ rm -rf /Users/...../tweak project/_

  

Theos 工程的更多相关文章

  1. Theos 工程make package时报错

    错误: /Applications/Xcode.app/Contents/Developer/usr/bin/make package requires you to have a layout/ d ...

  2. iOS逆向之TheOS

    TheOS 被设计为一个在基于 Unix 平台 (Mac OS X.IOS…) 和大多数 的Linux 平台下开发 iOS 程序的集成开发环境.说是集成开发环境,其实就是给我们准备好了一些代码模板.预 ...

  3. 第一次使用theos自己遇到的坑

    这里自己遇到的一些问题,总结一下: 第一个问题建立好theos工程后make出现 xcrun: error: SDK "iphoneos" cannot be located xc ...

  4. iOS 调用私有函数安装app 卸载 app

    1.环境 1.OS X EI Caption 10.11.1 & Xcode 7 2.Xcode安装Command Line Tools 3.iPhone 安装AppSync 2.Mobile ...

  5. 教你动手做一个 iOS 越狱 app

    前言 俗话说得好, 万事开头难. 仅仅是上图一个如此简单地不能再简单的小app, 其实都不算是app, 只是注入了一段代码进系统中, 等到特定的函数方法调用的时候就会被我们hook掉, 执行我们写的代 ...

  6. 《九阴真经:iOS黑客攻防秘籍》新书发布

    本书内容易于理解,可以让读者循序渐进.系统性地学习iOS安全技术.书中首先细致地介绍了越狱环境的开发与逆向相关工具,然后依次讲解了汇编基础.动态调试.静态分析.注入与hook.文件格式,最后为大家呈现 ...

  7. iOS逆向工程之Theos

    如果你对iOS逆向工程有所了解,那么你对Tweak并不陌生.那么由Tweak我们又会引出Theos, 那么什么是Theos呢,简单一句话,Theos是一个越狱开发工具包,Theos是越狱开发工具的首先 ...

  8. THEOS makefile

    转自https://www.h4ck.org.cn/2013/07/theos-makefile/ theos的makefile写法与其他linux/unix环境下的makefile写法大同小异,但是 ...

  9. theos的makefile写法

    theos的makefile写法与其他linux/unix环境下的makefile写法大同小异,但是对于makefile不熟悉的在导入一些dylib或者framework的时候就会变得很蛋疼. 对于f ...

随机推荐

  1. 设计模式--单例模式Singleton(创建型)

    单例模式很显然是定义一个类,这个类在程序中只有唯一的实例对象.一般单例类的构造函数是私有的,只能通过调用静态函数GetInstance来获取实例. 一.单例模式有三种:懒汉式单例.饿汉式单例.登记式单 ...

  2. ubuntu下安装chrome

    首先.题主在试过直接ubuntu终端命令安装chrome失败. 把经历过的错误稍微提一下: 在终端输入 下载安装包 sudo wget https://dl.google.com/linux/dire ...

  3. Scrapy003-项目流程

    Scrapy003-项目流程 @(Spider)[POSTS] 前两篇文章我们了解到Scrapy的原理和安装的相关知识,这节就需要知道创建项目流程的小知识. 根据官方文档:http://scrapy- ...

  4. 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(七)

    假如你有一个购物类的网站,那么你如何给你的客户来推荐产品呢?这个功能在很多电商类网站都有,那么,通过SQL Server Analysis Services的数据挖掘功能,你也可以轻松的来构建类似的功 ...

  5. 3.Java异常进阶

    3.JAVA异常进阶 1.Run函数中抛出的异常 1.run函数不会抛出异常 2.run函数的异常会交给UncaughtExceptionhandler处理 3.默认的UncaughtExceptio ...

  6. OpenCv全景图像拼接

    http://my.oschina.net/xiaot99/blog/226589 http://blog.csdn.net/chenjiazhou12/article/details/2282548 ...

  7. Linux下定时任务配置-crontab

    实际中经常有一些任务需要定期执行,人工操作比较麻烦,如果定时执行将会省去很多人力,还可以在一些资源占用不多的时间段执行,linux下crontab命令就实现了这一便捷的功能,实现脚本的自动化运行. 常 ...

  8. ACM: FZU 2102 Solve equation - 手速题

     FZU 2102   Solve equation Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

  9. linux errno使用

    errno详解 http://blog.csdn.net/wang_517766334/article/details/7561495 #include <errno.h> 就可以直接打印 ...

  10. .Net 4.5 的async 和await 的简单理解使用

    原文地址:http://www.cnblogs.com/HJL-Blog/p/4432632.html 所谓的异步编程是利用CPU空闲时间和多核的特性,它所返回的Task或Task<TResul ...