上一篇文章中解出了一段神秘的字符串,但是缺少密钥:
U2FsdGVkX19Q3I//VCH0U3c
VtITZ3ckILJnUcdPX3Gs5qjdF
1UjZ3mAftGivtFYDN5ZCSkB
ynnVqBawl4p8wKO0O8zI6D0
A1 VEVCUyEvEeNoUfGcS0
El9d93vsPxbg7D5avufQsScg
sk3QEtq9/M4Do32OKFeq00/
3NrxWOsMmh3AXmDzuuZ0
qmZaI7re16FcXIrmPPiQDO
HRc7wt0ng6qLiNz7VqESR
TdxPOahKFRkWT8sT Ur2y
2iZ2LEaxNM7UZqcPwYg
m6FoKOVjnqdeg30R27jc6
AoFPyRZ2g8 EJMp3n/
pf94oSCLEWkc0osjH9D
qbM6DUptu3HJbAVwXQ==
再来仔细看一下那张价值1400万的比特币谜图,里面有5条线段,另外还散乱地分布着几个字母和数字。
如果你会photoshop的抠图大法,可以把几条线段抠出来,再把图像水平翻转,整体平移与几个数字对齐,可以得到下面这张图。
左上角一条线段连接了L和3,中间偏左有一条线段连接了0和2,底部的线段为9F,右侧有两条线段连接了三个字母5、8和4,字母D外面有一个小圈,表示用它对称的那个数字7。
由于线段没有方向,所以这些字母和数字可能反向排列,总共有5组:
L3、3L 02、20(这里是数字0,因为发布谜题的作者声称没有字母O) 9F、F9 584、485 7
采用暴力破解法,写一段C#程序,生成所有可能的排列组合,总共1920种。
由于运算量不大,代码没有优化。
有了密码之后,需要尝试对以前的“U2Fsd......==”这个字符串进行解密。这里需要用到OpenSSL工具,一个关键的命令行是:
openssl enc -aes-256-cbc
-md md5 -base64
-in "secret.txt" -d
-pass pass:L379F48502
也就是说那串文字是base64编码,加解密的算法使用aes-256-cbc。
C#代码:
关键的函数是OpenSSLDecrypt(),是从网上找来的,网址是:
https://stackoverflow.com/questions/5452422/openssl-encryption-using-net-classes
这里又发现了一串与第一关非常相似的几排数字,应该也是一串助记词。
511 B20 332 328 410 530
245 651 58F C2C 03A 717
401 9AC 36A 53F 4C6 B26
332 328 410 530 491 312
再用20181002移位运算:
除掉冗余的310,剩下12组十六进制数值:
1C4 65F 38E 41C 018 70F 301 78C 2E9 53D 2C5 316 转换成十进制:
452 1631 910 1052 24 1807 769 1932 745 1341 709 790
根据BIP39转换成12个单词的助记词:
debris slim immune lock
actual tide gas vapor
fringe pole flat glance
可惜这些助记词并不能得到正确的钱包地址,谜题的作者设计了一个小把戏,把以前的12个单词合并在一起形成24个单词,钱包的私钥出现了。
cry buyer grain save
vault sign lyrics rhythm
music fury horror mansion
debris slim immune lock
actual tide gas vapor
fringe pole flat glance
地址:
1G7qsUy5x9bUd1pRfhVZ7cuB5cMUP4hsfR
私钥:
KxPEUpQ5BE75UGRUVjNmf8dQuWsmP9jqL3FUUjavdRW69MEcmg6C
当然0.2 BTC早已经被人取走了。
知识就是金钱,第二关的解题,你需要掌握以下技能:
- 图像编辑的抠图
- 排列组合
- OpenSSL
- base64编码
- 十六进制计算
- BIP39助记词
公众号回复【310btc】,取走本文C#源码
回顾以前的过程:
- 价值1400万的比特币谜题
- 解密310 BTC(2)
310个BTC的大奖拿不到没关系,可以用我以前出的一道谜题练练手。谜底里已经藏好了0.001 BTC(当前价值46元,将来是4600元),解出来的朋友直接取走即可,别忘了在这里留言告诉我一声。
第4期谜题 密文正文: steganography
请在公众号回复上面的关键词,拿到图片,就可以开始解题啦。
--- END ---