对操作系统拥有完全控制的权限下怎样解密一个二进制程序的 https 包

2020-01-07 18:38:53 +08:00
 huangya

二进制程序运行在一台 linux 机器上,非安卓。作为 client,与公网上的 server 通信,我的目的是想通过解密看下原始的包的格式是怎样的。我对操作系统完全具有控制权限,也知道公网上的 server 的域名,请问下怎么做呢?

1378 次点击
所在节点    程序员
7 条回复
virusdefender
2020-01-07 18:41:06 +08:00
如果是标准 https 的话,安装一下 ca 配置代理就可以了
virusdefender
2020-01-07 18:42:44 +08:00
如果二进制程序有双向认证、证书绑定可能得做一下库劫持或者逆向后 patch
xenme
2020-01-07 18:44:53 +08:00
直接逆向找到程序发送前和接收解密后的数据就行了。
huangya
2020-01-07 18:48:40 +08:00
@virusdefender
操作系统没有图形化界面,这个二进制程序也属于 command line 程序,不知这个如何设置代理,是直接使用 iptables 这样把 443 端口发到装有类似 Fiddler 这样的 PC 上吗?
virusdefender
2020-01-07 18:59:34 +08:00
设置代理的话,可以试试 http_proxy 和 https_proxy (部分程序是大写)环境变量,实在不行就 proxychains
mazyi
2020-01-07 19:26:31 +08:00
关键词,Linux 任何程序 代理
libook
2020-01-08 09:39:43 +08:00
一楼是正解,如果不明白的话建议研究一下 HTTPS 加密的原理。

大体方案就是:
1. Client 上安装抓包软件附带的抓包用 HTTPS 证书,这个证书优先级很高,以至于 Client 的任何 HTTPS 通信都会优先使用这个证书。
2. Client 上配置抓包软件的代理地址,让 Client 发任何网路请求都优先发到抓包软件上。
3. 抓包,就能直接看到数据包解密后的内容了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/635884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX