御网杯2

Reverse

Reverse-ez_apk

用IDA进行打开,找到main函数

def decrypt(encrypted_text, decryption_key):

key_bytes = decryption_key.encode()

characters = list(encrypted_text)

decrypted_characters = [''] * len(characters)

for index, character in enumerate(characters):

if character in ['_', '{', '}']:

decrypted_characters[index] = character

elif 'a' <= character <= 'z':

# 应用解密逻辑

decrypted_characters[index] = chr(((ord(character) - ord('a') - (key_bytes[index % len(key_bytes)] - ord('a'))) % 26 + ord('a')))

else:

# 遇到非预期字符则停止解密

break

return ''.join(decrypted_characters)

# 解密密钥

decryption_key = "aptxcony"

# 密文

cipher_text = "fatd{sm_cgrmvc_ylvhokhuk_gxsgffc_wtec}"

# 解密结果

decrypted_result = decrypt(cipher_text, decryption_key)

print(decrypted_result)

加密处理,进行构造脚本

Reverse-jiqimao

用kali打开,进行反编译exe

发现不可以打开,那我进行反编译

找到一段字符

fVJXNjE0ODBpM2RrZmNSVzYxNDgwaTNka01BSlVPe25oc20=

这是一段base64编码,进行解密

凯撒偏移解码

}KP61480b3wdyvKP61480b3wdFTCNH{galf

再进行字符串逆序

Reverse-fenxi

找到一道类似的题目,进行参考一下[https://blog.csdn.net/weixin_52640415/article/details/123877043](https://blog.csdn.net/weixin_52640415/article/details/123877043" \t "_blank)

if (p[3]+p[5] != pow((I-------I).A,2) * (I-----I)+(I---I)) error(); // (3*3) ** 2 * 2 + 1 == 163

if (p[3]+p[4] != pow((o-----------o

| !

! !

! !

o-----------o).A,2)+(I---I)) error(); // (5*3) ** 2 + 1 == 226

if (p[4]*p[5] != (pow((o-------------o

| !

! !

! !

o-------------o).A,2)-(I---I))(I-----I)pow(I-------I,2)) error(); // ((63) ** 2 - 1)2* 3**2 = 5814

if (p[7]+p[8] != (o-----------o

|L </font>

| L </font>

| L </font>

| o-----------o|! // x=5,y=3,z=4

o | ! // 534 * 22 - (3*2)2 +1 == 205

L | !

L | !

L| !

o-----------o).V*pow(I-----I,2) - pow((o-------o // x=3,y=2

| !

! !

o-------o).A,2) + (I---I)) error();

尝试爆破得到字符

# 解密标志的第一部分

flag = ''

for first_char_code in range(0x20, 0x7f):

for second_char_code in range(0x20, 0x7f):

for third_char_code in range(0x20, 0x7f):

if first_char_code + second_char_code == 101 and </font>

second_char_code + third_char_code == 143 and </font>

first_char_code * third_char_code == 5035:

flag += chr(first_char_code) + chr(second_char_code) + chr(third_char_code)

print('[' + chr(first_char_code) + chr(second_char_code) + chr(third_char_code) + ']')

# 已找到的部分标志

#50_

# 解密标志的第二部分

for first_char_code in range(0x20, 0x7f):

for second_char_code in range(0x20, 0x7f):

for third_char_code in range(0x20, 0x7f):

if first_char_code + second_char_code == 226 and </font>

first_char_code + third_char_code == 163 and </font>

second_char_code * third_char_code == 5814:

flag += chr(first_char_code) + chr(second_char_code) + chr(third_char_code)

print('[' + chr(first_char_code) + chr(second_char_code) + chr(third_char_code) + ']')

# 已找到的部分标志

#pr3

# 解密标志的第三部分

for first_char_code in range(0x20, 0x7f):

for second_char_code in range(0x20, 0x7f):

for third_char_code in range(0x20, 0x7f):

if second_char_code + third_char_code == 205 and </font>

first_char_code + third_char_code == 173 and </font>

first_char_code * second_char_code == 9744:

flag += chr(first_char_code) + chr(second_char_code) + chr(third_char_code)

print('[' + chr(first_char_code) + chr(second_char_code) + chr(third_char_code) + ']')

# 已找到的部分标志

#Tty

# 解密标志的最后一部分

for first_char_code in range(0x20, 0x7f):

for second_char_code in range(0x20, 0x7f):

for third_char_code in range(0x20, 0x7f):

if first_char_code + second_char_code * third_char_code == 5375 and </font>

second_char_code + first_char_code * third_char_code == 4670 and </font>

first_char_code + second_char_code == 205:

flag += chr(first_char_code) + chr(second_char_code) + chr(third_char_code)

print('[' + chr(first_char_code) + chr(second_char_code) + chr(third_char_code) + ']')

# 已找到的部分标志

#_n0

# 添加剩余字符

flag += 'w'

# 输出最终的标志

print(flag)

50_pr3TtY_n0w

最后得到,进行包裹得到flag

Reverse-CSMazeee

首先查个壳发,现是32位的,并且有壳

寻找工具能进行脱壳处理

脱壳后是这个,然后把他放入dnspy中进行分析

这应该是一个迷宫程序

进行调试得到

00******0000

0000000**0

***000

100*0000

0**0

****00000000

是上下左右,走出迷宫

rdrrrrrddrruuurrrdddddllllllluull

连续点击100下得到flag

感悟

在这次御网杯的比赛中,我不仅在技术上有了显著的进步,更重要的是,在精神层面也得到了一次难得的洗礼,在一天的比赛中我体验到从感到新鲜,到渐渐疲惫,再到解出flag的欣喜。

在本次比赛中我对web有了更深的理解,通过实际操作,我发现理论知识与实战经验之间存在着巨大的差异,只有真正动手去做,才能体会到解决问题的乐趣。比赛中遇到的一些复杂问题,更是激发了我对网络安全领域的兴趣,使我意识到自己在这个领域的不足之处,同时也明确了未来努力的方向。

在做其他题目时候,我发现我的逆向能力还不强,我在以后得学习中会加强这方面的学习与理解,在密码学方面,我也有些欠缺 ,我对密码的基础概念还可以,但是通过本次比赛,我发现我对密码的理解还不够深刻,还有一些知识盲区,我意识到网络安全对我们的重要性,每个细节都决定了我们的成败。

总的来说,御网杯不仅是一场技术较量,更是一次自我超越的过程。在这里,我不仅收获了知识,更收获了友谊和成长。未来,我将继续努力,不断探索网络安全的奥秘,为自己也为社会贡献一份力量。同时我也要感谢比赛方给了我这次比赛学习的机会,我会更坚定的在网安的道路上走下去。

posted @ 2024-10-01 18:14  短短max  阅读(129)  评论(0)    收藏  举报
//雪花飘落效果 //雪花飘落效果