点击上方蓝字[协议分析与还原]关注我们


 解密及完全解析通da信股本变迁gbbq权息文件。

前些天,被一位陌生人耍猴了,很不开心,求安慰。这个人,姑且称为讨厌的家伙吧,找我分析通da信gbbq文件的解密算法,报价后满口同意,并提了一堆要求,让我加班加点给他搞定,却在帮他搞定后喊穷乱压价,这个讨厌的家伙真的很是无耻。

言归正传,之前分析过通da信TCP长连接数据的算法:

通da信TCP长连接数据算法分析

它的数据是压缩未加密的。

通da信的资源很丰富,大量的第三方软件依赖它来实现,而在通da信安装目录下的的\T0002\hq_cache目录内,存在gbbq和gbbq.map两个文件,它包含了中国证券市场有史以来所有的股本和权息信息,非常的完整。

另外,通da信有很多不同的券商定制版本,例如招商证券的智远一户通等,皮不一样,本质相同。

gbbq是加密的,而gbbq.map文件则是未加密的很多数字,协议分析与还原公众号将介绍前者解密的方法,并对解密后的数据格式进行解析,然后对后者的含义进行解释,让大家有个开心的体验,掌握第一手的数据,是快人一步的前提。

另外,后续还将对同花顺等软件进行分析,实现一些小功能,有兴趣的可以找我聊聊(微信号ProtoSec)。

01

gbbq文件解密

使用二进制编辑器(例如UE)打开gbbq文件,会看到好多的二进制数据,当然是需要解密的:

仔细观察,头四个字节应该是长度相关的数据,为记录的条数,每条记录29字节,可以去算一算,文件大小对得上,根据分析,算法为3DES,每条记录的前24字节加密,而后5字节没有加密。直接上解密的核心代码,C的:

  unsigned char *pKeyNow=key;unsigned char *pDataNow=*pdata+4;int count=*(int*)*pdata;while (count && pDataNow<*pdata+insz){for (int i = 0; i < 3; i++){unsigned int eax = *((unsigned int*)(pKeyNow + 0x44));unsigned int ebx=*((unsigned int*)(pDataNow));unsigned int num = eax^ebx;unsigned int numold = *((unsigned int*)(pDataNow + 0x4));for (int j = 0x40; j > 0; j = j - 4){ebx = (num & 0xff0000) >> 16;eax = *((unsigned int*)(pKeyNow + ebx * 4 + 0x448));ebx = num >> 24;eax += *((unsigned int*)(pKeyNow + ebx * 4 + 0x48));ebx = (num & 0xff00) >> 8;eax ^= *((unsigned int*)(pKeyNow + ebx * 4 + 0x848));ebx = num & 0xff;eax += *((unsigned int*)(pKeyNow + ebx * 4 + 0xC48));eax ^= *((unsigned int*)(pKeyNow + j));ebx = num;num = numold^eax;numold = ebx;}numold ^= *((unsigned int*)pKeyNow);unsigned int *pInt = (unsigned int*)pDataNow;*pInt = numold;pInt = (unsigned int*)(pDataNow+4);*pInt = num;pDataNow = pDataNow + 8;}pDataNow = pDataNow + 5;count--;}

这里的key是已经初始化好的密钥结构体数据块,具体的过程就是几次异或循环。

解密后,得到明文的数据文件:

诶,还是有乱码,怎么回事呢,其实,这是因为数据本来就是二进制的,需要对数据格式进行解析,继续看后面。

02

gbbq文件数据格式解析

股本变迁gbbq权息文件解密后得到的文件是二进制格式,去除文件前四个字节后,每29字节为一条记录,每条记录里面的数据字段如下:

其中,m为市场类型,占1字节,0为深市,1为沪市。股票代码为字符串,占7字节,其中最后一字节为0。日期为整数,占4字节,为年月日的格式,如图中8DA72F01转下字节序,即为19900301,t为数据类别,占1字节,不同的t值表示不同的数据类型,t值取值区间为1~14,根据t的值不同,之后的四个数据含义不同,数据1、数据2、数据3、数据4这四个数据均是float型数据,各占四字节。

下面列出不同数据类别t的含义以及对应的四个数据的含义:

