天天看点

Iphone攻与防-一

实现一下:如果微信群里发几个大的红包时,你永远是第一个抢到的。如果APP有运营活动,你能绕过限制拿到第一大奖。如果在APP里面你无需充值就是VIP用户.......当然所有这些其实最重要的是帮助我们增强我们APP的安全性能,不知攻焉知防~

现在有一个城堡,如果派兵去攻打,需要什么?大的来说应该就2步:第一步:找出这个城堡最脆弱的地方,然后呢,当然就是打的问题了:排兵布阵集中优势火力攻打这个最脆弱的地方。

对于要说的IOS来说,我们首先会讲解如何去攻打,然后再后续讲解如何找到城堡中最薄弱的地方。

name 表示的是方法的名称,用于唯一标识某个方法,比如 @selector(viewWillAppear:) ;

types 表示的是方法的返回值和参数类型(详细信息可以查阅苹果官方文档中的 Type Encodings);

imp 是一个函数指针,指向方法的实现;

SortBySELAddress 顾名思义,是一个根据 name 的地址对方法进行排序的函数。

Method Swizzling 的实质是在运行时,访问对象的方法结构体,并改变它的底层实现。

Iphone攻与防-一

给项目中所有图片名称加前缀,所有按钮点击事件都加一个统计......

一、Theos越狱开发工具的配置和安装:

下载框架到本地,一般直接在这个目录即可。

打包工具安装,theos开发的插件将会以deb的格式进行发布

在Theos开发插件中,iOS文件的签名是使用ldid工具来完成的,也就是说ldid取代了Xcode自带的Codesign。下方就是ldid的安装过程

配置CydiaSubstrate

打开Terminal

设置环境变量

进入你打算放置项目的文件夹

创建工程:

会出现如下图,进行如下操作即可,主要输入的是MobileSubstrate Bundle filter和APP的bundleIdentifier对应,目前操作系统的面板,则输入如下即可。

5.Makefile文件开头输入你需要安装手机的ip地址

6.Tweak.xm输入你需要hook的程序

%hook 指定需要hook的类名,以%end结尾

%log 用来打印log的,将信息输入到syslog中,如%log((NSString *)@"xiang")

%orig 执行被hook函数的原始代码,类似于super.method功能

编译:

执行命令make:

打包:

执行命令:make package

安装:

执行命令:make install

过程会让你输入两次iphoen密码 , 默认是alpine

过程基本一样,只是输入[iphone/tweak] MobileSubstrate Bundle filter 时,输入APP的bundile identifier。

Tweak.xm代码如下: