Saup 发表于 2019-2-20 08:31

小白的【春节红包番外篇】分析过程

本帖最后由 Saup 于 2019-2-20 08:32 编辑

小白第一次发分析贴,内心还有一丝丝的紧张的。我发一下我自己的解题过程,不知道大神们都是怎么解题的,不是最佳方案,大神们请轻喷。
先说解密方法:1.打开网站rcnb.xyz修改网站js使网页输出解密的十六进制代码
2.新建一个7z文件,用HxD编辑器打开,删掉原来代码
3.把步骤1得到的代码复制进去,保存。
4.打开得到的新7z文件,解压密码为:Which_is_N0t_Th3_Answ3r
5.把得到文件通过rcnb.xyz解密,得到最终口令:N0w_y0u_are_NB_A5_RC
下面是分析过程
下载文件后发现是个.md文件,不知道是干嘛的,直接用notepad打开
https://s2.ax1x.com/2019/02/19/kgueZF.png
妈呀这是什么玩意,满眼的RCNB(如此牛逼?)等等,好像有一句是我能看懂的。如此牛逼.xyz?xyz好像是网站的域名,到浏览器打开再说。
https://s2.ax1x.com/2019/02/19/kguVqU.png
哇塞,这不就是加密解密的网站么,直接把文件中加密的话复制进去,一句句解出来。直接得到一个口令
https://s2.ax1x.com/2019/02/19/kguQR1.png
这题也太简单了吧,直接输入口令!然而我还是太年轻,口令直接输入是错误的。而且最后一句解密不出来,一堆乱码。
https://s2.ax1x.com/2019/02/19/kgutde.png
刚开始,通过观察,发现可以解密的答案是按照RCNB顺序出现的,最后一句不是按照这个顺序,我觉得是把这句话打乱了顺序,我要还原一下顺序再解密就好了。发现,顺序太乱,根本没法还原,放弃! 观察一下解密的那一堆乱码,发现也不是完全看不懂,至少前两个字母是7z,这暗示着什么?难道这是一个7z文件的二进制编码转换成的字符串?直接复制乱码,用notepad打开7z文件,粘贴进去,保存。解压。结果报错,又失败!

https://s2.ax1x.com/2019/02/19/kgunIJ.png

怀疑是直接复制字符串不可以,F12大法,看一下加密过程。
https://s2.ax1x.com/2019/02/19/kguKi9.png
亲娘嘞,又是移位,又是与运算,看不懂怎么加密的。看不懂就不看了,直接借鸡生蛋,把他得到的数组转换为16进制数输出来看一下。修改decode:部分,添加如下代码
var str1 = '';   
for(var i = 0;i<arr.length;i++){
            if(arr < 16) {
             str1= str1 + '0' +arr.toString(16) + ' '      //不是两位的数在前面加一个0
            }else{       str1 = str1 + arr.toString(16) + ' '            
   }
}
console.log(str1)
https://s2.ax1x.com/2019/02/19/kguMGR.png
在控制台得到了数组各个元素
https://s2.ax1x.com/2019/02/19/kgulxx.png
把这些数字复制进HxD,保存,解压。发现还是出错(在这里绕了很多弯路,卡住了好几天)。通过各种分析乱码和数字和其他正确的7z文件,发现最后好像是有两个空字符,在HxD的最后加上一个空字符00,发现可以解压了!
https://s2.ax1x.com/2019/02/19/kgu8sK.png
需要解压密码,就把之前的那个秘钥输进去,解压得到文件。
https://s2.ax1x.com/2019/02/19/kgKMTg.png
https://s2.ax1x.com/2019/02/19/kgu3M6.png
再通过rcnb.xyz多次解密,得到最终答案。

https://s2.ax1x.com/2019/02/19/kguGqO.png

好了,经过这四五天的分析,终于解出来了,真的很开心。越来越喜欢52论坛了。快乐技术两开花!(逃)
附工具下载链接:
notepad++
https://www.lanzouj.com/i3680re
HxD
https://www.lanzouj.com/i3680wj

System 发表于 2019-2-20 23:04

最后的空字符是因为LZ没有把代码放在Decode的末尾 导致解密最后的cb后没有输出在console

System 发表于 2019-2-20 22:48

还有
var str1 = '';   
for(var i = 0;i<arr.length;i++){
            if(arr< 16){
             str1= str1 + '0' +arr.toString(16) + ' '      //不是两位的数在前面加一个0
}
             else{str1 = str1 + arr.toString(16) + ' '            
}
}
console.log(str1)
大家别复制错了

asdfghjklzxcvbn 发表于 2019-2-20 08:39

膜拜大佬根本看不懂

Saup 发表于 2019-2-20 08:41

asdfghjklzxcvbn 发表于 2019-2-20 08:39
膜拜大佬根本看不懂

真的是纯小白,刚刚学破解。不明白的地方可能是我没写清楚,可以一起讨论讨论

kiikjj 发表于 2019-2-20 08:43

学习了,谢谢分享!!!

homejun 发表于 2019-2-20 09:10

学习了,解时弄到7z文件不能正确打开就放弃了,看了教程庆幸自己放弃,不然也搞不定

Eorton 发表于 2019-2-20 10:53

我就分析到Which_is_N0t_Th3_Answ3r就卡住了几天{:1_911:}

nws0507 发表于 2019-2-20 10:54

我是转成ascii,然后粘贴到本地转16进制的

凌翰梓 发表于 2019-2-20 11:18

卧糟,这样也行,我还真是一点思路都没有,强哥厉害

大铁锅 发表于 2019-2-20 13:17

支持一下

renpeng009 发表于 2019-2-20 13:37

我也是分析到7z文件,知道网页直接复制的乱码不能用,但是没想到改JS代码。。。。
页: [1] 2
查看完整版本: 小白的【春节红包番外篇】分析过程