速通攻略

第0关

第0关实际上十分简单,使用F12法或源代码法均可找到下一关:

DevTools 中控制台的提示

view-source:https://3rd.cocotais.cn/ 中的源代码

第1关

第1关是一个分水岭。在这一关,所有的个人选手都马失前蹄,止步于此。

攻略·技术·源码 - 图3

乍一看,好像没有什么可用的信息。我们先从这些文字入手,如果你能及时联想到进制转换,那么这个信息就好找了。我们打开一个进制转换工具,输入特征最明显的第一个文本,选择二进制:

攻略·技术·源码 - 图4

如果你的注意力惊人,一眼就可以注意到36进制里的7z。如果你的注意力不惊人,就可以通过源码查看法寻找线索。

攻略·技术·源码 - 图5

在DevTools的网络面板中,找到含有editor链接且状态为200的一个请求,复制请求链接并访问,就可以进入这个作品的源代码页面:

攻略·技术·源码 - 图6

如果你的注意力较为惊人,可以发现在控制台[打印]积木的参数字数分别为735,其对应的36进制即为7z7z

得到了7z这个信息,我们便可以把图片下载下来,进行研究。将图片使用7z打开后,便可以得到两个文件:

  • generate_image.c(C语言文件)
  • target.txt(一串加密的文本)

先不着急,继续把作品文件看完。一通分析过后,代码区只剩下一部分积木没有分析了:攻略·技术·源码 - 图7。我们来看一看这个变量:

攻略·技术·源码 - 图8

毫无疑问,我们需要看一看这个作品workId的第4个字符。230410657的第4个字符便是4

再来看舞台。舞台出现了两个我们没有在H5链接看到的东西:

  • 商业机密
  • 每字为一,火烧令坚。——沈括《梦溪笔谈》

第一个线索“商业机密”,在搜索引擎上搜索商业机密 加密等关键词即可搜到商用密码这一定义。而继续在搜索引擎上搜索商用密码 加密,便可以轻松搜到<font style="color:rgb(77, 77, 77);">ZUC, SM2, SM3, SM4, SM9</font>等加密方式。联系刚刚得到的字符<font style="color:rgb(77, 77, 77);">4</font>,便可以确定<font style="color:rgb(77, 77, 77);">target.txt</font>的加密方式为<font style="color:rgb(77, 77, 77);">SM4</font>

不着急进行解密,我们再来看沈括的《梦溪笔谈》。这句话中用粗体加粗了一个字“印”。通过上网搜索,可以确定其释义为<font style="color:rgb(77, 77, 77);">字模</font> 这样,这个CoCo作品就算被我们剖析透彻了。让我们进入下一部分的解密环节。

第2关

