c++ - 如何在加密前拦截应用程序通信?

标签 c++ windows ssl

我正在尝试对 Windows 应用程序用于通过网络进行通信的协议(protocol)进行逆向工程。它使用 TLS 加密连接与服务器进行通信。

我想拦截应用程序的相关调用(对 TLS 库或安全套接字 API),并查看其明文消息。

全面披露:这不是为了任何丰富目的,而是为了改进开源项目。

我尝试在 Linux 上的 Wine 下运行该应用程序,其中上述内容相当于用于拦截对 send() 调用的 LD_PRELOAD 技巧。 https://rafalcieslak.wordpress.com/2013/04/02/dynamic-linker-tricks-using-ld_preload-to-cheat-inject-features-and-investigate-programs/ https://www.kernel.org/doc/html/latest/networking/tls.html

那没有用。这就是为什么我现在尝试在 Windows 上拦截此类调用。

最佳答案

向@Cybran 的解决方案添加详细信息:

  1. 安装 mitmproxy。运行一次,找到它生成的 CA 证书 (mitmproxy-ca.p12) 并将其安装为 Windows 中的根 CA。 mitmproxy 提供了如何执行此操作的说明。
  2. 启动mitmdump -w outfile。它通常在端口 8080 上运行。找出在哪个接口(interface)/IP 上。
  3. 在 Windows 中,在“设置”->“网络设置”下,有一个用于手动配置代理的选项。将其指向 mitmdump 运行的接口(interface)/ip 和端口。
  4. 启动 Windows 应用程序并在 mitmdump 终端中观察流量 URL。输出文件将以几乎人类可读的格式包含明文流量本身。

关于c++ - 如何在加密前拦截应用程序通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57932596/

相关文章:

c++ - 微优化 C++ 比较函数

c++ - 为什么在 extern "C"中定义了 __cplusplus

linux - Windows 等效于此 gitk Linux 命令

c++ - uWebSockets (C++) : secure wss server

search - Google 或其他搜索引擎(机器人)可以扫描 SSL/HTTPS 页面/网站吗?

R 服务器 : install. packages() 证书错误

C++函数查找3个数组的最大元素

c++ - 删除从 cout 输出到控制台的最后一行?

Windows github 工具 - 使用分支取消发布或删除?

windows - 在 64 位 Windows 上构建 GMP