iOS逆向工程 - 工具篇

2018-04-21  本文已影响0人  异想天不开_9950

逆向工程的分析工具

进行iOS逆向工程的一个关键就是工具的使用,工欲善其事,必先利其器。

一、常用App安装以及环境配置

1. zsh 避免每次打开 Terminal 都需要 source ~/.bash_profile
安装好之后,需要把 Zsh 设置为当前用户的默认 Shell(这样新建标签的时候才会使用 Zsh):

$ chsh -s /bin/zsh

使用过程中发现之前在 .bash_profile 中定义的环境变量在 zsh 终端中找不到,java,mvn,git 均找不到命令,因为 zsh 加载的是 ~/.zshrc 文件,而 ‘.zshrc’ 文件中并没有定义任务环境变量。 如果我们需要之前在 .bash_profile 中定义的环境变量生效,该怎么办呢?有两种方法:
第一种是:每次打开终端时都手动 source ~/.bash_profile,这样比较麻烦
第二种是:把这条指令保存在 .zshrc 中

$ vim ~/.zshrc

然后在编辑页面最下面加一行代码:

$ source ~/.bash_profile

2. 去掉终端前面过长的路径
进入 oh-my-zsh 的 themes 目录

$ vim ~/.oh-my-zsh/themes

复制一份 agnoster.zsh-theme,改主题名为“ custom.zsh-theme ”,custom为自定义的主题名,编辑主题

$ vim custom.zsh-theme

找到并修改以下代码

# Context: user@hostname (who am I and where am I)
prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m"
    # 上面的代码修改为:prompt_segment black default "custom"
  fi
}

二、集成非越狱调试工具

三、Cycript 安装以及使用

$$ cd /opt/cycript_0.9.594
$ cycript
cy#

我们肯定不希望这么麻烦,为了可以在任何路径下都可以进入 cycript 环境,我们需要配置全局环境变量。我们需要在.bash_profile里进行配置

$ vim ~/.bash_profile

然后在编辑页面输入如下代码

export CY=/opt/cycript_0.9.594/
export PATH=$CY:$PATH

保存文件,关闭.bash_profile

可能会遇到的问题:
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
  Referenced from: /Users/devzkn/Downloads/cycript_0.9.594/Cycript.lib/cycript-apl
  Reason: image not found

这个错误是因为电脑的ruby版本太高导致,那么我们需要给 ruby 降版本

$ ruby -v

电脑重启按住 command+R,进入恢复模式
打开终端,输入csrutil disable,重启
如果想打开 SIP,重复上两步,命令改为 csrutil enable

$$ sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/
$ sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib

四、Shell脚本

我们每次想要去连接 app 的界面都需要在终端输入如下命令

$ cycript -r 192.168.27.3 8888

这种重复的操作没什么意义,我们可以通过写 shell 脚本的方式进行简化,我们可以先打开终端进入 Desktop 目录,然后创建一个文件夹

$ mkdir TestShell

然后 cd 进入 TestShell 文件夹,创建 shell 脚本 login.sh

$ vim login.sh

在编辑页面输入如下代码

cycript -r 192.168.27.3 8888

保存并退出

接下来就是执行了,我们可以在 TestShell 文件夹下输入 sh login.sh 命令执行,但是每次都进入这个文件夹下执行会比较麻烦,为了可以在任何路径下都可执行,我们需要配置全局环境变量。我们需要在.bash_profile里进行配置

$ vim ~/.bash_profile

然后在编辑页面输入如下代码

#export CY=/opt/cycript_0.9.594/
export TESTSHELL=/Users/xipengfei/Desktop/TestShell
export PATH=$CY:$TESTSHELL:$PATH

保存文件,关闭.bash_profile
这样我们就可以在任何路径下通过执行脚本命令 sh login.sh 来连接 app 的界面了。

上一篇 下一篇

猜你喜欢

热点阅读