逆向原理
动态调试 通过界面调试Cycript\Xcode LLDB!
静态分析 利用之前学习的汇编代码,分析三方APP的源码!
代码注入 注入的其实是动态库!HOOK代码 改变原来程序的执行流程!
重签名 安装在非越狱手机上面
Class-dump
- 下载地址http://stevenygard.com
- 也可以安装monkeyDev其自带Class-dump,下载地址:https://github.com/AloneMonkey/MonkeyDev/wiki/%E5%AE%89%E8%A3%85
- 注:如过是自己安装的Class-dump 要cd到其所在文件夹运行指令。
usr目录介绍
1.打开终端切换目录到最上层目录:
cd /
la //查看所有文件包括隐藏文件
cd /usr //unix system resource 系统文件 为隐藏文件
ls //进入usr文件夹 查看目录
2.至此目录中会出现两个文件夹 bin 和 local,下面来介绍写两个文件的区别:
- bin中文件是系统预装的可执行文件,其会随着系统的升级而改变,所以一般自己常用的可执行文件不放在里面。
- cd 进local 里面也有个bin在这个bin里面可以放自己的可执行程序,如果想自己安装Class-dump那么推荐装到local -> bin 中,其不会因为系统升级问题受到影响。
3.终端输入以下代码
echo $PATH
系统搜索顺序是根据这路径来的,搜到哪个就用哪个。
/opt/MonkeyDev/bin:/Users/xiaobai/.rvm/gems/ruby-2.2.2/bin:/Users/xiaobai/.rvm/gems/ruby-2.2.2@global/bin:/Users/xiaobai/.rvm/rubies/ruby-2.2.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/xiaobai/.rvm/bin
4.上面是我的mac搜索路径,可以看出首先第一个搜索的就是monkeyDev下面的bin文件。
Class-dump获取app头文件
1.下载pp助手下载越狱包(这边就不展示了)。
2.打开方式zip归档工具打开->Payload->xxxx.app.
3.右击显示包内容->找到MachO文件一般跟app同名白底的不带后缀的(不确定可以看下包大小比较大就是了)。
4.新建头文件存储文件夹(appHeader)打开终端cd到本目录。
5.输入以下代码
class-dump -H xxxx -o appHeader/
注:-H 头文件的意思 xxxx为MachO文件的名字不带后缀 -o为output意思 如果没有-o及后面的代码 则会print出来 appHeader为文件输出路径
6.运行效果:
7.完成,如上图最后导出的头文件有11602个,大家一看就只到是啥软件了吧。
8.头文件较多可以安装Visual Studio code查看因为Visual Studio code加载还是比较快的,但是放在xcode里面看头文件会比较卡(土豪高配忽略本条)。