WildPackets解码器语言参考 中文版,第四部分
创建你自己的解码器
记住,你的解码器和字串数组应该在所有的解码器文件中唯一地命名。如果无法做到这点,系
统不会出现致命错误,但系统可能会被混淆,因为大多数情况下,只有第一出现的才会被找
到。许多协议栈拥有很类似的名字或缩写。明智地选择你的解码器。还由,旧的解码器文件必
须转移出这个应用程序的目录树。
你会不可避免地需要通过改变至少一个现有的解码器文件,连接你的解码器到解析解码器机制的执行流程中。这
里是一些通常会用到的控制点的提示。
新802.2 LSAP 类型
1)对decode.dcd文件做一个备份并将它移动到一个安全的地方。
2)打开原文件
3)定位到LSAP::Names解码器的最后一条指令,那是一条TRTS指令
4)紧接着最后一条TRTS指令后面,添加一个新CEQU指令
5)编辑指令值为一个新的LSAP 16进制值
6)编辑指令字串为一个新的802.2类型名字
7)基于前面的CEQU指令完成指令剩余的部分
接下来步骤,添加跳转点到新的LSAP类型. 通常由两个可能性:两个跳转点,(一个到DSAP和
另一个到SSAP) 或一个同时需要DSAP和SSAP拥有同一个新值的跳转点。
8)定位称为802_2::Common的解码器
9)到解码器的底部,你能看见一个 802_2::Data,这个分支指令就象这样:
TSUB 0 0 0 0 802.2 Data; or TSUB -802.2 Data
|
跟随这个分支到新解码器的802_2::Data
10)定位802_2::Data解码器的最后一条DUMP指令
11) 如果你需要在两个LSAP之中有两个跳转点,则在最后的DUMP指令前,添加两个TEQU指令。一个TEQU
将测试全局变量1而,另一个将测试全局变量2。在解码器中查看上面在处理802.2SNA协议的例子。
12) 如果你想一个跳转点,只要DSAP和SSAP是否同时为新的LSAP值,那么在最后的DUMP指令前,添加
SEQU和TEQU指令。SEQU会测试全局变量1并设置前次测试标志,并且TEQU指令将测试全局变量2,位
TEQU指令使用特殊选项(在全局变量选项中设定高位),如果全局变量匹配,则跳转到命名的解码器。可以
将IP层的处理作为一个例子参考。
13) 编辑你增加指令的值参数
14) 编辑你增加指令的字串为你新的处理新型LSAP协议的解码器的名字。
15) 保存并关闭文件
新型SNAP类型
1. 对decode.dcd文件做一个备份并将它移动到一个安全的地方
2. 打开原文件
3. 定位到称为”SNAP::Names” 解码器
4. 定位到SNAP::Names解码器的最后一条指令,那是一条TRTS指令
5. 在TRTS指令前面,添加一条新CEQU指令
6. 编辑指令值为新的SNAP的16进制值
7. 编辑指令字串为新SNAP类型的名字
8. 基于前面的CEQU指令,完成指令的剩余部分
9. 定位称为SNAP的解码器
10. 定位最后TEQU的指令
11. 在TEQU指令后面,添加一条新的TEQU指令
12. 编辑指令值为新SNAP16进制值
13. 编辑指令字串为新跳转点的名字――解析新SNAP类型的解码器。
14. 基于前面的TEQU指令,完成指令剩余的部分。
15. 保存并推出文件编辑。
新型IP类型
1. 对decode.dcd文件做一个备份并将它移动到一个安全的地方
2. 打开原文件
3. 定位到称为”IP Common” 解码器
4. 在顶部添加新TEQU指令
5. 编辑指令值为新IP类型的的16进制值
6. 编辑指令字串为处理新IP类型的新解码器名字。
7. 保存并关闭文件。
新TCP或UDP类型
1. 对decode.dcd文件做一个备份并将它移动到一个安全的地方
2. 打开原文件
3. 定位到解码器 TCP::Ports_Str
4. 在第一个成员的上面添加新成员, 0x7 | Echo;
这样会测试全局变量2中的原端口号
5. 编辑指令值为新TCP或UDP类型的16进制值
6. 编辑指令字串为处理新TCP或UDP类型的解码器的名字。
7. 检测后续的所有指令。这些指令会测试存储在全局变量2中的目的端口。
8. 在你前面的成员下面添加新的成员,用来测试存储在全局变量2中的目的端口。
9. 象前面一样,编辑指令值和字串。
10. 保存并关闭文件。
全文完
对于指令列表,可以参考WildPacket开发者网站的指令列表原文
decode.dcd 文件,WildPacket公司为了便于用户对解码器文件进行管理,目前已经根据各个协议层的名称,被分解成很多小文件,下面是WildPacket公司的邮件归档,回答了有关decode.dcd文件的来龙去脉。
Zenith
2007/6/7
阅读(2082) | 评论(0) | 转发(0) |