OKEX区块链解密游戏完整writeup
条评论前言
题干信息
图片中共两条有用信息:
1、一组字母“OKBLOCKCHAIN”
2、12组等式数字
下面是这1个ETH的地址交易记录,如果没被转走,说明还没被破解。Goodluck~
获取助记词
观察可以看到,在等式右边是16进制的字符串。将其转换为10进制后发现均小于2018。可以和eth的助记词关联上。
助记词列表:https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
如:1
7=367
1 | int('367',16) = 871 |
然后在GitHub上的助记词查到871行对应的就是holiday
写段代码批量查表,获得全部助记词
1 | holiday relief seat stomach limb sort learn culture push deer brick wrong |
剩下的就是排序问题。
排序
根据图中提供的字母 “OKBLOCKCHAIN”,再有310BTC的提示,基本就是移位密码了,先取字符的索引。
获取到对应的数字为
1 | 15 11 02 12 15 03 11 03 08 01 09 14 |
剩下未使用的信息就是等式左侧的数字了
1 | 7 14 16 17 19 21 26 28 30 31 40 51 |
观察一下两组数字的关系,刚开始想的太过于复杂,以为是移位密码的算法。走了一些弯路。
后来发现两组数字之间是相加一个质数列表
1 | 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 |
如下:1
215, 11, 02, 12, 15, 03, 11, 03, 08, 01, 09, 14
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37
相加后再等式左侧的数字中找到顺序,就能确定前面获取到的助记词的顺序。
最终的助记词顺序
1 | stomach relief holiday limb learn seat culture sort deer push brick wrong |
(PS:题中的21应该是22吧,官方手抖打错了?不过不影响解密)
恢复钱包
使用钱包导入助记词,然后转账走人~~