最近逆向一个软件,无奈类名、方法名混淆的太厉害,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. Jenkins设置svn授权

    1.问题引入 在job的scm部分,subversion modules/credentials出现错误 "Unable to access https://xxx/code : svn: ...

  2. Java基础语法<九> 接口与内部类

    1 接口  interface implement 接口的所有方法自动地属于public.因此,在接口中声明方法时,不必提供关键字public.   接口可以包含多个方法,接口中可以定义常量.接口中的 ...

  3. 2,返回Json

    一,使用Spring Boot默认Json解析框架jackson 1,创建一个实体类Persion package com.zh.json; public class Persion { privat ...

  4. H5读取本地文件操作

    H5读取本地文件操作 本文转自:转:http://hushicai.com/2014/03/29/html5-du-qu-ben-di-wen-jian.html感谢大神分享. 常见的语言比如php. ...

  5. 浅谈javascript中的call与apply方法

    call方法与apply方法都是为了改变函数体内部this的指向. call方法与apply方法,这二者的作用完全一样,只是接受参数的方式不太一样. apply()方法: Function.apply ...

  6. 【canvas学习笔记一】基本认识

    <canvas>标签定义了一块画布,画布可以在网页中绘制2D和3D图象,现在先学习如何绘制2D图象,绘制3D图象属于WebGL的内容(也就是网页版的OpenGL,3D图形接口). 属性 & ...

  7. Python爬虫初学(二)—— 爬百度贴吧

    Python爬虫初学(二)-- 爬百度贴吧 昨天初步接触了爬虫,实现了爬取网络段子并逐条阅读等功能,详见Python爬虫初学(一). 今天准备对百度贴吧下手了,嘿嘿.依然是跟着这个博客学习的,这次仿照 ...

  8. [补档]暑假集训D8总结

    %dalao 今天有两位大佬来讲课,meaty来讲了Catalan(本来说好的莫比乌斯反演呢),聪聪来讲Splay呢 至于听课笔记= =,没来得及记= = 不过好不想上树啊,上了树就下不来了 考试 仍 ...

  9. windows本地提权对照表(转载)

    2003     systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB3057191 KB2840221 KB3000061 KB2850 ...

  10. Git时光机穿梭之撤销修改

    自然,你是不会犯错的.你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version control system. Git is ...