我正在尝试更改 wireshark 源代码,并将以下代码添加到文件中:/epan/dissectors/packet-ssl-utils.c
f=fopen("keys.txt","a+");
fflush(f);
fprintf(f,"Test");
ssl_print_data("Client Write key",c_wk,ssl_session->cipher_suite.bits/8);
ssl_print_data("Server Write key",s_wk,ssl_session->cipher_suite.bits/8);
fprintf(f,"%s %s",c_wk,s_wk);
if(ssl_session->cipher_suite.block>1) {
ssl_print_data("Client Write IV",c_iv,ssl_session->cipher_suite.block);
ssl_print_data("Server Write IV",s_iv,ssl_session->cipher_suite.block);
fprintf(f,"%s %s",c_iv,s_iv); }
else {
ssl_print_data("Client Write IV",c_iv,8);
ssl_print_data("Server Write IV",s_iv,8);
fprintf(f,"%s %s",c_iv,s_iv); }
fflush(f);
fclose(f);
我在函数 ssl_generate_keyring() 的开头将 FILE 指针声明为“f”。 多次尝试运行脚本后
sudo ./configure
sudo make
sudo make install
我仍然无法将这些变量的数据打印到文件中。不会创建文件本身。
谁能告诉我如何将这些变量写入文件?
背景: 您必须在终端中设置 export SSLKEYLOGFILE=/home/somefilename.txt。从终端启动浏览器,然后浏览流量。
转到 wire shark 首选项,然后在协议(protocol)选项卡 -> ssl 选项卡中设置键盘记录文件
最佳答案
wireshark 目录是写保护的,因此我对 wireshark 代码所做的任何修改都无法写入同一目录中的文件。
@MarkPlotnick、@Olaf 和@Jean-Bapiste 都指向正确的方向,通常作为一种好的做法,应该编写带有错误处理程序的更好的调试代码。
关于c - fprintf 不能在 wireshark 源中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39108198/