资源简介
一个解析oracle协议的源码
分析比较深入
An oracle protocol parsing code
代码片段和文件信息
/*
* Copyright (c) 2006
* All rights reserved.
*
* 文件名称:Decode.cpp
* 文件标识:
* 摘 要:TCP/IP层包解析(没有进行IP碎片重组和TCP流重组)
*
* 当前版本:0.1
* 作 者:yangjp
* 完成日期:2006年6月21日
*/
#include “decode.h“
#include “rules.h“
#include “tns.h“
#include “tsnaudit.h“
PROTOMAP ProtoMap[MAX_PROTO_NUM]={ //为子协议映射表赋值
{ IPPROTO_IP “IP “ }
{ IPPROTO_ICMP “ICMP“ }
{ IPPROTO_IGMP “IGMP“ }
{ IPPROTO_GGP “GGP “ }
{ IPPROTO_TCP “TCP “ }
{ IPPROTO_PUP “PUP “ }
{ IPPROTO_UDP “UDP “ }
{ IPPROTO_IDP “IDP “ }
{ IPPROTO_ND “NP “ }
{ IPPROTO_RAW “RAW “ }
{ IPPROTO_MAX “MAX “ }
{ NULL ““ } };
char TcpFlag[6]={‘F‘‘S‘‘R‘‘P‘‘A‘‘U‘}; //定义TCP标志位
extern char *strFromIpFilter; // 源IP地址过滤
extern char *strDestIpFilter; // 目的地址过滤
extern int iPortFilter; // 端口过滤
extern char *strSensitive; // 敏感字符串
extern bool ParamTcp; // -t关注TCP 报文
extern bool ParamUdp; // -u关注UDP 报文
extern bool ParamIcmp; // -i关注ICMP报文
extern bool ParamDecode; // -d对协议进行解码
/***************************************************************
Function: DecodeIpPack
Description: 解析IP曾
Input:
1. char *pszIpBuf IP层数据流
2. int iIpBufSize 数据长度
Output:
1. PACKET_INFO *pPacketInfo 解析包的相关信息
Return:
Others:
***************************************************************/
int DecodeIpPack(PACKET_INFO *pPacketInfo char *pszIpBuf int iIpBufSize)
{
if(iIpBufSize < sizeof(IP_HEADER))
{
return -1;
}
IP_HEADER *pIpheader = NULL;
int iProtocol = 0;
SOCKADDR_IN saSource saDest;
// char szProtocol[MAX_PROTO_TEXT_LEN];
char szSourceIP[MAX_ADDR_LEN] szDestIP[MAX_ADDR_LEN];
pIpheader = (IP_HEADER *)pszIpBuf;
pPacketInfo->pszIpHeader = pszIpBuf;
//协议甄别
pPacketInfo->unTranProtocol = pIpheader->proto;
iProtocol = pIpheader->proto;
if((iProtocol==IPPROTO_TCP) && (!ParamTcp)) return 0;
if((iProtocol==IPPROTO_UDP) && (!ParamUdp)) return 0;
if((iProtocol==IPPROTO_ICMP) && (!ParamIcmp)) return 0;
//源地址
pPacketInfo->ulSrcIp = pIpheader->sourceIP;
pPacketInfo->ulDstIp = pIpheader->destIP;
//源地址
saSource.sin_addr.s_addr = pIpheader->sourceIP;
strncpy(szSourceIP inet_ntoa(saSource.sin_addr) MAX_ADDR_LEN);
if (strFromIpFilter)
if (strcmp(strFromIpFilterszSourceIP)) return 0;
//目的地址
saDest.sin_addr.s_addr = pIpheader->destIP;
strncpy(szDestIP inet_ntoa(saDest.sin_addr) MAX_ADDR_LEN);
if (strDestIpFilter)
if (strcmp(strDestIpFilterszDestIP)) return 0;
int iTTL = pIpheader->ttl;
//计算IP首部的长度
int iIphLen = sizeof(unsigned long) * (pIpheader->h_lenver & 0xf);
//根据协议类型分别调用相应的函数
switch(iProtocol)
{
case IPPROTO_TCP :
DecodeTcpPack(pPacke
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
I.A.... 2173 2006-06-25 15:46 TnsAudit\data.txt
I.A.... 74836 2006-05-25 14:14 TnsAudit\data.txt.bak
I.A.... 1075583 2006-06-25 15:46 TnsAudit\data1.txt
I.A.... 12944 2006-05-25 14:27 TnsAudit\data1.txt.bak
I.A.... 6368 2006-06-22 10:37 TnsAudit\decode.cpp
I.A.... 3110 2006-06-22 09:36 TnsAudit\decode.h
I.A...R 147 2006-06-14 14:39 TnsAudit\mssccprj.scc
I.A.... 870 2003-05-07 21:08 TnsAudit\mstcpip.h
I.A.... 1578 2006-05-29 13:44 TnsAudit\output.cpp
I.A.... 3707 2006-06-22 10:31 TnsAudit\rules.cpp
I.A.... 752 2006-06-22 10:31 TnsAudit\rules.h
I.A.... 36167 2006-06-25 15:41 TnsAudit\tns.cpp
I.A.... 47654 2006-06-25 15:26 TnsAudit\tns.h
I.A.... 5115 2006-05-23 16:25 TnsAudit\TnsAudit.cpp
I.A.... 4016 2006-09-07 23:04 TnsAudit\TnsAudit.dsp
I.A.... 539 2006-05-18 09:14 TnsAudit\TnsAudit.dsw
I.A.... 66560 2006-09-07 23:04 TnsAudit\TnsAudit.ncb
I.A.... 53760 2006-09-07 23:04 TnsAudit\TnsAudit.opt
I.A.... 765 2006-05-18 09:14 TnsAudit\TnsAudit.plg
I.A.... 1337 2006-06-14 14:42 TnsAudit\TnsAudit.sln
I.A..H. 13312 2006-06-25 16:06 TnsAudit\TnsAudit.suo
I.A.... 4774 2006-06-14 14:43 TnsAudit\TnsAudit.vcproj
I.A.... 256 2006-06-12 09:36 TnsAudit\TnsAudit.vcproj.vspscc
I.A.... 256 2006-06-12 09:36 TnsAudit\TnsAudit.vssscc
I.A.... 237 2006-06-22 09:33 TnsAudit\tsnaudit.h
I.A.... 432 2006-06-25 12:57 TnsAudit\vssver.scc
I..D... 0 2009-10-28 10:32 TnsAudit
----------- --------- ---------- ----- ----
1417248 27
............此处省略0个文件信息
相关资源
- 破解oracle密码的工具orabf-v0[1].7.6.zip
-
Oracle向Syba
se ASE迁移指南 - 用NetBackup恢复Oracle数据库到异机
- 认识NBU备份Oracle时Code 29错误的解答
- Backup_Exec_ORACLE_RAC_数据库备份恢复指导
- 通过Backup Exec实施Oracle来灾难恢复
- 通过Backup Exec实施Oracle灾难恢复
- Oracle中空间管理对系统性能的影响
- Oracle 10g数据库的安全性和身份管理
- Oracle RAC恢复到单机方案-仅有一个全备
- oracle数据库比对工具
- Oracle非常好的入门、深入PPT
- Oracle数据库基础知识(华为内部培训
- 非常好的Oracle课件
- Oracle产品助力青岛啤酒发展
- Sun/Oracle9i RAC方案在英国BACS公司的应用
- Oracle Linux 6.8 x86_64
- oracle 到mysql转换工具
- 利用Oracle复制技术的灾备解决方案
- Oracle中的优化器如何进行评估优化
- 如何选择Oracle优化器使你事半功倍
- Oracle中文API
- oraclesql高级编程 随书脚本
- oci.dll of Oracle11g
- oracle11g 版本 11.2.0.1.0 帮助文档
- oracle 11g oci.dll for Navicate
- oracle 11g localhost可以访问,ip不能访问
- oracle10g补丁包
- TOAD FOR ORACLE 13 链接带注册码
- toad for oracle 12 注册码
评论
共有 条评论