Geek Challenge 2023 RE reserve 浪漫至死不渝

19 篇文章 0 订阅
10 篇文章 0 订阅

题解

下附件,是一个web页面的源码

分析js源码

只粘出了关键代码,前端输出就没粘了

 let OOoooOOOoooOOOoo=0;
let OOO000O0OOOOOO = new Array(125, 130, 131, 122, 117, 110, 123, 125, 130, 131, 122, 117, 110, 123, 99, 99, 99, 99);
let s = "";
let OOO000O0O0O2 = false;
function decryptRailFence(cipherText, ooo0oooo) {
  const fence = new Array(ooo0oooo);

  for (let ooo000OOO = 0; ooo000OOO< ooo0oooo; ooo000OOO++) {
    fence[ooo000OOO] = new Array(cipherText.length).fill('.');
  }
  let row = 0;
  let oooo0o0o0 = 1;
  for (let ooo000OOO= 0; ooo000OOO < cipherText.length; ooo000OOO++) {
    if (row === 0) {
      oooo0o0o0 = 1;
    } else if (row === ooo0oooo - 1) {
      oooo0o0o0 = -1;
    }
    fence[row][ooo000OOO] = '*'; 
    row += oooo0o0o0;
  }
  let index = 0;
  for (let ooo000OOO = 0; ooo000OOO < ooo0oooo; ooo000OOO++) {
    for (let ooo000OOOOOO00o = 0; ooo000OOOOOO00o < cipherText.length; ooo000OOOOOO00o++) {
      if (fence[ooo000OOO][ooo000OOOOOO00o] === '*') {
        fence[ooo000OOO][ooo000OOOOOO00o] = cipherText[index++];
      }
    }
  }
  let oooOOOOO0000O0O0O0 = '';
  row = 0;
  oooo0o0o0 = 1;
  for (let ooo000OOO = 0; ooo000OOO < cipherText.length; ooo000OOO++) {
    oooOOOOO0000O0O0O0 += fence[row][ooo000OOO];
    if (row === 0) {
      oooo0o0o0 = 1;
    } else if (row === ooo0oooo - 1) {
      oooo0o0o0 = -1;
    }
    row += oooo0o0o0;
  }
  return oooOOOOO0000O0O0O0;
}
 function fl(e)
 {
     if(clickb==true)
     {
         const ooo0oooo = 3;
         const OOOO0000O0OO0 = '53X211WH04N';
         const Text1 = decryptRailFence(OOOO0000O0OO0, ooo0oooo);
        let key = e.key;
     if((key<='z'&&key>='a')||(key<='Z'&&key>='A'))
     {
         let p=a[k[key]];
         s =  s + p.name;
         const intArr = [];
         for (let ooo000OOO = 0; ooo000OOO < s.length; ooo000OOO++)
         {
             const charCode = s.charCodeAt(ooo000OOO);
             intArr.push(charCode);
         }
         if (s.length % 18 == 0)
         {
             let len = s.length / 18;
             for (let ooo000OOO = 0; ooo000OOO < len; ooo000OOO++)
             {
                 for (let ooo000OOOOOO00o = 0; ooo000OOOOOO00o < 18; ooo000OOOOOO00o++)
                 {
                     if (ooo000OOOOOO00o < 14)
                     {
                         intArr[ooo000OOO + ooo000OOOOOO00o] ^= Text1.charCodeAt(ooo000OOOOOO00o % 7);
                         intArr[ooo000OOO + ooo000OOOOOO00o] += 10;
                     }
                     else
                     {
                         intArr[ooo000OOO+ ooo000OOOOOO00o] ^= Text1.charCodeAt(ooo000OOOOOO00o -7);
                         intArr[ooo000OOO + ooo000OOOOOO00o] += 99;
                         }
                     }
            }
         for (let ooo000OOO = 0; ooo000OOO < s.length; ooo000OOO++)
         {
            let OOO000O0O0O = 0;
             if (intArr[ooo000OOO] == OOO000O0OOOOOO[0])
             {
                 for (let ooo000OOOOOO00o = 0; ooo000OOOOOO00o < OOO000O0OOOOOO.length && ooo000OOO+ ooo000OOOOOO00o < intArr.length; ooo000OOOOOO00o++)
                 {
                     if (intArr[ooo000OOO + ooo000OOOOOO00o] == OOO000O0OOOOOO[ooo000OOOOOO00o])
                     {
                        OOO000O0O0O++;
                    }
                }
             }
             if (OOO000O0O0O >= 18) {
                OOO000O0O0O2 = true;
             break;
             }
         }
             
             
        }

分析代码

监听按键盘,按26个字母会进行存储,当存储了18个时就进行运算再比较

decryptRailFence方法是进行w型栅栏解密,第一个参数是加密的字符,第二参数是分几栏

先是对‘’53X211WH04N‘字符串进行w型栅栏解密,结果为5201314WXHN

现对前14个字符与5201314WXHN的前7个字符进行xor,加10

if (ooo000OOOOOO00o < 14)
{
intArr[ooo000OOO + ooo000OOOOOO00o] ^= Text1.charCodeAt(ooo000OOOOOO00o % 7);
intArr[ooo000OOO + ooo000OOOOOO00o] += 10;
}
                     }

后4个与5201314WXHN的后4个字符进行xor进行xor,加99

else
{
intArr[ooo000OOO+ ooo000OOOOOO00o] ^= Text1.charCodeAt(ooo000OOOOOO00o -7);
intArr[ooo000OOO + ooo000OOOOOO00o] += 99;
}

再与let OOO000O0OOOOOO = new Array(125, 130, 131, 122, 117, 110, 123, 125, 130, 131, 122, 117, 110, 123, 99, 99, 99, 99);进行比较

let OOO000O0O0O = 0;
if (intArr[ooo000OOO] == OOO000O0OOOOOO[0])
{
       for (let ooo000OOOOOO00o = 0; ooo000OOOOOO00o < OOO000O0OOOOOO.length && ooo000OOO+ ooo000OOOOOO00o < intArr.length; ooo000OOOOOO00o++)
        {
                 if (intArr[ooo000OOO + ooo000OOOOOO00o] ==OOO000O0OOOOOO[ooo000OOOOOO00o])
                   {
                        OOO000O0O0O++;
                    }
           }
        }
if (OOO000O0O0O >= 18) {
      OOO000O0O0O2 = true;
      break;}

脚本:

key='5201314WXHN'
d=[125, 130, 131, 122, 117, 110, 123, 125, 130, 131, 122, 117, 110, 123, 99, 99, 99, 99]
for i  in range(1):
    for j in range(18):
        if j<14:
            d[i+j]-=10
            d[i+j]^=ord(key[j%7])
        else:
            d[i+j]-=99
            d[i+j]^=ord(key[j-7])
for  i in d:
    print(chr(i),end='')

FJIAXUEFJIAXUEWXHN

可以再web页面按节奏输入字符,可以弹奏出所念皆星河的前奏,然后会播放所念皆星河(好听,爱听,就喜欢这种逆向)

结语:

26个键对应的话(收藏一下^_^)

我喜欢你,不分日夜,我喜欢你,无关其他,喜欢便是喜欢,多一点不行,少一点也不可以。还有....,其他的键那些都是关于你的声音,
若逢新雪初霁,满月当空下面平铺着皓影,上面流转着亮银,而你带笑地向我走来,月色和雪色之间 ,是第三种绝色 ,与我而言, 日月星辉之中,你是第四种难得。`},
我总是想些无关紧要的事比如宇宙的目的,熬夜与猝死的关系你是否曾爱我,
我想再和你谈谈那只在你七月的暴雨中刚刚落下的鸟,
若是你决定了要来见我请务必提前一周告诉我我好将10200个小时前的相见再反复回想,
我爱你剩余一行笔给你,
我试图用那些漂亮的句子来形容你。但是不行我字字推敲写出长长一段话,你眉眼一弯熠熠生辉,就让我觉得。不行这些文字写不出你眼里的星辰,写不出你唇角的春风无论哪个词,都及不上你半分的惊艳。,
你的双眸有遥远的冬雪,你的微笑有绚烂的夏阳,你一转身便有花开为你,你一低头便有星辰黯然,你在我心里,我便拥有全世界。,
我见过沧海的云,巫峡的雨。 我见过一月的雪覆于白山,又渐变于葱茏。 我在峨眉的林里云兴霞蔚, 一径之后,雾水成露,沾于衣襟。我听过柔橹漂浮,声声入水,又归于沉寂。 我看到春风八里十里,衣袖带花。 无论何时忆起, 它们实在是人生可喜, 但都不如我此刻遇到的你。,
花盛开就是一句,夜漫过就是一篇。黄昏开始书写,黎明是无数的扉页。全世界拼成首诗。我爱你当作最后一行。,
对你的喜欢,大抵是燃烧的星星坠落在海底开成珊瑚,又或是揉碎的白云环绕着山峦流成大河。那种梦幻,不真切,却令人迷醉的心动,就像晚风拥抱月亮,海浪亲吻礁石。,
世界上美好的东西不太多,立秋傍晚从河对岸吹来的风,和二十来岁笑起来要人命的你。,
“在青山绿水之间,我想牵着你的手,走过这座桥,桥上是绿叶红花,桥下是流水人家,桥的那头是青丝,桥的这头是白发。”,
月亮照回湖心野鹤奔向闲云我步入你,
我们或者在月光下闲游,或者在灯光下谈心,手握着手,心对着心,就像一对五十岁的情人。,
草在结它的种子,风在摇它的叶子,我们站着不说话,就十分美好。,
你一眨眼,温驯的小鹿有跳动一下,柔软的暖风有轻拂一下,遥远的星星有闪烁一下,我也有心动,却不止一下。,
星河璀璨,阳光干净,在人间所有美好的存在里,不论是活着或者死去,我总是最爱你。,
我的心是亿万光年恒星爆炸后的残骸,荒烟蔓草,满目疮痍。你来到这里,携着万千欢喜,覆在贫瘠之地上。枯木逄春,从此我的世界里只有为你而绽的名为爱的绝色。,
写信真是一件温柔的事,细腻的小心思就藏在横竖撇捺之中,像是一只害羞的小兽躲在情意绵绵的字里行间,被火漆封印起来,等着解封的那一刻窜出来,跳进启信人眼底的柔波里。,
我把我整个的灵魂都给你,连同它的怪癖,耍小脾气,忽明忽暗,一千八百种坏毛病, 它真讨厌。只有一点好, 爱你,


我一生都是坚定不移的唯物主义者唯有你我希望有来生,
这个世纪疯狂,没人性,腐败。您却一直清醒,温柔,一尘不染。,
纵然万劫不复,纵然相思入骨,我也待你眉眼如初,岁月如故。,
月遇从云,花遇和风,今晚上的夜空很美,我又想你。,
跟你在一起的时光都很耀眼,因为天气好,因为天气不好,因为天气刚刚好,每一天,都很美好。
 <我自幼嘴笨,词不达意<但却想给你个浪漫的开局<我喜欢你<本想晚点再告诉你,可我这颗心啊太没耐心%<第一次见面<它就给了我扑通扑通的暗示<若我不拦着< 它就想将这千万星光许诺于你%<我背上行囊往世界深处走去<我看见了星辰与海浪<我见过了月光与夕阳<也览过千万副皮囊% <直到<我遇见你<仿佛就像尘埃遇见了光<爱,产生了形状< % <我愿意为你,写满整个世界的情诗<因为我喜欢你,因为......我也想给你哪怕一点点的浪漫<当代码不止是代码的时候,它就有了新的意义。%<感谢你能看到最后<听我讲着那土的掉渣的情话,<回忆着我身后那碎落一地的青春<有热血,有感动,有受伤,有遗憾%<生活<或许就是这样<平淡如水下<因波澜而不再单调..%<钥匙,是我们输入过程中的字符<是答案<也是追逐

(本人是菜鸟,想找对CTF感兴趣的CTFer,一起交流学习,共同进步,迈向星辰大海!!!!^_^(有兴趣的加扣群:470196890))

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值