紧急求助,C高手请进

fbchenyong 2002-01-03 11:52:53
我有一段代码,要求必须今晚就写出来。要求用标准C语言编写。各位大哥帮帮小弟吧,小弟感激不尽,小弟在线等待。

需求为
一、数据包第一字节与"D6"异或,得到密钥。

二、将数据包与密钥异或得到明文。

三、检测发送字节是否等于"F1",第4字节是否等于"12",若两条件成立则进行下一步,否则照发。

四、继续检查客户端发送的包,检测每一个ClientToServer数据包,如果有"BC",则向前检查3个字节,第1与第2如果得"D6 26",表示它为向服务器申请的包;此时进行该包的重装。

重装步骤如下:
1、“BC”前一个字节为包长度,第8点处修改;
2、“BC”后一个字节为GE总数(改为原GE数量+新增GE数量),下一个字节不变;
3、接下来每10个字节1组,前4字节为代码,后六个字节不变,取出第一组的这6个字节以备新增GE用(例如存入Byte());
4、跳到 原GE数量*10 字节处,插入新数据;
(加入新的GE数据:)
5、取出最后1个GE的代码,加1000,作为新GE代码,后6字节与原包第1个GE相同。
6、下一个GE代码在前一个基础上加1000,后6字节与原包第1个GE相同。
7、以下新GE组装与6相同。(循环次数由新增GE常量决定)
8、计算"D6 26 XX BC"长度,修改XX长度位字节数。
9、将修改后的包与密钥异或,得到加密包。

五、将重装后的包发送服务器端。


六、接收ServerToClient数据包,检测是否含有第1个GE的代码,如果有,则检测前面六个字节,如果1、2为"D6 26",4为"B7",5为GE数量,则此包为服务器向客户端发送的确认包,重装此包。(检测到后不再检测)

重装步骤如下:
1、将新增GE按18字节每组重装包:
"D6 26 F4 CB"+GE代码+byte(0)+"E2 E2"+byte(3)+"29 E7 E2 E2 E2 E2"

2、将新增GE包连接,后面加上截获的ServerToClient确认包

3、将修改后的包与密钥异或,得到加密包。

七、将重装后的包发送到客户端。


其他数据包原样照发。

...全文
31 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fbchenyong 2002-01-04
怎么,没人愿意帮我吗?
有人能帮我写出代码吗?
回复
yicn 2002-01-04
看不懂啊!无能为力!
回复
MAX°孟兆 2002-01-04
又拿课题出来找人帮你做?
回复
leisureftso 2002-01-04
我想帮但无能为力
回复
相关推荐
发帖
非技术区
创建于2007-09-28

1.5w+

社区成员

C/C++ 非技术区
申请成为版主
帖子事件
创建了帖子
2002-01-03 11:52
社区公告
暂无公告