逆向学习相关,实战一下对app的砸壳,砸壳必须要越狱手机哦.
什么是壳
一个App无论是Android还是ios, 或者是PC平台, 为了保护app都会加上一层壳, 加壳的app可能无法被一些IDA之类的工具解析, 那么也就无法搞事情,所以砸壳是必须走的一步,也可以从某助手平台下载已砸壳的, 当然最好用下面的命令确认下先.
怎么查看一个app是否有壳, 可以使用下面的命令, 替换为App的二进制文件查看:
得到的结果如果是1则是未砸壳的, 0是已砸壳.
还有一种情况是一些App支持多种架构的,可能会展示多个cryptid=1/0, 在哪个平台跑就砸哪个.
确定目标后安装App
我这里以麦当劳App(听说改名金拱门)为例,从appStore下载安装.
编译clutch二进制文件
clutch神器下载地址, 下载编译后允许会得到一个二进制文件, 这里不累述哈, 或者你可以直接从我的git地址clone我编译后的,在clutch_binary文件下.
拷贝clutch到设备
连接手机
我这里用iproxy从22映射到2222端口,并整个过程保持. 右边线尝试登录下,默认密码是alpine, 其他情况就自行谷歌帮助,我相信这没什么难度.
|
|
测试连接成功后输入 exit
退出,接着下一步
scp拷贝到手机
scp(secure copy) 支持ssh协议远程拷贝, 我们用它拷贝到设备上, 前提是上面的
的测试成功了.
如果这样子的话就成功了, /usr/bin/默认已经在环境变量查找内, 拷贝到这里可以省事很多多.
找到目标
先介绍下clutch用法:
推荐ios-deploy -B
可以获取bundleID, brew install ios-deploy
就可以安装了.
例如我这里的目标是麦当劳app, 尝试搜一下mc
,果不其然就是它了.
拿到的bundleID就是com.mcdonalds.gma
(嗯, 还有个grep的方法更简单,但是我真的不知道它是麦当劳, 因为他显示的是Arch,所以靠谱的话就还是上面,BundleID基本会跟名称一直吧)
开始砸壳
连接设备ssh root@localhost -p 2222
进入命令行后输入:
看到这样子的情况的话就是成功了,注意这里粉红色部分, 还给出了砸成功之后的存储路径,我们拷贝下它
把成果拿到本地验证
方法有很多, 例如用ifunbox打开上面的路径,直接拿出来, 但是我的9.3.5的没有办法在Ifunbox查看系统目录, 所以用下路的这个方法
–> 就是压缩然后scp到本地
验收
|
|
意料之中的cryptid=0
为啥只显示一个,因为它只有一个架构arm_v7
[后面的话把逆向的轮子方法一并列出]