抓包命令行工具tshark可以用于自定制,相比GUI工具可以实现一些自动化,譬如把某些关注的数据抓起下来存放到文本中,然后再分析输出。
     demo:
std::string decodeHex(const std::string& strHex)
{
int nLen = strHex.length() / ;
std::string strRet(nLen, );
for (int i = ; i != nLen; ++i)
{
strRet[i] = ((strHex[*i]>='a') ? (strHex[*i]-'a'+) : (strHex[*i]-'')) * ;
strRet[i] += (strHex[*i+]>='a') ? (strHex[*i+]-'a'+) : (strHex[*i+]-'');
}
return strRet;
} void cswuyg_test_tshark()
{
std::wstring strParam = L"\"C:\\Program Files\\Wireshark\\tshark.exe\" -i 1 -p -l -T pdml -f \"dst port 80\" -R \"ip.addr==172.17.195.56\"";
FILE* stream = NULL;
errno_t err = _wfreopen_s(&stream, L"c:\\temp\\cswuyt_test.xml", L"w", stdout);
if (err != )
{
std::cout << "error" << std::endl;
} HANDLE hStd = ::GetStdHandle(STD_OUTPUT_HANDLE);
//BOOL bSet = ::SetHandleInformation(hStd, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT);
STARTUPINFO stStartInfo;
ZeroMemory(&stStartInfo, sizeof(STARTUPINFO));
stStartInfo.cb = sizeof(STARTUPINFO);
stStartInfo.hStdError = hStd;
stStartInfo.hStdOutput = hStd;
PROCESS_INFORMATION stProcInfo;
ZeroMemory(&stProcInfo, sizeof(PROCESS_INFORMATION));
BOOL bSuccess = ::CreateProcess(NULL, const_cast<wchar_t*>(strParam.c_str()), NULL, NULL, TRUE, , NULL, NULL, &stStartInfo, &stProcInfo);
::CloseHandle(stProcInfo.hProcess);
::CloseHandle(stProcInfo.hThread);
::fclose(stream);
}

  上边的demo为抓取跟ip地址为172.17.195.56,端口为80(http默认端口)的机器的通信,tshark会提供包解析之后的xml数据,程序将其存储到文件。注意部分数据是需要由hex字符串转换为真实字符串的,另外还可能会有需要gzip解压。

 
 
 

最新文章

  1. python 虚拟环境
  2. 虚拟机centos6.5 --hadoop2.6集群环境搭建
  3. Recovering deleted Records
  4. Robot Framework--09 分支与循环的用法
  5. 阿里云主机上安装jdk
  6. linux笔记:linux常用命令-权限管理命令
  7. 文件夹工具类 - FolderUtils
  8. cc2640-各DEMO板性能分析
  9. [AHOI2015 Junior] [Vijos P1943] 上学路上 【容斥+组合数】
  10. 使用飞信api接口实现短信发送(只能发送好友)
  11. Google的Guava工具类splitter和apache stringutil对比 编辑
  12. /etc/shadow,/etc/passwd,/etc/shadow,/etc/passwd文件的内容解释
  13. Python和Java的硬盘夜话
  14. OO的奇妙冒险——OOP入门与字符串处理
  15. python+selenium,打开浏览器时报selenium.common.exceptions.WebDriverException: Message: &#39;chromedriver&#39; executable needs to be in PATH
  16. ActiveMQ_2安装
  17. C/C++判断传入的UTC时间是否在今天
  18. 进程锁,队列,JoinableQueue
  19. 2019-03-11-day009-函数定义
  20. HDU1298 字典树+dfs

热门文章

  1. HTML笔记(六)文档类型
  2. .NET 4.0 任务和并行编程系列
  3. Android中利用SharedPreferences保存信息
  4. hdu3264Open-air shopping malls(二分)
  5. [css] 认识margin
  6. Boostrap学习心得
  7. python 脚本传递参数
  8. 在linux上搭建本地yum源
  9. 激活MyEclipse 6.5方法-通过一段Java程序生成激活码
  10. nosql简述