首先,我们尝试用SM4解密target.txt,会发现缺少密钥和偏移量。我们直接跳过,来看generate_image.c

  1. #include <stdio.h>
  2. static const unsigned char bitmap_bytes[] = {
  3. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6. 0x3f, 0xff, 0xe0, 0xc1, 0x8f, 0x07, 0xff, 0xf8,
  7. 0x3f, 0xff, 0xe0, 0xc1, 0x8f, 0x07, 0xff, 0xf8,
  8. 0x38, 0x00, 0xe3, 0x07, 0xf3, 0x06, 0x00, 0x18,
  9. 0x38, 0x00, 0xe7, 0x07, 0xf3, 0x06, 0x00, 0x18,
  10. 0x38, 0x00, 0xe7, 0x0f, 0xf7, 0x06, 0x00, 0x18,
  11. 0x39, 0xfc, 0xe7, 0xff, 0x8f, 0x06, 0x3f, 0x98,
  12. 0x39, 0xfc, 0xe3, 0xff, 0x0f, 0x06, 0x3f, 0x98,
  13. 0x39, 0xfc, 0xe0, 0xfe, 0x0c, 0x06, 0x3f, 0x98,
  14. 0x39, 0xfc, 0xe0, 0xfe, 0x0c, 0x06, 0x3f, 0x98,
  15. 0x39, 0xfc, 0xe7, 0x00, 0x0f, 0xc6, 0x3f, 0x98,
  16. 0x39, 0xfc, 0xe7, 0x00, 0x0f, 0xc6, 0x3f, 0x98,
  17. 0x38, 0xfc, 0xe7, 0x00, 0x0f, 0xc6, 0x3f, 0x18,
  18. 0x38, 0x00, 0xe7, 0xc6, 0x03, 0xc6, 0x00, 0x18,
  19. 0x38, 0x00, 0xe7, 0xc6, 0x03, 0xc7, 0x00, 0x18,
  20. 0x3f, 0xff, 0xe7, 0x39, 0x8c, 0xc7, 0xff, 0xf8,
  21. 0x1f, 0xff, 0xe7, 0x39, 0x8c, 0xc7, 0xff, 0xf8,
  22. 0x00, 0x00, 0x07, 0xc1, 0x8c, 0xc0, 0x00, 0x00,
  23. 0x00, 0x00, 0x07, 0xc1, 0x8c, 0xc0, 0x00, 0x00,
  24. 0x1e, 0x30, 0x7c, 0x31, 0xfc, 0xc3, 0xe1, 0xe0,
  25. 0x3e, 0x70, 0xf8, 0x39, 0xfc, 0xc7, 0xf1, 0xe0,
  26. 0x1e, 0x70, 0x78, 0x39, 0xfc, 0xc7, 0xf1, 0xe0,
  27. 0x01, 0x80, 0x18, 0x3e, 0x7c, 0xc6, 0x00, 0x18,
  28. 0x01, 0x80, 0x1c, 0x3e, 0x7c, 0xc6, 0x00, 0x18,
  29. 0x06, 0x71, 0xff, 0xf8, 0x70, 0x06, 0x00, 0x78,
  30. 0x06, 0x73, 0xff, 0xf8, 0x70, 0x06, 0x00, 0x78,
  31. 0x0e, 0x73, 0xff, 0xf8, 0xf0, 0x07, 0x00, 0x78,
  32. 0x3e, 0x7c, 0x18, 0x07, 0xfc, 0xc7, 0xf0, 0x00,
  33. 0x3e, 0x7c, 0x18, 0x07, 0xfc, 0xc7, 0xf0, 0x00,
  34. 0x3e, 0x70, 0xe0, 0x07, 0xf3, 0xfe, 0x0e, 0x78,
  35. 0x1e, 0x70, 0xe0, 0x07, 0xf3, 0xff, 0x0e, 0x78,
  36. 0x00, 0x0f, 0x00, 0xf8, 0x00, 0xc7, 0xcf, 0x98,
  37. 0x00, 0x0f, 0x00, 0xf8, 0x00, 0xc7, 0xcf, 0x98,
  38. 0x00, 0x0f, 0x00, 0xf8, 0x00, 0xc7, 0xcf, 0x98,
  39. 0x38, 0x0c, 0xe7, 0xff, 0x80, 0x39, 0xf1, 0x98,
  40. 0x18, 0x0c, 0xe3, 0xff, 0x80, 0x30, 0xf1, 0x98,
  41. 0x06, 0x73, 0x00, 0xc1, 0xfc, 0xc0, 0x30, 0x60,
  42. 0x06, 0x73, 0x00, 0xc1, 0xfc, 0xc0, 0x30, 0x60,
  43. 0x3f, 0xf0, 0xf8, 0x07, 0x83, 0xff, 0xff, 0x80,
  44. 0x3f, 0xf0, 0xf8, 0x07, 0x83, 0xff, 0xff, 0x80,
  45. 0x00, 0x00, 0x07, 0xc7, 0x8f, 0xe0, 0x7e, 0x18,
  46. 0x00, 0x00, 0x07, 0xc7, 0x8f, 0xc0, 0x3e, 0x18,
  47. 0x00, 0x00, 0x07, 0xc7, 0x8f, 0xc0, 0x3e, 0x18,
  48. 0x1f, 0xff, 0xe7, 0x38, 0x0f, 0xc6, 0x3e, 0x78,
  49. 0x3f, 0xff, 0xe7, 0x38, 0x0f, 0xc6, 0x3e, 0x78,
  50. 0x38, 0x00, 0xe0, 0x38, 0x0c, 0xc0, 0x3f, 0x98,
  51. 0x38, 0x00, 0xe0, 0x38, 0x0c, 0xc0, 0x3f, 0x98,
  52. 0x38, 0x00, 0xe0, 0x38, 0x1c, 0xe0, 0x7f, 0x98,
  53. 0x39, 0xfc, 0xe0, 0xc7, 0xfc, 0xff, 0xfe, 0x60,
  54. 0x39, 0xfc, 0xe0, 0xc7, 0xfc, 0xff, 0xfe, 0x60,
  55. 0x39, 0xfc, 0xe7, 0xc1, 0xff, 0x01, 0xff, 0x80,
  56. 0x39, 0xfc, 0xe3, 0xc1, 0xff, 0x01, 0xff, 0x80,
  57. 0x39, 0xfc, 0xe1, 0xc1, 0x9f, 0x11, 0xf3, 0x98,
  58. 0x39, 0xfc, 0xe0, 0xc1, 0x8f, 0x39, 0xf1, 0x98,
  59. 0x38, 0xfc, 0xe0, 0xc1, 0x8f, 0x30, 0xf1, 0x18,
  60. 0x38, 0x00, 0xe3, 0x07, 0xf0, 0xc0, 0x0e, 0x00,
  61. 0x38, 0x00, 0xe7, 0x07, 0xf0, 0xc0, 0x0e, 0x00,
  62. 0x3f, 0xff, 0xe7, 0x3f, 0xff, 0xc7, 0xc0, 0x78,
  63. 0x1f, 0xff, 0xe3, 0x3f, 0xff, 0xc7, 0xc0, 0x78,
  64. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  65. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  66. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  67. };
  68. int main(){
  69. FILE *f = fopen("image.bin", "wb");
  70. fwrite(bitmap_bytes, 1, sizeof(bitmap_bytes), f);
  71. fclose(f);
  72. return 0;
  73. }