protosec数据类别t
1 除权除息 数据1  分红数据2  配股价数据3  送转股 数据4  配股
2 送配股上市数据1  前流通盘数据2  前总股本数据3  后流通盘数据4  后总股本
3 非流通股上市数据1  前流通盘数据2  前总股本数据3  后流通盘数据4  后总股本
4 未知股本变动 公众号协议分析与还原数据1   0数据2   0数据3   0数据4   0
5 股本变化数据1  前流通盘数据2  前总股本数据3  后流通盘数据4  后总股本
6 增发新股数据1  0数据2  增发价数据3  增发数量数据4  0
7 股份回购数据1  前流通盘数据2  前总股本数据3  后流通盘数据4  后总股本
8 增发新股上市数据1  前流通盘数据2  前总股本数据3  后流通盘数据4  后总股本
9 转配股上市数据1  前流通盘数据2  前总股本数据3  后流通盘数据4  后总股本
10 可转债上市 protosec数据1  前流通盘数据2  前总股本数据3  后流通盘数据4  后总股本
11 扩缩股数据1  0数据2  0数据3  比例数据4  0
12 非流通股缩股数据1  0数据2  0数据3  比例数据4  0
13 送认购权证数据1  行权价数据2  0数据3  份数数据4  0
14 送认沽权证数据1  行权价数据2  0数据3  份数数据4  0

最终解析出的数据整理后如下:

如果没整理,则是这种形式:

条数,市场,股票代码,日期,数据类别,数据1,数据2,数据3,数据4

0,0,000001,19900301,1,0.0,3.559999942779541,0.0,1.0

1,0,000001,19910403,5,0.0,0.0,2650.0,4850.01708984375

2,0,000001,19910502,1,3.0,0.0,4.0,0.0

3,0,000001,19910502,2,2650.0,4850.01708984375,3949.072265625,8975.1640625

4,0,000001,19910817,1,0.0,0.0,10.0,0.0

5,0,000001,19920323,1,2.0,0.0,5.0,0.0

6,0,000001,19930524,1,3.0,16.0,8.5,1.0

7,0,000001,19930524,2,3949.072265625,8975.1640625,18812.984375,26941.7890625

8,0,000001,19930630,2,18812.984375,26941.7890625,18004.330078125,26125.369140625

9,0,000001,19940709,2,18004.330078125,26125.369140625,19804.76953125,28737.91015625

还是前面整理的好,如果想要解析好了的数据样例,找我获取吧,wx:protosec。

当然,需要注意一下,里面的b股的价格相关数据,是人民币价格,如果要转成美元价格,需要根据当时的汇率转换下。

03

gbbq.map文件数据解析

前面介绍了gbbq文件的解密和解析,这里继续介绍下gbbq.map,它是明文的,没有加密,全部是数字,截取一段内容是这样:

0000017703
0000027760
0000047695
0000056936
0000067760
0000077412
0000087546
0000097756
0000107542
0000117497
0000127775
0000147497
0000167487
0000176808
0000197542
0000206544
0000217548
0000237503
0000257497
0000267699

它的含义很简单,每行一个股票的描述,前6字节为股票代码,后4字节为更新批次,表示gbbq里面该股票的数据最近一次是更新是哪一次,大家可以不纠结它。

04

结束

到这里,对通da信gbbq相关文件的解析就结束了,大家如果对此有什么问题,撩我,不要耍我。再透露下,后面可能会搞搞同花顺的小工具,为大家服务,至于啥时候搞,谁知道呢,祝大家发财。

别忘点“在看”、“赞”和“分享”

新的规则,及时收推文要先给公号星标

别忘了星标一下,不然就错过了

长按进行关注,时刻进行交流。

