一、遇到问题
- 用 frida 16 + android7,遇到不稳定的奇葩黑屏问题
- 因为编译一些东西,python升级到了3.12,但是它不支持 frida12,于是安装 windows/pyenv
- pyenv global 3.7.2
- pip install frida==12.8.0 报错!
xmlrpc.client.Fault: <Fault -32500: 'RuntimeError: PyPI no longer supports the XMLRPC package_releases method. Use JSON or Simple API instead. See https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods for more information.'>
二、分析原因
- xmlrpc 在 python 的新版本,package_releases 和 release_urls 函数被废弃,导致 setup.py 脚本无法解析到 frida 版本库
- 根据提示,从pypi的json渠道能看到类似结构的版本信息
pypi.org/pypi/frida/json
三、解决方法
- pyenv global 3.7.2
- 从pip install 日志中,拿到 frida源码文件路径,下载后解压
https://files.pythonhosted.org/packages/38/1b/8a462787cedda36c57227ed0babbd80c4c4cc5bc9c1f9b5aa285ed6aebba/frida-12.8.0.tar.gz - 编辑 setup.py ,搜 release_urls 定位到相关代码,将报错代码注释并换成下面两行代码
egg_filename = "frida-12.8.0-py3.7-win-amd64.egg"
egg_url = "https://files.pythonhosted.org/packages/c8/bb/84e2bc3e92bbd356e977941ec902cd74dbc05ed0ea971a374d922966e21b/frida-12.8.0-py3.7-win-amd64.egg" - 安装frida
python -u -c "import setuptools, tokenize;file='setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record install-record.txt --single-version-externally-managed --compile - 直接安装 frida-tools
pip install frida-tools==5.3.0 - pip list
Package Version
colorama 0.4.6
frida 12.8.0 !!!!!!!!!!!!! 终于回来了
frida-tools 5.3.0 !!!!!!!!!!!!!
pip 18.1
prompt-toolkit 2.0.10
pygments 2.17.2
setuptools 40.6.2
six 1.17.0
wcwidth 0.2.13