首页
社区
课程
招聘
[原创]飞秋加密通讯的简单研究...
发表于: 2008-8-15 10:09 8843

[原创]飞秋加密通讯的简单研究...

2008-8-15 10:09
8843

本来想写个详细的,心情有点恶,还是算了吧....
    加密通讯,在这是指两个飞秋用户之间的聊天信息的加密.加密通讯的数据包分为两个部分,一是聊天消息的加密,二是将加密聊天消息的密钥加密,然后将两个加密内容都转换为可显字符.
    A向B要向B发送聊天信息...软件都作了些什么呢?
    1:A向B发送下面这样的一个UDP数据包
char QingQiuMiShi[]="1_1bt2_82#128#00065B901234#0#0#0:1217863660:Administrator:HD-SJK-YHF:114:21003";
    2:B向A应答一个类似上面结构的数据包,其中包含转换成可显示字符的加密通讯密钥.
    3:A用收到的这个密钥加密消并发送给B
      ①:将收到的密钥进行转换,怎样的转换呢?像这样:将字串"EAFB9D45"转换为0x45,0x9D,0xFB,0xEA.注意头尾对换位置.解析出来的通讯密钥长0x80.
      ②:用CryptAcquireContext()创建一个命名的密码容器,将上面解析出来的通讯密钥用CryptImportKey()导入,导入时的密钥=0x10长度的固定数据+上面解析出来的密钥,
     ③:加密要用到两个数据表,在这我称为表a和表b.用上面导入的密钥初始化这两个表(程序在这个和上个步骤之间用了CryptGenRandom产生随机数,所以每次加密结果不一样)
      下面的操作除特别说明外,字长均是DWORD
       ⑴:将一个内存地址的数据赋给表a,长度0x12;
       ⑵:将一个内存地址的数据赋给表b,长度0x400;
       ⑶:用第②步导入的密钥前0x10个字循环异或表a数据
    ⑷:首先调用一加密函数加密为0的两相DWORD字,将结果覆盖表a前面两个DWORD,再将结果作为下一轮加密字调用函数加密,结果再覆盖表a后面的内容。循环上面操作,直到表a内容全部覆盖。
    ⑸:将上面最后一个加密结果,调用加密函数,再加密,将加密结果的两个DWORD覆盖表b的内容,如此循环操作,直到表b也完成覆盖。
    至此两个表初始化完成
    ④:填充待加密消息。将待加密消息长度置为向上的8的整倍数,即如长度为6(包括结尾的\0\字符),那待加密的长度(6/8的商+1)*8=8,待加密消息缓冲不足长度的地方填充字符=待加密长度--原消息长度=0x02。
    ⑤:加密消息。调用函数每次加密两个DWORD值,结果高低位换位,存入原地址,循环直到加密完成。
    ⑥:加密密钥。用CryptEncrypt()将初始化表a、表b的密钥加密。
    ⑦:转换加密结果为可显示字符。形式类似这样:将0xEA,0xAB,0x90,0x12转换为"1290ABEA"的字串,注意头尾换位,而消息密文是不用关尾换位的。
    ⑧:发送消处。将加密后的密钥密文和消息密文以一定形式组合,发送即完成。
本来想给出一图,是测试程序发给目标程序的,谁知要链接...,上传测试程序也不知从哪上传....
      顺便提下,程序的授权码产生流程,不一定正确,用产生一加密密钥(每机不一样),用这密钥初始化表a、表b,调用函数加密特征码,用加密结果作运算产生授权码....
     最后说下,飞秋真的不错,希望大家只作些技术研究,不要作一些注册机,消息攻击器什么的,没意思,这样弄来弄去的就会像CS一样,作弊的多了就没兴趣玩了--还不是怪流传作弊的人...


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 246
活跃值: (91)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
飞秋是一局域网即时聊天软件,最新版是2.4,对在公司不能用互联网的人来说还不错...wahaha
2008-8-15 10:36
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好文章,收藏了,以后有用到的时候方便查找
2008-8-18 19:33
0
雪    币: 244
活跃值: (28)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
飞秋的确是一个非常棒的局域网通讯软件,我最喜欢它支持飞鸽传书这一点,这年头兼容其他软件的作品太少了~~~~
关于授权码,在内存中都是明码比较,做个内存注册机就很简单了。

不得不提的一点是:“char QingQiuMiShi[]=......”难道很多人都念错“密钥”这个词的发音?
“请求密钥”:QingQiuMiYao    “钥匙”:YaoShi,~~~~呵呵
2008-8-19 15:19
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错  收藏了
2008-8-19 15:33
0
游客
登录 | 注册 方可回帖
返回
//