通da信股本变迁gbbq权息文件解密相关推荐

  1. 通达信股本变迁文件(gbbq)解密方法

    近年来A股市场跌宕起伏真特么精彩,本人愚钝,被整爆仓,损失惨重 痛定思痛,认为交易这种对纪律要求极高,且必须完全排除情绪影响的勾当,还是应该交给程序来干 数据哪里来呢?当然是拿来主义...问券商的交易 ...

  2. 通da信TCP长连接数据算法分析

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 分析通da信TCP长连接内部分数据的算法." 作为一款老牌的炒股软件,通da信里面的数据是相当的丰富,免费的也很丰富,准确性也很好 ...

  3. 复权就是对股价和成交量进行权息修

    * 所谓复权就是对股价和成交量进行权息修复,按照股票的实际涨跌绘制股价走势图,      * 并把成交量调整为相同的股本口径.股票除权.除息之后,股价随之产生了变化,      * 但实际成本并没有变 ...

  4. 从钱龙数据中读取股票权息信息导入到数据库

    从钱龙数据中读取股票权息信息导入到数据库 前面写了如果读股票代码和日线数据,下面是如何读股票的权息信息. 钱龙中权息数据存储在QLDATA/history/shase/weight和QLDATA/hi ...

  5. 吉信通短信接口(HTTP协议) java

    最近学习了吉信通接口的内容,做了简单的短信对接功能.和大家分享一下吉信通短信接口(HTTP协议).吉信通官网上也有相关的代码示例. 吉信通官网:http://www.winic.org/api/Sen ...

  6. destoon7.0第三方短信插件下载 destoon7.0整合云信通短信平台教程

    destoon7.0整合云信通短信插件 destoon7.0完全替代官方短信插件 信通短信价格和阿里大鱼一样,到达速度也差不多,最主要的一个好处是无需设置模板,完全可以继承destoon官方默认模板. ...

  7. 如何使用云信通短信发送生日祝福短信(自动发送哦)

    短信平台的模版短信只是单独给一个对象发送, 1,短信即时响应无延时,模版内容可按您的需求增加. 2,内容限制字数70个字以内,发送的时间为 通讯录 的用户生日日期的当天 3,模版短信用于手动便捷输入发 ...

  8. 亿美软通 短信接口整合(JAVA)

    亿美软通短信 最近公司在用亿美软通短信,这个整体下来感觉不错.文档写的也很清晰,整合起来也不费事.下面来介绍一下整合步骤: 一 首先找到相关的网站,需要向管理人员获取相关的账号(appId)和秘钥(s ...

  9. python读取大智慧数据_大智慧365权息数据格式及读取过程步骤记录

    准备工作 1.十六进制查看软件 UltraEdit 2.查看数据格式 00000000h: 32 C8 43 FF DE 83 CC FF FF FF FF FF 53 48 35 30 ; 2菴迌 ...

最新文章

  1. cakephp中使用大括号的形式避免用点号连接sql语句
  2. listview 的 selection mode 训练小例子
  3. sklearn逻辑回归 极大似然 损失_收藏!攻克目标检测难点秘籍二,非极大值抑制与回归损失优化之路...
  4. 模块XX.dll已加载,但对DllRegisterServer的调用失败
  5. Linux快速搭建FTP服务器
  6. 018 微服务之间调用
  7. 接口的隐式和显式实现
  8. 删除单链表中的重复节点
  9. 现代通信原理4.2:随机过程
  10. 个人经验分享:AD绘制PCB(入门教程)
  11. 【非长篇大论】X3D - Web3D标准的发展
  12. 最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)
  13. apache+php环境配置
  14. 在web of science / 知网 上生成题录
  15. 92套AE抖音快闪模板(精品)
  16. 即时聊天通讯软件安卓+ios双端原生源码
  17. Python学习——异常
  18. WINDOWS程式设计--声音与音乐
  19. N1盒子恢复官改系统最简单的ddbr大法(适用小钢炮以及各种变砖)(转载)
  20. 视频教程-iOS架构设计与底层开发-iOS

热门文章

  1. VM虚拟机安装CentOS7系统后连接不上网络的问题(service netword restart)重启网卡和重置网络编译器
  2. 店盈通:你肯定不知道,拼多多如何打造基础销量
  3. MAC系统下安装homebrew(2020.04)
  4. 等保三级收费-等保三级的办理流程
  5. 交流结果 2020年4月25日
  6. 有没有免费的 BI 软件
  7. 使用PADS绘制排线的细节笔记
  8. 【深度学习】损失函数详解
  9. 三国志9攻略如何打外族
  10. 台式计算机无法访问网络,台式机关机导致局域网内LAN设备无法连接网络