安装 frida 进行砸壳 app
这次用了一台iphone7 iOS14.4的设备来安装frida 手机上frida 安装到了 15.x
电脑上想用python3来安装frida 发现 终端 python 输出的命令对应的是python2.7 在bash_profile alias了别名
alias python=python3 生效之后 发现 不带sudo 的情况下 python 输出的是 python3对应的bin 但是带上了sudo之后
发现 sudo python 输出的是2.7的bin … 查了资料后发现 sudo python 和 python 不只是带了权限提升这么简单 sudo python
相当去读取了usr/bin/下面的python 我查看usr/bin/python 其实是一个软链 原身是系统/LibaryFramework/下的 尝试去删除软链
换成自定义的目录 发现权限被拒绝 无法操作. 犯难了 。 google了大半天 发现可以用 Pyenv 来管理python的版本 ( https://python.plainenglish.io/how-to-manage-different-python-versions-on-mac-os-11-big-sur-b285d98fdaf1
) 不知道能不能解决sudo的问题
通过brew 安装了之后 按照操作 Pyenv install python3.9.x 并global了 然后添加了对应的bash脚本到 bash_profile
patrick@PatrickMBNeu ~ % echo -e 'eval "$(pyenv init -)" ' >> ~/.zshrc
patrick@PatrickMBNeu ~ % cat .zshrc
eval "$(pyenv init -)"
重启终端 还是不行 感觉像没生效一样 . 又搜索到 stackoverflow 看了一圈 有兄弟提示看下pyenv github上的说明
我看了一下 其中有写:
MacOS, if Pyenv is installed with Homebrew:
echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
我尝试了echo 到了这两个文件 重启终端后 python 命令输出
Python 3.9.1 (default, Feb 24 2022, 21:42:19)
xxx
对了 赶紧试下 sudo python
也是同样的结果 可以了 . 后面我验证了一下 echo输出的内容放在bash_profile也是可以的发现生效的是这句
$(pyenv init --path)
不知道是不是 后面—path的原因 . 这里记录一下
pip install cryptography 问题
在python3问题搞完之后 安装 cryptography 出现 openssl 头文件找不到 编译失败 搜索到问题之后:
https://github.com/pyca/cryptography/issues/3489
按照大佬说的操作
我这里用brew install openssl 到了@3
关键的地方
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography
后面把 这句 (brew --prefix openssl) 输出到终端 发现就是一个路径 : /usr/local/opt/openssl@3 感觉问题就是编译的时候不知道对应的路径
系统的openssl好像没有include中的源码?
再次执行 又出问题 这次报的错误是
error: Rust 1.25.0 does not match extension requirement >=1.41.0
rust版本过低 ? 那又升级吧
执行:
rustup update
升级后 rust版本到了
rustc 1.59.0 (9d1b2106e 2022-02-23)
再次执行
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography
输出
Stored in directory: /Users/wulong/Library/Caches/pip/wheels/db/3a/28/59081051ff75ae8d830e7df027b99995164d592f6bb206e163
Successfully built cryptography
Installing collected packages: pycparser, cffi, cryptography
Running setup.py install for cffi ... done
Successfully installed cffi-1.15.0 cryptography-36.0.1 pycparser-2.21
恩 装好搞定~
后面安装 frida-ios-dump 中的requirements.txt依赖有个小插曲
因为 cryptography 安装的关系 还是需要前面加上
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include"
所以整个命令
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install -r requirements.txt --upgrade
我以为已经安装过了就会跳过 结果还是会重新build 一次.
开启 xcode 附加调试
由于我在其他手机已经登陆过了 在越狱的这台设备上下载好了 用同一个账户登录 提示 已经绑定了一台设备 无法在此设备上登录
猜想应该是登录提交的时候有设备id
之类的参数 抓了一下原来设备登录的请求
确实有个device_id
我将原来的设备id
从接口里面拿出来 用charles断点 放到了越狱设备请求的参数中去
发现不行 . 可能有其他id
在处理? 附一下 header 中搜到的device_id
如果登录有调用对应的这几个方法 那么可以hook看到底传的啥 然后把之前的设备对应返回的device_id
拿出来hook返回
应该就可以了 . 因为另外一台原来的设备没有越狱 有点麻烦 . 换了一个简单的方法 直接charles把原来设备登录成功后的结果复制一下 然后断住登录接口 把response的结果替换掉 再放行 越狱的设备就可以登录了.