iOS_逆向(5)_Objective-C相关的iOS逆向理论基础

一丶.tweak在Objective-C中的工作方式

tweak指的是对电子系统进行轻微调整来增强其功能的工具;
在iOS中,tweak特指那些能够增强其他进程功能的dylib,是越狱iOS的最重要组成部分。

iOS是由一个个小的组件构成的,这些组件其实就是一个个对象,
在Objective-C里,我们称对象的功能为“方法”,“方法”的具体行为则称为“实现”。
在Objective-C里,方法和实现的关系不是在编译时决定的,而是在运行时决定的。
“对象、方法和实现的关系,就是tweak大做文章的地方。”

二丶tweak的编写套路

2.1编写tweak会用到C、C++和Objective-C三种语言
2.2定位目标文件

dylib、bundle或daemon,它们在系统中的位置几乎是固定的

2.2.1.1 dylib

基于CydiaSubstrate的dylib全部位于“/Library/MobileSubstrate/DynamicLibraries/”下

2.2.1.2bundle主要分为App和framework两类

AppStore App全部位于“/var/mobile/Containers/Bundle/Application/”下
Framework全部位于“/System/Library/Frameworks”或“/System/Library/PrivateFrameworks”下

2.2.1.3 daemon的配置文件

“/System/Library/LaunchDaemons/”、
“/Library/Launch-Daemons”或“/Library/LaunchAgents/”下
是一个plist格式的文件。其中的“ProgramArguments”字段,即是daemon可执行文件的绝对路径

2.2.2 Cydia定位

1.通过“dpkg-i”命令安装的deb包,其内容会被Cydia如实记录,若要查看,在Cydia的“Installed”项中选择“Expert”
2.然后选择目标软件,进入“Details”界面
3.之后选择“Filesystem Content”,即可浏览软件包里的所有文件

2.2.3 PreferenceBundle

PreferenceBundle是寄生在Settings应用里的App,它的功能界定有些模糊,既可以作为单纯的配置文件,由别的进程读取后执行

编写格式:
Preferences specifier plist : http://iphonedevwiki.net/index.php/Preferences_specifier_plist

2.2.4 grep命令

grep是一个来自UNIX系统的命令行工具,能够搜索文件中是否含有给定的正则表达式。

格式 grep [options]

主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。

学习地址:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html

2.3 定位目标函数

在找到含有目标功能的二进制文件之后,可以通过class-dump导出头文件,在里面寻找自己感兴趣的函数。

2.3.1用OS X 系统自带
Paste_Image.png
2.3.2用grep命令
2.4 测试

Objective-C函数的功能测试相对于C/C++函数来说要简单得多,有CydiaSubstrate和Cycript两种方法可供选择。

2.4.1ydiaSubstrate
2.4.2Cycript

2.5 解析函数参数
2.6 class-dump的局限性

“class-dump提供了可以落脚的小屋,但要走出这片森林,还需要一张地图和一个指南针——它们就是IDA和LLDB。这两款工具就像两座挡在我们面前的大山,绝大多数逆向工程初学者都没能成功翻越它们,爬到半山腰就打道回府了,而翻越大山的人们顺利跨过逆向工程的门槛,欣赏到了别样的风景。梦想还是要有的,万一实现了呢?我们鼓起勇气,试试看能不能征服它们。”

摘录来自: 沙梓社 吴航 著. “iOS应用逆向工程(第2版)pdf”。 iBooks.

三丶实例演示

iOS_逆向实践(1)_微信到此一游
http://www.jianshu.com/p/b2421b368e2c

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容