c - fprintf 不能在 wireshark 源中工作

标签 c file debugging ssl wireshark

我正在尝试更改 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/

相关文章:

c - 在Linux操作系统的C程序中,如何检查用户是否具有文件的读取权限?

C,将文件指针作为参数传递给函数

java - 程序在Eclipse中运行,导出的可运行jar文件打不开?

multithreading - 从不同线程中的繁重操作同步写入文件

java - Eclipse SWING 应用程序 : breakpoint hit only after an uncaught exception is thrown

android - Android 调试到底是如何工作的以及为什么我的应用程序在调试时表现不同?

c - 维瓦多 HLS :How to declare arbitrary precision (or bit-accurate) integer data types for 2D array?

c - 运行时数据和代码内存大小估计

java - 如何用java知道文件是否损坏(可读)?

debugging - 检查 lldb 中函数的返回值