JoyBoy521 发表于 2024-10-29 23:46

2024网鼎杯青龙组初赛REVERSE02(说难不难,说简单也不简单)

本帖最后由 JoyBoy521 于 2024-10-30 00:10 编辑

# 网鼎杯

## 赛题名称:REVERSE02
从前,有一个秘密组织,他们的最高机密被存放在一段字符串中。为了保护这段字符串,组织设计了“四大护法”,每一位护法都掌握着一种魔法。只有通过“四大护法”的重重考验,才能解开这段字符串的秘密。你会如何通过这“四大护法”的考验,解开这段字符串的秘密?

提交的flag格式:wdflag{xxxxx}
赛题附件:
https://wwgn.lanzoul.com/iTbgj2dp4vmd
https://files.wangdingcup.com/wdb/6e3ab24752b064f43020d1c383094c8f.zip?AWSAccessKeyId=UIM73OJQTM1F6ZN5OHFK&Expires=1730192399&Signature=FrGjiuL09RHPEWIt2pB095Om9U0%3D



前半部分,很容易看明白。写代码可以解出来flag一 二部分。


```cpp
#include <iostream>
int main() {

char flag;

int a[] = {96, 98, 110, 96, 196, 102, 114, 198};

// a/2就是flag的第一个部分

for (int i = 0; i < 8; i++) {

         flag = a / 2;

}
      

int b[] = {109, 10, 22, 64, 120, 12, 68, 87}; // 整数数组

const char* v22 = "XorrLord";// 字符串

//异或得到flag第二个部分

for (int j = 8; j < 16; ++j) {

      flag = b ^ v22;

}



for (int i = 0; i < 16; i++) {// 输出 flag 的前 16 个字符

      std::cout << flag;

}

std::cout << std::endl;

return 0;

}
```

第三部分的base64也可以解出来。

码表换一下就可以了。






最后的aes

下好断点。









随便输入32位进去,通过比较。







修改RIP地址跳过中间,那一段。



v8看逻辑像是vi,我们绕过来就是为了看v8和密钥到底是什么。在外面看v8不是很舒服,双击进去。



发现是8个0,8个8





)

密钥就是AesMasterAesMast

咱也去cyberchef解,mode咱们不知道,就一个一个换。

到ECB的时候就好了。



把四个拼接到一起就是flag。

wdflag{0170b39c5ed24c63ec3b52a6724ba7d5}

> 远程linux动调的时候,会出现缺libssl.so.10的报错。
>
> [找不到libssl.so.10的终极解决方案 - Ubuntu 18 - HENCH@T](https://henchat.net/找不到libssl-so-10的终极解决方案-ubuntu-18/)
>
> 我是看这篇文章补上的。

落尘大大和你呢 发表于 2024-10-30 11:33

ECB模式是不需要的IV的,直接在在网站在线解密就行,赛博厨子不行的话就换一个网站。

521hacker 发表于 2024-10-30 13:24

cyberchef对aes类的解密很不友好

lzy541541 发表于 2024-10-30 15:06

很棒收藏一波

sdwx2012 发表于 2024-10-30 15:26

学习一下.....

Finish04 发表于 2024-10-30 15:45

6666666666666666666

plokij 发表于 2024-10-30 15:47

学习一下,6666666666

yiwanguanghui 发表于 2024-10-30 15:47

学习一拨

samlee 发表于 2024-10-30 15:56

很不错的解题办法

wushangtian 发表于 2024-10-30 16:17

希望不会失效,满满的干货
页: [1] 2 3
查看完整版本: 2024网鼎杯青龙组初赛REVERSE02(说难不难,说简单也不简单)