最近逆向一个软件,无奈类名、方法名混淆的太厉害,class-dump后,很难猜出大致是哪个方法在起作用。用reveal 和 cycript 找到了viewcontrol 类,但类方法太多,还是不能确定是哪个方法被调用了。尝试为方法下断点,结果下了好几个都没有断下来。因此想到了用logify为指定类的每个函数写hook 方法,用theos生成tweak。

logify使用方法比较简单,安装theos后,在bin目录下就有logify.pl。相应的用法比较简单,在此不做说明。

thoes使用网上教程也很多。

本文主要把我需要的障碍做下表述:

1、设置环境变量,可以每次在终端上运行

export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH

但这样比较麻烦,可以#vi /etc/profile,在这个文件中加上以上命令,重新打开终端,环境变量就生效了。这样就无需每次要去终端里export环境变量了。

2、运行nic.pl时,选择11,

 tong:Applications xxxxxxx$ nic.pl
NIC . - New Instance Creator
------------------------------
[.] iphone/activator_event
[.] iphone/application_modern
[.] iphone/cydget
[.] iphone/flipswitch_switch
[.] iphone/framework
[.] iphone/ios7_notification_center_widget
[.] iphone/library
[.] iphone/notification_center_widget
[.] iphone/preference_bundle_modern
[.] iphone/tool
[.] iphone/tweak
[.] iphone/xpc_service
Choose a Template (required):
Project Name (required): mytweak
Package Name [com.yourcompany.mytweak]: com.mycompany.mytweak
Author/Maintainer Name [xxx]: wu
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.apple.Security
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: -

这其中,MobileSubstrate Bundle filter 是指本插件需要作用的app 的id,在plist 中可以找到。如果需要作用于所有app,那么需要

com.apple.Security。
Insert your tweak into all processes

Leaving the filter plist file empty and simply deleting the file no longer work. The new solution would be modifying the filter plist to: { Filter = { Bundles = ( "com.apple.Security", ); }; } Since all processes will import Security.framework implicitly, your tweak can now hook into all processes​[:wink:]”

3、将 logify生成的tweak.xm文件替换nic.pl生成的tweak.xm文件。
执行命令make,如果make后 要重新make,只需要先执行make clean即可。 4、打包,执行make package。

logify与theos的二三事的更多相关文章

  1. Java并发编程二三事

    Java并发编程二三事 转自我的Github 近日重新翻了一下<Java Concurrency in Practice>故以此文记之. 我觉得Java的并发可以从下面三个点去理解: * ...

  2. linux杂记(十二?) 关于账号和密码的二三事

    关于密码的二三事 关于账号和密码的二三事 久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒).那么今天就来谈谈关于linux密码和账号的重要概念. 假如你的主机遭到入侵,那么对方的第一个侵入 ...

  3. MySQL5.7关于密码二三事

    MySQL5.7关于密码二三事 第一个:update user set password=password('root') where user='root' and host='localhost' ...

  4. Java中的匿名内部类及内部类的二三事

    匿名内部类适合创建那些只需要使用一次的类,它的语法有些奇怪,创建匿名内部类会立即创建一个该类的实例,这个类定义立即消失,且不能重复使用. 定义匿名类的格式如下: new 实现接口() |父类构造器(实 ...

  5. Emacs 启动优化二三事

    Emacs 启动优化二三事 */--> div.org-src-container { font-size: 85%; font-family: monospace; } p {font-siz ...

  6. WinForm二三事(三)Control.Invoke&Control.BeginInvoke

    http://www.cnblogs.com/yuyijq/archive/2010/01/11/1643802.html 这个系列从2009年写到2010年,差点又成太监文.随着WPF/Silver ...

  7. iOS7下滑动返回与ScrollView共存二三事

    [转载请注明出处] = =不是整篇复制就算注明出处了亲... iOS7下滑动返回与ScrollView共存二三事 [前情回顾] 去年的时候,写了这篇帖子iOS7滑动返回.文中提到,对于多页面结构的应用 ...

  8. 一只代码小白git托管路上的二三事

    [经验]一只代码小白git托管路上的二三事 写在前面的话 寒假的时候,娄老师给我们布置了代码托管的作业,并要求把托管地址发给学委.因假期的时候没有带电脑回家,所以只是在手机上草草注册了,也稀里糊涂就将 ...

  9. YTU 1008: 童年生活二三事

    1008: 童年生活二三事 时间限制: 1000 Sec  内存限制: 64 MB 提交: 842  解决: 592 题目描述 Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去. ...

随机推荐

  1. 详解Android Activity---启动模式

    相关的基本概念: 1.任务栈(Task)   若干个Activity的集合的栈表示一个Task.   栈不仅仅只包含自身程序的Activity,它也可以跨应用包含其他应用的Activity,这样有利于 ...

  2. Java--回调接口

    回调接口: 我们都知道,一个线程在运行中,遇到一个耗时操作(方法)时,会开启另外一个线程,即所谓 -- 异步 .java中 回调接口 也必然应用与异步加载. 所谓 回调接口 ,也就是线程运行中 遇到一 ...

  3. 基于GTID的Mysql-Mha高可用方案探索

    声明: 本篇文章内容整理来源于互联网以及本人自己的梳理总结,目的是从零到一的搭建起来mysql mha高可用架构. 一.软件概述 MHA(Master High Availability)目前在MyS ...

  4. spring boot 读取配置文件信息

    1.读取application.properties @Component @ConfigurationProperties(prefix="images.product.column&qu ...

  5. 关于net mail组件ssl端口问题

    最近开发一个项目使用到.net mail组件发送邮件.在开发环境中一切正常,可是部署到阿里云服务器上死活发送不出去,一直连接不上,或者报语法错误. 然后是各种折腾,各种测试,最后发现,使用ssl的时候 ...

  6. 计算机网络之应用层_part -1

    应用层协议原理 一.网络应用程序体系结构 网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种: 1.客户--服务器体系结构: 有一个总是打开的主机(称为 ...

  7. 【mysql】常用操作

    2.mysql service mysql status mysql --version mysql -h 服务器主机地址 -u 用户名 -p 用户密码 exit  退出 mysql -h 主机名 - ...

  8. hive配置过程中出现的一个问题

    执行hive里面的insert语句的时候,报错,执行失败查看hadoop的日志文件之后发现错误的详细信息如下: 把hdfs-site.xml中的hadoop.tmp.dir这个属性添加到core-si ...

  9. 基于Vivado调用ROM IP core设计DDS

     DDS直接数字式频率合成器(Direct Digital Synthesizer) 下面是使用MATLAB生成正弦波.三角波.方波的代码,直接使用即可. t=:*pi/^:*pi y=0.5*sin ...

  10. PHP环境搭建——Apache

    1.PHP环境安装前我们需要知道PHP给我们带来的功能是什么? Php主要用在三个领域 (1)       网站和web应用程序 (2)       命令行脚本 (3)       桌面(GUI)应用 ...