在过去的4个月中,我一直在尝试绕过Facebook android应用程序中的证书固定,因此我可以了解其工作原理,但是这样做很麻烦。

我曾尝试使用android SSL信任Killer和cydia衬底,但似乎还有其他验证机制。我已尝试按以下说明更改smali代码:

http://blog.dewhurstsecurity.com/2015/11/10/mobile-security-certificate-pining.html

我能够查看两个请求(其中一个请求显示在提供的链接的最后一个屏幕截图中),但是该应用似乎还应用了其他一些保护机制,因为在尝试登录帐户时,它会显示一条错误消息,提示您:“ ssl3_get_server_certificate证书验证失败”

我尝试了所有可以在网上找到的公开教程,但都无济于事,我非常感谢您提供有关如何执行此操作的任何信息。

如果需要,我也很乐意提供反编译的源代码apk和经过修改的apk。

评论

修补Java代码以忽略固定。您链接的教程说明了方法。

我遵循了该教程,但是正如我所说的,我仍然找不到其他验证机制。

阅读反编译的代码,搜索错误消息。修补逻辑。重新编译并重新签名。

错误消息未出现在反编译的代码中。在过去的4个月中,我一直在尝试修改部分代码,然后重新编译并辞职以对其进行测试,现在我仍然可以,但是我仍然没有取得任何突破,因此请在此处发布。

抱歉,这是来自SSL而非应用本身的错误。您可能最终不得不为您的Android重新编译SSL库,或者按照nccgroup.trust/us/about-us/newsroom-and-events/blog/2015/…的方式进行操作。我不太熟悉如何在客户端代码中设置固定,但是我敢打赌,即使不更换SSL库,也有禁用它的方法。全部消除,而不仅仅是博客文章中描述的部分:)

#1 楼

使用Xposed。学习API,这是您应该挂钩和操作Android应用程序的方式。


Xposed + JustTrustMe

Xposed模块(thx Fuzion24)。您要查找的方法调用位于以下源文件中:

https://github.com/Fuzion24/JustTrustMe/blob/master/app/src/main/java/just/trust /me/Main.java


Frida(http://www.frida.re)

学习Xposed之后,移至Frida,使用它并研究它。然后,您将可以与运行时修改的大孩子一起玩:-)

评论


我安装了Xposed和JustTrustMe并进行了尝试,但是固定仍然存在。根据github上JustTrustMe的解释,它应该已经起作用了,所以我假设实现了一个自定义的固定功能。感谢您的建议,我将尝试并抽出时间来研究此内容。如果您有任何书籍/教程建议可以帮助我入门,请告诉我。

–约翰·艾弗里(John Avery)
16 Mar 17 '16 at 19:37



JustTrustMe为我工作,但在安装和激活模块后我需要重新启动。

– jcady
17年5月8日在21:14