1工程环境准备
打开工程
选择项目
打开属性配置
选择平台和计算机环境,选择本地对应的平台及计算机环境
配置运行环境,选择运行环境
2 使用抓包工具进行抓包
2.1替换管理工具驱DmJdbcDriver.jar包
新增接口 13.1.8-LoginUser 和 13.1.9-StartupInfo,仅在定制的 JDBC 驱动中才可以获取。
替换路径: 打开数据库安装路径,找到以下路径。
.\dmdbms\tool\dropins\com.dameng\plugins\com.dameng.jdbc.driv
ers\
替换文件:DmJdbcDriver.jar(必须重命名为该文件名)
2.2安装wireshark抓包工具
wireshark是常用抓包分析工具,主要以WinPCAP作为接口,可以直接与网卡进行数据报文交换,来实时检测网络通讯数据,检测其抓取的网络通讯数据快照文件。本文中所有的数据库通信包都由wireshark工具进行抓包。
2.3wireshark抓包工具配置
在进行抓包前,先管理工具,避免心跳包进行干扰。所有的包中,带有PSH标识的为数据包,是管理工具往数据库服务发送或数据库服务应答给管理工具的数据,为本次抓包的内容。
点击捕获->选项
选择监控的网络,选择“Adapter for loopback traffic capture”,点击开始即可。
配置显示过滤器,只获取端口为5236的包。在上方输入框中输入“tcp.port==5236”。
至此抓包工具已开始进行监控抓包。
2.4获取抓包数据
打开管理工具,并连接数据库。此时管理工具会向数据库服务建立TCP连接并发送STARTUP消息和登录消息。
从图中看到,前3个包为管理工具与数据库服务建立TCP连接的握手包,往后第一个往5236端口发生的PSH包为STARTUP消息包,第二个往5236端口发生的PSH包则是登录消息包。
点击startup数据,在左下方显示该包的总包长度为188,其中数据长度为144,则从该报的188-144=44位开始为数据包(此数据第三章节会用到)。右下方为该包的16进制数据。
3执行程序进行测试
3.1登录消息数据包测试
将登录消息数据包16进制数据拷贝至dm_cmpp_test.cpp代码中进行定义。
修改dm_cmpp_test.cpp代码,调用 test_LoginUser 接口函数,并注释其他接口函数,其中数据从包的44位开始,长度为 包长-44。
运行程序,查看结果。点击程序运行
运行结果显示此包的登录用户名为:SYSDBA。
3.2Startup消息数据测试
将登录消息数据包16进制数据拷贝至dm_cmpp_test.cpp代码中进行定义。
修改dm_cmpp_test.cpp代码,调用 test_StartupInfo接口函数,并注释其他接口函数,其中数据从包的44位开始,长度为 包长-44。
运行结果显示此包的获取数据功。