确定 Post 请求从移动应用程序到 API 的加密算法

Determine the encryption algorithm of Post request from mobile application to API

我试图了解当我从移动应用程序向 API 提交 POST 请求时,移动应用程序如何加密密码 这样我就可以制作一个 python 代码,该代码可以使用相同的算法将加密密码发送到与移动应用程序相同的 API。

我厌倦了捕捉一个私人 API 的移动应用程序,我在应用程序发送请求的地方收到了请求,但有趣的是应用程序在通过 POST 请求 API 这是密码在请求中的样子:

password=GmdKoBhIne4g3KR8JeR/Cg==

移动应用程序正在对密码进行编码,当它向 API 发送请求时我已经知道密码,但我想要的是了解此移动应用程序加密密码的方式,加密类型不是 Base64(肯定是大声笑),我厌倦了在没有加密的情况下向 API 发送请求,但我收到了一个错误。这意味着 API 正在解密密码。

所以我反编译手机应用程序很累,我得到了源代码,很麻烦,代码源很复杂,函数名称随机,很难阅读lol,变量是我之后随机生成的反编译apk.

所以我厌倦了在代码源中搜索关键字(密码,API.....),最后我找到了可以开始的行, 我试图了解移动应用程序如何将密码字符串转换为未知的加密类型,在 2 天前我反编译了一个 APK 文件,但加密仍然很难捕获:( 我发现了这个:

和函数 returns :

if (str21 != null) {
        i = str21.hashCode();
    }
return hashCode23 + i;

但是还是从加密算法上看不懂:(

我在搜索代码源时找到了两个文件 CERT.SF & CERT.RSA 我不知道,但我觉得这两个文件可以帮助我,CERT.SF 文件包含许多 SHA-256-Digests 和 RSA 我看不懂。

我厌倦了以 post 应用程序请求的形式测试字母表,例如: 我虽然可以捕捉到像(A,B,C ..... 1,2,3 ....)这样的字母 但是当我 post A 时,我在 Burp-suite 上收到密码再次生成为随机字符串,就像以前一样,所以什么都没有改变

如果有密码学知识的人可以帮助我解决这个问题可能会很棒<3

谢谢。

所以,感谢一些帮助我解决这个问题的中文文章。

移动应用程序被混淆了,但感谢上帝,我发现了一些应用程序正在使用 AES/CBC/PKCS5Padding 的痕迹,所以我跳起来,我的设备和我绕过 SSL panning 并在我的设备 shell 上安装了友好的 Frida 服务器,我得到了移动应用程序的 PID,我发现了许多有助于检测密钥的脚本在手机上,但没有脚本在工作。所以我厌倦了理解 Frida 如何检测密钥,我编写了一个自定义 python 脚本,从移动应用程序中删除密钥。 对于自定义 python 脚本,我无法共享,因为它包含我正在对其进行预测试的移动应用程序功能。 但我可以通过一些资源帮助了解 Frida 如何绕过密码算法

弗里达:https://github.com/frida/frida

利用代码:https://github.com/Kc57/blog_post_code/tree/master/frida-python-bindings-example