用于提取Android apk机密的DeStringCare
DeStringCare的Python项目详细描述
破坏性护理
这是什么?在
它是一个用于提取Android apk文件中的StringCare模糊机密的工具。 其中一些受StringCare保护的机密可能包含API地址和API密钥。在
Warning:不建议在客户端存储重要的API密钥,尤其是第三方服务的密钥。 更好的方法是拥有自己的API服务,并为每个应用程序用户创建唯一的API密钥。 这允许撤销API密钥并在必要时禁止用户使用。在
安装
pip install DeStringCare
使用
用法:destringcare.py [-h] [-r] [-o] apk [replaced]
从Android APK中提取StringCare秘密。在
位置参数:
apk
-apk的路径replaced
-被替换值的路径
可选参数:
-h
,--help
显示此帮助消息并退出-r
,--resign
辞职并保存xml文件-o
,--other
包括其他机密的列表
示例:
^{pr2}$替换值
创建mapped.json
{"firebase_database_url":"https://some-path.somewhere.io","google_storage_bucket":"another-path.appspot.com"}
然后使用附加参数运行destringcare
:
destringcare --resign Appname_v1.0.2494.apk mapped.json
打印其他额外属性
某些公共属性键可能不由Stringcare编码。 这些可以是明文形式,因此包含在输出中。在
destringcare --other Appname_v1.0.2494.apk
如何使用它?哪里可以得到apk?在
- 在
首先下载一个Android apk。在
- 使用像https://apkpure.com/这样的网站(注意应用程序可能被篡改,因此不建议使用)。在
- 使用GPlayCli/GPlayWeb使用自己的Gmail凭据下载。在
- 使用
adb
工具从Android设备或模拟器中提取apk
。- 通过Google Play store将应用程序下载到Android设备或模拟器上。在
- 列出软件包并找到你想要的应用程序。
adb shell pm list packages
在 - apk文件的打印路径。
adb shell pm path
在 - 拉出apk文件。
adb pull /full/path/to/the.apk
在
- 在
提取StringCare的秘密。在
destringcare Appname_v1.0.2494.apk
您将得到一个JSON文件的输出:
{"mixpanel_api_key":"7b23daa71cdbb9e6d07f29a36de960f3"}
在
如何放弃StringCare的秘密?在
^{pr2}$它从密钥库文件~/.android/debug.keystore
加载第一个密钥。在
然后它重新加密apk机密,并将其作为xml文件保存在resigned-strings.xml
中。在
用您自己的密钥重新命名StringCare机密允许您重新打包应用程序并在Android设备中使用它。
您需要将原始的strings.xml
替换为resigned-strings.xml
文件。在
哪里可以使用辞职版本?在
使用apktool
可以对应用程序进行解码,然后再重新打包。在
因为为了让它在Android上正常工作,必须放弃应用程序, 还需要使用新的签名密钥更新StringCare保护的文件。在
典型工作流程:
- 在
使用
apktool
将apk解码到apk
目录中。在apktool d Appname_v1.0.2494.apk -o apk
在 - 在
运行
^{pr2}$ 在DeStringCare
以提取包含机密的{}并将其放弃。在 - 在
替换路径
apk/res/values/strings.xml
处受StringCare保护的xml文件。在它可能包含如下行:
<stringname="mixpanel_api_key">367E864309B5E7E3E6642483AF380497...</string>
在 - 在
重建apk。在
apktool b -d apk -o app-unsigned.apk
在 - 在
辞去apk的职务。在
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore -storepass android app-unsigned.apk androiddebugkey
在 - 在
用拉链把apk打开。在
zipalign -v 4 app-unsigned.apk app.apk
在
如何贡献?在
如果您有问题或改进意见,打开一个问题。在
如果您对代码进行了改进,请创建一个merge request。在
- 项目
标签: