ios hook 小试牛刀(一)

原创 2017年09月13日 14:07:31

刚学OC,文中有任何不妥的还请指教包涵

环境搭建

系统:Mac OS 10.12.6(没有apple的电脑也是可以的,但是环境搭建会比较蛋疼,实在不行可以装个虚拟机,具体教程可以网上搜索)

xcode:8.3.3

ipad mini : 7.0.4

开发工具

xcode

IOSOpenDev(或者另一位大神基于IOSOpenDev修改的MonkeyDev,很好用)

theos

逆向分析工具

Hopper Disassembler(或者ida)

Reveal

cycript

debugserver

先说 IOSOpenDev 的安装吧

设置环境变量

vim ~/.bash_profile

填入以下

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


安装 iOSOpenDev-1.6-2.pkg(下面会提供链接)

全程下一步非常简单

然后是 theos

sudo git clone --recursive https://github.com/theos/theos.git /opt/theos

设置Specifications文件夹

附件链接会提供

里面应该有8个文件,

iPhoneOS开头的四个文件放到/应用程序/Xcode/Content/Developer/Platforms/IphoneOS.platform/Developer/Library/Xcode/Specifications文件夹下(如果没有,请自己创建一个),

iPhone Simulator 开头的另外四个文件放入/应用程序/Xcode/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications文件夹下(如果没有,请同样创建一个)。

另外在/应用程序/Xcode/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/文件夹下创建usr文件夹,usr文件夹下再创建一个名为bin的文件夹

现在可以打开xcode了 多个xcode的话可以用以下命令指定默认xcode


sudo xcode-select -s /Applications/Xcode-beta.app

如图所示安装成功后新建项目就会多出来 IOSOpenDev 的选项

下面新建 Logos Tweak 项目


新建好项目 


ios 设备 Cydia 搜索 Cydia Substrate 安装


ISO 设备 Cydia 安装 openssh

并和电脑保持在同一局域网

电脑执行命令

iosod sshkey -h IOS设备IP

第一个提示问是否设置密码 直接回车

然后输入设备密码 ssh 默认没改的话是 alpine

完成之后 执行 ssh root@iOS设备ip

不提示输入密码直接连接上的话就OK了

control + d 退出 ssh

电脑执行命令

sudo scp root@IOS设备ip:/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate /opt/theos/lib/libsubstrate.dylib

下载完后 设置 xcode (ios版本太低导致xcode里没有的话有需要我可以另开一篇文章说一下怎么搞,或者网上也能搜索到到)

General 项


build Settings 项



设置完毕后 xm 文件输入代码 如图


代码

#import <UIKit/UIKit.h>

%hook SpringBoard

- (void)applicationDidFinishLaunching:(id)application{
%orig;

UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Welcome" message:@"HelloWorld!" delegate:nil cancelButtonTitle:@"Thanks" otherButtonTitles:nil];
[alert show];
}
%end

保存之后 xcode 选择 Product - Build For - Profiling 会自动打包安装并且重启 iOS 设备 SpringBoard 生效

重启之后会发现弹出了一个消息框说明成功了

卸载的话可以去 Cydia 里卸载


附件链接:(设置了一个积分,希望有几分的同学能支撑下,没有的话按照上面的名字搜索应该也是可以找得到的)

http://download.csdn.net/download/tanzui/9976907
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tanzui/article/details/77965080

Linux Shell 脚本攻略阅读笔记第1章 小试牛刀

一、简介 1.Bash(Bourne Again Shell),目前大多数GNU/Linux系统默认的shell环境。    命令都是在shell终端中输入并执行。打开终端后,提示符的形式:usern...
  • buxizhizhou530
  • buxizhizhou530
  • 2015-04-01 01:01:13
  • 928

iOS开发-drawRect方法小技巧(超短)

获取画布: CGContextRef context = UIGraphicsGetCurrentContext();   设置颜色的三种方法: [[UIColor blueCol...
  • hatsuna
  • hatsuna
  • 2015-07-27 10:50:15
  • 504

Linux Shell脚本攻略1:小试牛刀(1)

1.1 Linux Shell简介 1.2 终端打印 1.3 变量和环境变量 1.4 使用Shell进行数学计算
  • qixizhuang
  • qixizhuang
  • 2017-09-08 23:32:55
  • 761

iOS开发 - iOS的hook方案

iOS的各种hook方案比较
  • skylin19840101
  • skylin19840101
  • 2015-07-08 11:38:00
  • 1664

Method Swizzling(iOS的hook机制)

为了安全,要为NSUserDefaults加密。但是为NSUserDefaults的每个读写的地方加入加密解密方法也太麻烦。所以想重写NSUserDefaults的读写方法,把加密解密方法内嵌其中,这...
  • u012282115
  • u012282115
  • 2016-01-20 16:04:43
  • 2095

iOS黑魔法-Method Swizzling(全局hook,行为统计)

转自:http://www.jianshu.com/p/ff19c04b34d0 需求 就拿我们公司项目来说吧,我们公司是做导航的,而且项目规模比较大,各个控制器功能都已经实现。突...
  • Jason_chen13
  • Jason_chen13
  • 2017-06-28 11:56:49
  • 766

iOS运行时以及HOOK的理解:runtime和method swizzling

iOS运行时以及HOOK的理解:runtime和method swizzling
  • skylin19840101
  • skylin19840101
  • 2017-05-16 16:07:50
  • 556

Docker小试牛刀

  • 2018年01月05日 14:41
  • 1.39MB
  • 下载

java小球碰撞边框反弹并且互相碰撞消失

  • 2013年12月03日 10:05
  • 8KB
  • 下载

第五篇:Struts小试牛刀篇

严重警告:如果你跳过了上篇,在本篇遇到了的任何难题,本人概不负责 开场白: 首先我希望你明白Struts是怎么工作的。在jsp页面上,当我们发生了提交动作(你就理解为当按钮按下的时候),页面上是数据(...
  • arielxp
  • arielxp
  • 2004-06-24 07:03:00
  • 2270
收藏助手
不良信息举报
您举报文章:ios hook 小试牛刀(一)
举报原因:
原因补充:

(最多只允许输入30个字)