如果你的电脑上存在mingwVisual Studio等工具,可以直接尝试编译此文件:

  1. gcc generate_image.c -o image

随后运行得到的程序,会生成一个image.bin。这是一个二进制文件,但通过阅读源代码可知,里面存储的是十六进制的数据,再联系之前的字模,即可知道这个文件是字模的原始数据。在搜索引擎搜索数据转字模,可找到转换工具:

链接请见 文档·关卡·工具 文档

对十六进制数据稍加处理,可以得到:

  1. 00 00 00 00 00 00 00 00
  2. 00 00 00 00 00 00 00 00
  3. 00 00 00 00 00 00 00 00
  4. 3f ff e0 c1 8f 07 ff f8
  5. 3f ff e0 c1 8f 07 ff f8
  6. 38 00 e3 07 f3 06 00 18
  7. 38 00 e7 07 f3 06 00 18
  8. 38 00 e7 0f f7 06 00 18
  9. 39 fc e7 ff 8f 06 3f 98
  10. 39 fc e3 ff 0f 06 3f 98
  11. 39 fc e0 fe 0c 06 3f 98
  12. 39 fc e0 fe 0c 06 3f 98
  13. 39 fc e7 00 0f c6 3f 98
  14. 39 fc e7 00 0f c6 3f 98
  15. 38 fc e7 00 0f c6 3f 18
  16. 38 00 e7 c6 03 c6 00 18
  17. 38 00 e7 c6 03 c7 00 18
  18. 3f ff e7 39 8c c7 ff f8
  19. 1f ff e7 39 8c c7 ff f8
  20. 00 00 07 c1 8c c0 00 00
  21. 00 00 07 c1 8c c0 00 00
  22. 1e 30 7c 31 fc c3 e1 e0
  23. 3e 70 f8 39 fc c7 f1 e0
  24. 1e 70 78 39 fc c7 f1 e0
  25. 01 80 18 3e 7c c6 00 18
  26. 01 80 1c 3e 7c c6 00 18
  27. 06 71 ff f8 70 06 00 78
  28. 06 73 ff f8 70 06 00 78
  29. 0e 73 ff f8 f0 07 00 78
  30. 3e 7c 18 07 fc c7 f0 00
  31. 3e 7c 18 07 fc c7 f0 00
  32. 3e 70 e0 07 f3 fe 0e 78
  33. 1e 70 e0 07 f3 ff 0e 78
  34. 00 0f 00 f8 00 c7 cf 98
  35. 00 0f 00 f8 00 c7 cf 98
  36. 00 0f 00 f8 00 c7 cf 98
  37. 38 0c e7 ff 80 39 f1 98
  38. 18 0c e3 ff 80 30 f1 98
  39. 06 73 00 c1 fc c0 30 60
  40. 06 73 00 c1 fc c0 30 60
  41. 3f f0 f8 07 83 ff ff 80
  42. 3f f0 f8 07 83 ff ff 80
  43. 00 00 07 c7 8f e0 7e 18
  44. 00 00 07 c7 8f c0 3e 18
  45. 00 00 07 c7 8f c0 3e 18
  46. 1f ff e7 38 0f c6 3e 78
  47. 3f ff e7 38 0f c6 3e 78
  48. 38 00 e0 38 0c c0 3f 98
  49. 38 00 e0 38 0c c0 3f 98
  50. 38 00 e0 38 1c e0 7f 98
  51. 39 fc e0 c7 fc ff fe 60
  52. 39 fc e0 c7 fc ff fe 60
  53. 39 fc e7 c1 ff 01 ff 80
  54. 39 fc e3 c1 ff 01 ff 80
  55. 39 fc e1 c1 9f 11 f3 98
  56. 39 fc e0 c1 8f 39 f1 98
  57. 38 fc e0 c1 8f 30 f1 18
  58. 38 00 e3 07 f0 c0 0e 00
  59. 38 00 e7 07 f0 c0 0e 00
  60. 3f ff e7 3f ff c7 c0 78
  61. 1f ff e3 3f ff c7 c0 78
  62. 00 00 00 00 00 00 00 00
  63. 00 00 00 00 00 00 00 00
  64. 00 00 00 00 00 00 00 00

