BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp

文章目录

  • easy_RE
  • Segments
  • ELF
  • Endian
  • AndroXor
  • EzPE
  • lazy_activtiy

easy_RE

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第1张图片
先查壳,64bit文件无壳。用ida64打开

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第2张图片
看到flag{we1c0m
按tab反编译看看
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第3张图片
看到了。flag{we1c0me_to_rev3rse!!}

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第4张图片
查壳,UPX壳 64bit文件。
用upx工具脱壳
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第5张图片
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第6张图片

IDA64打开

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第7张图片
点进去看看enc
在这里插入图片描述
逻辑就是enc-1

data = "gmbh|D1ohsbuv2bu21ot1oQb332ohUifG2stuQ[HBMBYZ2fwf2~"
result = ''

for char in data:
    xor_value = (ord(char)-1)
    result += chr(xor_value)

print(result.encode('utf-8').decode('unicode_escape'))
# flag{C0ngratu1at10ns0nPa221ngTheF1rstPZGALAXY1eve1}

Segments

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第8张图片
64bit的ELF文件
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第9张图片
根据提示,Shift+F7
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第10张图片
去掉LOAD和.prgend连接起来的就是flag了
flag{You_ar3_g0od_at_f1nding_ELF_segments_name}

ELF

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第11张图片
64bit ELF文件
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第12张图片
一个encode加密和一个base64加密。
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第13张图片
没有进行换表,直接解密就好

import base64

# 要解码的 Base64 编码文本
encoded_text = "VlxRV2t0II8kX2WPJ15fZ49nWFEnj3V8do8hYy9t"

# 使用 base64 模块进行解码
decoded_bytes = base64.b64decode(encoded_text)

# 打印解码结果
print(decoded_bytes)

得到
V\QWkt \x8f$_e\x8f’^_g\x8fgXQ’\x8fu|v\x8f!c/m

再看encode加密部分,异或0x20后+16 那就逆向一下 -16再异或0x20

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第14张图片

data = "V\\QWkt \x8f$_e\x8f'^_g\x8fgXQ'\x8fu|v\x8f!c/m"
result = ''

for char in data:
    xor_value = (ord(char)-16)^0x20
    result += chr(xor_value)

print(result.encode('utf-8').decode('unicode_escape'))
# flag{D0_4ou_7now_wha7_ELF_1s?}

Endian

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第15张图片
64bit ELF文件

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第16张图片
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第17张图片

numbers = [1968519710, 2069379587, 1297621516, 2068854845, 1936406553]

for num in numbers:
    result = num ^ 0x12345678
    ascii_result = "".join([chr((result >> (i * 8)) & 0xFF) for i in range(4)])
    print(ascii_result, end='')
    
# flag{llittl_Endian_a



AndroXor

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第18张图片
用JEB打开。看MainActivity;按TAB反编译一下
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第19张图片

这里慢慢分析一共3处关键信息,第一是s异或s1 第二处就是s和s1了。写个exp

enc = ['\u000E', '\r', '\u0011', '\u0017', '\u0002', 'K', 'I', '7', ' ', '\u001E', '\u0014', 'I', '\n', '\u0002', '\f',
       '>', '(', '@', '\u000B', '\'', 'K', 'Y', '\u0019', 'A', '\r']
enc1 = 'happyx3'
flag = []
for i in range(len(enc)):
    flag.append(chr(ord(enc[i]) ^ ord(enc1[i % 7])))
print("".join(flag))

# flag{3z_And0r1d_X0r_x1x1}

EzPE

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第20张图片
打开来查壳发现,看不到什么信息,diagnose处看的到57 5A应该是pe文件损坏了

用十六进制编辑器WinHex打开看看
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第21张图片
简单修改一下,WZ改成PE文件标识 MZ 后面第四行的90改成80 因为这里的文件偏移要指向PE起始处

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第22张图片

再次用exeinfope打开就发现可以看到信息了

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第23张图片

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第24张图片
一个简单的异或处理,取出data中的数据,写个exp

data = [0x0A, 0x0C, 0x04, 0x1F, 0x26, 0x6C, 0x43, 0x2D, 0x3C, 0x0C,
        0x54, 0x4C, 0x24, 0x25, 0x11, 0x06, 0x05, 0x3A, 0x7C, 0x51,
        0x38, 0x1A, 0x03, 0x0D, 0x01, 0x36, 0x1F, 0x12, 0x26, 0x04,
        0x68, 0x5D, 0x3F, 0x2D, 0x37, 0x2A, 0x7D]
flag = []
for i in range(35, -1, -1):
    data[i] = data[i + 1] ^ data[i] ^ i
for i in range(len(data)):
    flag.append(chr(data[i]))
print("".join(flag))

# flag{Y0u_kn0w_what_1s_PE_File_F0rmat}

lazy_activtiy

还是JEB打开

BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第25张图片
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第26张图片
主要看FlagActivity。

这一题用模拟器打开就是点击10000次就给flag,可以尝试找找flag在哪
最后在Resources里找,先找layout再跟进到layout_2
BUUCTF NewStarCTF 2023 Week1 Reverse方向全wp_第27张图片
找到了。提交。

你可能感兴趣的:(网络安全,学习,密码学,python)