通da信股本变迁gbbq权息文件解密
点击上方↑↑↑蓝字[协议分析与还原]关注我们
“ 解密及完全解析通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权息文件解密相关推荐
- 通达信股本变迁文件(gbbq)解密方法
近年来A股市场跌宕起伏真特么精彩,本人愚钝,被整爆仓,损失惨重 痛定思痛,认为交易这种对纪律要求极高,且必须完全排除情绪影响的勾当,还是应该交给程序来干 数据哪里来呢?当然是拿来主义...问券商的交易 ...
- 通da信TCP长连接数据算法分析
点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 分析通da信TCP长连接内部分数据的算法." 作为一款老牌的炒股软件,通da信里面的数据是相当的丰富,免费的也很丰富,准确性也很好 ...
- 复权就是对股价和成交量进行权息修
* 所谓复权就是对股价和成交量进行权息修复,按照股票的实际涨跌绘制股价走势图, * 并把成交量调整为相同的股本口径.股票除权.除息之后,股价随之产生了变化, * 但实际成本并没有变 ...
- 从钱龙数据中读取股票权息信息导入到数据库
从钱龙数据中读取股票权息信息导入到数据库 前面写了如果读股票代码和日线数据,下面是如何读股票的权息信息. 钱龙中权息数据存储在QLDATA/history/shase/weight和QLDATA/hi ...
- 吉信通短信接口(HTTP协议) java
最近学习了吉信通接口的内容,做了简单的短信对接功能.和大家分享一下吉信通短信接口(HTTP协议).吉信通官网上也有相关的代码示例. 吉信通官网:http://www.winic.org/api/Sen ...
- destoon7.0第三方短信插件下载 destoon7.0整合云信通短信平台教程
destoon7.0整合云信通短信插件 destoon7.0完全替代官方短信插件 信通短信价格和阿里大鱼一样,到达速度也差不多,最主要的一个好处是无需设置模板,完全可以继承destoon官方默认模板. ...
- 如何使用云信通短信发送生日祝福短信(自动发送哦)
短信平台的模版短信只是单独给一个对象发送, 1,短信即时响应无延时,模版内容可按您的需求增加. 2,内容限制字数70个字以内,发送的时间为 通讯录 的用户生日日期的当天 3,模版短信用于手动便捷输入发 ...
- 亿美软通 短信接口整合(JAVA)
亿美软通短信 最近公司在用亿美软通短信,这个整体下来感觉不错.文档写的也很清晰,整合起来也不费事.下面来介绍一下整合步骤: 一 首先找到相关的网站,需要向管理人员获取相关的账号(appId)和秘钥(s ...
- python读取大智慧数据_大智慧365权息数据格式及读取过程步骤记录
准备工作 1.十六进制查看软件 UltraEdit 2.查看数据格式 00000000h: 32 C8 43 FF DE 83 CC FF FF FF FF FF 53 48 35 30 ; 2菴迌 ...
最新文章
- cakephp中使用大括号的形式避免用点号连接sql语句
- listview 的 selection mode 训练小例子
- sklearn逻辑回归 极大似然 损失_收藏!攻克目标检测难点秘籍二,非极大值抑制与回归损失优化之路...
- 模块XX.dll已加载,但对DllRegisterServer的调用失败
- Linux快速搭建FTP服务器
- 018 微服务之间调用
- 接口的隐式和显式实现
- 删除单链表中的重复节点
- 现代通信原理4.2:随机过程
- 个人经验分享:AD绘制PCB(入门教程)
- 【非长篇大论】X3D - Web3D标准的发展
- 最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)
- apache+php环境配置
- 在web of science / 知网 上生成题录
- 92套AE抖音快闪模板(精品)
- 即时聊天通讯软件安卓+ios双端原生源码
- Python学习——异常
- WINDOWS程式设计--声音与音乐
- N1盒子恢复官改系统最简单的ddbr大法(适用小钢炮以及各种变砖)(转载)
- 视频教程-iOS架构设计与底层开发-iOS