复制进网站,调整一下配置信息:

攻略·技术·源码 - 图10

随后进行转换。转换完毕,可以得到一个二维码:

攻略·技术·源码 - 图11

第3关

扫描二维码,可以进入一个网站:https://crypto.cocotais.cn/

攻略·技术·源码 - 图12

不慌,我们看一下他的证书:

攻略·技术·源码 - 图13

前往https://coco-3rd-anniversary-crypto.cocotais.cn/,随后忽略安全提示。

攻略·技术·源码 - 图14
有一把绿色的锁。我们不管,先来看DevTools里有没有信息。

攻略·技术·源码 - 图15

在响应头,我们获得了cbc: key:32bced1446a62cae09fbbba9ebeb0db2x-crypto-in-last-challenge: sha1。不着急利用这些信息,我们再仔细看看这个网站特殊的证书:

攻略·技术·源码 - 图16

果不其然,证书内暗藏玄机。我们将组织单位字段发送至上述邮箱:

攻略·技术·源码 - 图17

稍等,即可收到回复:

攻略·技术·源码 - 图18

这样,我们又得到了PKCS7 offset:e58cf97a7061ff5bdf9d008dbe970590

现在,我们有了这些信息:

  • CBC
  • PKCS7
  • key 32bced1446a62cae09fbbba9ebeb0db2
  • offset e58cf97a7061ff5bdf9d008dbe970590
  • sha1

