我正在尝试对 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 的解决方案添加详细信息:
- 安装 mitmproxy。运行一次,找到它生成的 CA 证书 (
mitmproxy-ca.p12
) 并将其安装为 Windows 中的根 CA。 mitmproxy 提供了如何执行此操作的说明。 - 启动
mitmdump -w outfile
。它通常在端口 8080 上运行。找出在哪个接口(interface)/IP 上。 - 在 Windows 中,在“设置”->“网络设置”下,有一个用于手动配置代理的选项。将其指向 mitmdump 运行的接口(interface)/ip 和端口。
- 启动 Windows 应用程序并在 mitmdump 终端中观察流量 URL。输出文件将以几乎人类可读的格式包含明文流量本身。
关于c++ - 如何在加密前拦截应用程序通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57932596/