我们先忽略sha1,因为其标题是x-crypto-in-last-challenge,而这关显然不是最后一关。我们将以上信息连同target.txt填入SM4的加解密工具中:

攻略·技术·源码 - 图19

得到这一串结果:

  1. 4D7A457A4E544D324D6B557A4D6A4D794D7A517952544D794D7A597952544D784D7A677A4D773D3D
  2. [D7g,W;HaUkwNQUoJBLKq@{@t72/4QwiKuV3^!MI"%/=@bGf1G&I
  3. 你的待加密的验证码是:Happy CoCo 3rd Anniversary!
  4. 请根据前一关的提示,对验证码进行加密
  5. 你需要输入加密过的验证码,以结束解密
  6. 祝好运

第4关

我们先看第一行:4D7A457A4E544D324D6B557A4D6A4D794D7A517952544D794D7A597952544D784D7A677A4D773D3D。看起来,这是一个MD5哈希过的值,但如果多开脑洞思考一下,就可以想到base16``base32等编码方式,接下来留给我们的就是反复测试了:

0 初始 4D7A457A4E544D324D6B557A4D6A4D794D7A517952544D794D7A597952544D784D7A677A4D773D3D
1 base16 MzEzNTM2MkUzMjMyMzQyRTMyMzYyRTMxMzgzMw==
2 base64 3135362E3232342E32362E313833
3 base16 156.224.26.183

这样,我们就可以得到一个IP地址:<font style="color:rgb(17, 17, 17);">156.224.26.183</font>

接下来我们看第二行:<font style="color:rgb(17, 17, 17);">[D7g,W;HaUkwNQUoJBLKq@{@t72/4QwiKuV3^!MI"%/=@bGf1G&I</font>。看到如此多的符号,应该可以联想到<font style="color:rgb(17, 17, 17);">base91</font>等编码方式。我们测试一下:
0 初始 [D7g,W;HaUkwNQUoJBLKq@{@t72/4QwiKuV3^!MI”%/=@bGf1G&I
1 base91 base dashboard shrcnRS4z1bdPtvYrQwQwzZXWBc

这样,我们可以得到一串字符:<font style="color:rgb(17, 17, 17);">base dashboard shrcnRS4z1bdPtvYrQwQwzZXWBc</font>

如果你是忠实的飞书用户,看到<font style="color:rgb(17, 17, 17);">base</font>``<font style="color:rgb(17, 17, 17);">dashboard</font>应该就可以想到飞书多维表格。我们将<font style="color:rgb(17, 17, 17);">base dashboard shrcnRS4z1bdPtvYrQwQwzZXW</font>处理为<font style="color:rgb(17, 17, 17);">/base/dashboard/shrcnRS4z1bdPtvYrQwQwzZXWBc</font>,前面加上公告里飞书文档的域名<font style="color:rgb(17, 17, 17);">https://cocotais.feishu.cn/share</font>,就可以得到一个URL:
  1. https://cocotais.feishu.cn/share/base/dashboard/shrcnRS4z1bdPtvYrQwQwzZXWBc

访问,即可看到一个飞书仪表盘:

攻略·技术·源码 - 图20

先看上面的文本框。如果你注意力惊人,可以发现加 油 , 向前 冲 !暗藏玄机。其中包含了空格、汉字与标点符号。再看右下角的提示bin2hex,打开脑洞,就可以想到是将上面的文本处理成二进制,然后转为十六进制。我们将标点符号作为分隔符,可以得到这几串文本:加 油 `` 向前 冲 `` 。将空格作为0,汉字作为1,可以得到这几串二进制值:00100100``01101000``00000000,分别转换可以得到24``68``024680。展开联想,就可以知道这应该是前面得到的IP的端口号。

再看ccdc/data_given。如果你记忆力很好,可以发现这个前缀ccdc/和之前小水獭图片存放位置是相符的。我们访问https://cdn.cocotais.cn/ccdc/data_given,得到一串信息:

  1. 63EC3142C68710C9
  2. Tips:
  3. IDEA - "_"
  4. All the given information in last part
  5. is as same as this part
  6. except the offset & the ciphertext
  7. Happy CoCo 3rd Anniversary!
  8. MD5?

好,我们从第一行开始看。63EC3142C68710C9,经过测试,可以发现并不是base16等编码方式。看第四行IDEA - "_",如果你想象力丰富,可以立刻得出结果TDEA,即Triple DES。根据5~7行,填入已知信息:

攻略·技术·源码 - 图21

观察到最后一行,让我们MD5。又可以发现偏移量要求64 bits,可知结果须取16位。我们用MD5对剩余的一行Happy CoCo 3rd Anniversary!进行哈希,得到16位结果46a62cae09fbbba9。填入偏移量,解密得到telnet

攻略·技术·源码 - 图22

第5关

根据上一关的信息,我们可以推断出这样一串命令:

  1. telnet 156.224.26.183 24680

运行,得到以下结果:

  1. Trying 156.224.26.183...
  2. Connected to 156.224.26.183.
  3. Escape character is '^]'.
  4. Welcome to the verify server!
  5. You should enter your code after the determiner '~>'.
  6. Due to some reasons, you could not edit your input.
  7. Press 'Ctrl+C' to quit.
  8. Verify your SM4 offset(IV):

这里,需要验证在SM4解密时所用的偏移量。我们输入e58cf97a7061ff5bdf9d008dbe970590然后回车,进入验证环节。

  1. Verify your SM4 offset(IV): e58cf97a7061ff5bdf9d008dbe970590
  2. ~>

回到SM4的文本:

  1. 你的待加密的验证码是:Happy CoCo 3rd Anniversary!
  2. 请根据前一关的提示,对验证码进行加密
  3. 你需要输入加密过的验证码,以结束解密

联系x-crypto-in-last-challenge可知,加密方式为sha1。在网上找一个工具,将Happy CoCo 3rd Anniversary!哈希得8AE4F85617F021F5C15CF029656E063BB700E7A3

  1. ~> 8AE4F85617F021F5C15CF029656E063BB700E7A3
  2. Wow! You have passed the verification!

最后,按照要求填写自己的邮箱,随后加入邮件内发送的QQ群即可。

技术列表

  • CoCo编辑器
  • HTML+CSS+JavaScript
  • 7zip
  • C
  • SM4
  • SSL证书
  • 进制转换
  • Base编解码
  • Rust
  • IMAP
  • telnet

源码公开

星河璀璨 三载同行 首页

施工中

CoCo作品

https://creation.codemao.cn/716/appcraft/JSON_UsFp8maJ0Z_1721044171852.json

小水獭图片

append.jpg=crypt.7z+original.jpg

generate_image.c

  1. #include <stdio.h>
  2. static const unsigned char bitmap_bytes[] = {
  3. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  6. 0x3f, 0xff, 0xe0, 0xc1, 0x8f, 0x07, 0xff, 0xf8,
  7. 0x3f, 0xff, 0xe0, 0xc1, 0x8f, 0x07, 0xff, 0xf8,
  8. 0x38, 0x00, 0xe3, 0x07, 0xf3, 0x06, 0x00, 0x18,
  9. 0x38, 0x00, 0xe7, 0x07, 0xf3, 0x06, 0x00, 0x18,
  10. 0x38, 0x00, 0xe7, 0x0f, 0xf7, 0x06, 0x00, 0x18,
  11. 0x39, 0xfc, 0xe7, 0xff, 0x8f, 0x06, 0x3f, 0x98,
  12. 0x39, 0xfc, 0xe3, 0xff, 0x0f, 0x06, 0x3f, 0x98,
  13. 0x39, 0xfc, 0xe0, 0xfe, 0x0c, 0x06, 0x3f, 0x98,
  14. 0x39, 0xfc, 0xe0, 0xfe, 0x0c, 0x06, 0x3f, 0x98,
  15. 0x39, 0xfc, 0xe7, 0x00, 0x0f, 0xc6, 0x3f, 0x98,
  16. 0x39, 0xfc, 0xe7, 0x00, 0x0f, 0xc6, 0x3f, 0x98,
  17. 0x38, 0xfc, 0xe7, 0x00, 0x0f, 0xc6, 0x3f, 0x18,
  18. 0x38, 0x00, 0xe7, 0xc6, 0x03, 0xc6, 0x00, 0x18,
  19. 0x38, 0x00, 0xe7, 0xc6, 0x03, 0xc7, 0x00, 0x18,
  20. 0x3f, 0xff, 0xe7, 0x39, 0x8c, 0xc7, 0xff, 0xf8,
  21. 0x1f, 0xff, 0xe7, 0x39, 0x8c, 0xc7, 0xff, 0xf8,
  22. 0x00, 0x00, 0x07, 0xc1, 0x8c, 0xc0, 0x00, 0x00,
  23. 0x00, 0x00, 0x07, 0xc1, 0x8c, 0xc0, 0x00, 0x00,
  24. 0x1e, 0x30, 0x7c, 0x31, 0xfc, 0xc3, 0xe1, 0xe0,
  25. 0x3e, 0x70, 0xf8, 0x39, 0xfc, 0xc7, 0xf1, 0xe0,
  26. 0x1e, 0x70, 0x78, 0x39, 0xfc, 0xc7, 0xf1, 0xe0,
  27. 0x01, 0x80, 0x18, 0x3e, 0x7c, 0xc6, 0x00, 0x18,
  28. 0x01, 0x80, 0x1c, 0x3e, 0x7c, 0xc6, 0x00, 0x18,
  29. 0x06, 0x71, 0xff, 0xf8, 0x70, 0x06, 0x00, 0x78,
  30. 0x06, 0x73, 0xff, 0xf8, 0x70, 0x06, 0x00, 0x78,
  31. 0x0e, 0x73, 0xff, 0xf8, 0xf0, 0x07, 0x00, 0x78,
  32. 0x3e, 0x7c, 0x18, 0x07, 0xfc, 0xc7, 0xf0, 0x00,
  33. 0x3e, 0x7c, 0x18, 0x07, 0xfc, 0xc7, 0xf0, 0x00,
  34. 0x3e, 0x70, 0xe0, 0x07, 0xf3, 0xfe, 0x0e, 0x78,
  35. 0x1e, 0x70, 0xe0, 0x07, 0xf3, 0xff, 0x0e, 0x78,
  36. 0x00, 0x0f, 0x00, 0xf8, 0x00, 0xc7, 0xcf, 0x98,
  37. 0x00, 0x0f, 0x00, 0xf8, 0x00, 0xc7, 0xcf, 0x98,
  38. 0x00, 0x0f, 0x00, 0xf8, 0x00, 0xc7, 0xcf, 0x98,
  39. 0x38, 0x0c, 0xe7, 0xff, 0x80, 0x39, 0xf1, 0x98,
  40. 0x18, 0x0c, 0xe3, 0xff, 0x80, 0x30, 0xf1, 0x98,
  41. 0x06, 0x73, 0x00, 0xc1, 0xfc, 0xc0, 0x30, 0x60,
  42. 0x06, 0x73, 0x00, 0xc1, 0xfc, 0xc0, 0x30, 0x60,
  43. 0x3f, 0xf0, 0xf8, 0x07, 0x83, 0xff, 0xff, 0x80,
  44. 0x3f, 0xf0, 0xf8, 0x07, 0x83, 0xff, 0xff, 0x80,
  45. 0x00, 0x00, 0x07, 0xc7, 0x8f, 0xe0, 0x7e, 0x18,
  46. 0x00, 0x00, 0x07, 0xc7, 0x8f, 0xc0, 0x3e, 0x18,
  47. 0x00, 0x00, 0x07, 0xc7, 0x8f, 0xc0, 0x3e, 0x18,
  48. 0x1f, 0xff, 0xe7, 0x38, 0x0f, 0xc6, 0x3e, 0x78,
  49. 0x3f, 0xff, 0xe7, 0x38, 0x0f, 0xc6, 0x3e, 0x78,
  50. 0x38, 0x00, 0xe0, 0x38, 0x0c, 0xc0, 0x3f, 0x98,
  51. 0x38, 0x00, 0xe0, 0x38, 0x0c, 0xc0, 0x3f, 0x98,
  52. 0x38, 0x00, 0xe0, 0x38, 0x1c, 0xe0, 0x7f, 0x98,
  53. 0x39, 0xfc, 0xe0, 0xc7, 0xfc, 0xff, 0xfe, 0x60,
  54. 0x39, 0xfc, 0xe0, 0xc7, 0xfc, 0xff, 0xfe, 0x60,
  55. 0x39, 0xfc, 0xe7, 0xc1, 0xff, 0x01, 0xff, 0x80,
  56. 0x39, 0xfc, 0xe3, 0xc1, 0xff, 0x01, 0xff, 0x80,
  57. 0x39, 0xfc, 0xe1, 0xc1, 0x9f, 0x11, 0xf3, 0x98,
  58. 0x39, 0xfc, 0xe0, 0xc1, 0x8f, 0x39, 0xf1, 0x98,
  59. 0x38, 0xfc, 0xe0, 0xc1, 0x8f, 0x30, 0xf1, 0x18,
  60. 0x38, 0x00, 0xe3, 0x07, 0xf0, 0xc0, 0x0e, 0x00,
  61. 0x38, 0x00, 0xe7, 0x07, 0xf0, 0xc0, 0x0e, 0x00,
  62. 0x3f, 0xff, 0xe7, 0x3f, 0xff, 0xc7, 0xc0, 0x78,
  63. 0x1f, 0xff, 0xe3, 0x3f, 0xff, 0xc7, 0xc0, 0x78,
  64. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  65. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  66. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  67. };
  68. int main(){
  69. FILE *f = fopen("image.bin", "wb");
  70. fwrite(bitmap_bytes, 1, sizeof(bitmap_bytes), f);
  71. fclose(f);
  72. return 0;
  73. }

generate_image.c

target.txt

  1. UCVaGv1WUxWKwroyP4Bk7gSh8Qd+eVAGQUiJS0f8Yofvnm2LWCcMwEd+51hy94vwyzuzbxklb98nOkWBvUgCtmUtxESk8p9mPE+GXWIrz/RyfZl7tYvRqhoTgLzAViaFiwakPpXqudr7BU7OUmSaT4FiWqg9TJDsin1fytVSGsV9W3uRPnV3+E5VrnDNhLbcQmvQ3MpBrkBFZFadJQ+QJeshuqfBiyPLBEXNjRu6CdfjejT3mtnC+sjOQY1q/3YODOz+GLjECrHZBtgsBxi5c85lXLvmuxqUeOU3z27IKaTy1GL59/hkR4b3LREpSM2MZLgrMoQapw6LjDMG40Isao3+xwS/jrpd2eUKuHcGop2MKpeiP27tsSenjyySd/MAsevKEEeyipVgSKxDV2dTORvUhqh9Pfr77FGzRIem1TE=

证书文件

cert.zip(公钥+私钥+pfx证书)

邮件发送

https://github.com/liulyxandy-codemao/ccdc-mail

telnet服务端

https://github.com/liulyxandy-codemao/ccdc-telnet