MoeCTF2023-Re-刷题
Moectf2023 Re 刷题
UPX!
明显用upx解
upx -d upx!.exe
就一个异或,找到byte_140196000的值然后异或回去就行
Base_64
给了个pyc,拿去反编译
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 3.7
import base64
from string import *
str1 = 'yD9oB3Inv3YAB19YynIuJnUaAGB0um0='
string1 = 'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba0123456789+/'
string2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
flag = input('welcome to moectf\ninput your flag and I wiil check it:')
enc_flag = base64.b64encode(flag.encode()).decode()
enc_flag = enc_flag.translate(str.maketrans(string2, string1))
if enc_flag == str1:
print('good job!!!!')
else:
print('something wrong???')
exit(0)
替换回去,然后base64解密即可
import base64
from string import *
str1 = "yD9oB3Inv3YAB19YynIuJnUaAGB0um0="
string1 = "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba0123456789+/"
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
enc_flag=str1.translate(str.maketrans(string2,string1))
print(base64.b64decode(enc_flag))
XOR
一样,直接异或回去
enc = [0x54,0x56,0x5c,0x5a,0x4d,0x5f,0x42,0x60,0x56,0x4c,0x66,0x52,0x57,0x09,0x4e,0x66,0x51,0x09,0x4e,0x66,0x4d,0x09,0x66,0x61,0x09,0x6b,0x18,0x44]
for i in enc:
print(chr(i^0x39),end='')
# moectf{You_kn0w_h0w_t0_X0R!}
BasicAndroid
主要加密逻辑就异或,给他逆回去就行
enc = [0x19, 0x07, 0x00, 0x0e, 0x1b, 0x03, 0x10, 0x2f, 0x18, 0x02, 0x09, 0x3a, 0x04, 0x01, 0x3a, 0x2a, 0x0b, 0x1d, 0x06, 0x07, 0x0c, 0x09, 0x30, 0x54, 0x18, 0x3a, 0x1c, 0x15, 0x1b, 0x1c, 0x10]
key = [0x74, 0x68, 0x65, 0x6d, 0x6f, 0x65, 0x6b, 0x65, 0x79]
for i in range(0, 31):
print(chr(key[i % (len(key))]^enc[i]),end='')
#moectf{Java_in_Android_1s_easy}
EQUATION
补充:官方wp写ida识别错误,稍微改一下ida识别错误的flag长度
是多个很长的表达式,考虑z3求解
这里注意v4只有24,即0-23
(char)v5代表v4[24],SBYTE1代表v4[25],类推,SHIBYTE表示最高即v4[27]
exp我是看着源码写的。。。。
import z3
# 要先创建
flag = [0] * 31
for i in range(31):
flag[i] = z3.Int('flag[' + str(i) + ']')
s = z3.Solver()
s.add(flag[0]*319+flag[1]*64+flag[2]*218+flag[3]*284+flag[4]*251+flag[5]*193+flag[6]*278+flag[7]*66+flag[8]*171+flag[9]*302+flag[10]*258+flag[11]*94+flag[12]*176+flag[13]*125+flag[14]*19+flag[15]*24+flag[16]*295+flag[17]*94+flag[18]*140+flag[19]*150+flag[20]*85+flag[21]*267+flag[22]*96+flag[23]*160+flag[24]*111+flag[25]*33+flag[26]*235+flag[27]*370+flag[28]*270+flag[29]*174+flag[30]*13==480557)
s.add(flag[0]*360+flag[1]*387+flag[2]*300+flag[3]*264+flag[4]*86+flag[5]*22+flag[6]*142+flag[7]*92+flag[8]*231+flag[9]*325+flag[10]*393+flag[11]*305+flag[12]*232+flag[13]*203+flag[14]*181+flag[15]*261+flag[16]*372+flag[17]*223+flag[18]*324+flag[19]*343+flag[20]*225+flag[21]*127+flag[22]*99+flag[23]*2+flag[24]*27+flag[25]*13+flag[26]*80+flag[27]*302+flag[28]*385+flag[29]*392+flag[30]*268==619574)
s.add(flag[0]*163+flag[1]*270+flag[2]*173+flag[3]*177+flag[4]*318+flag[5]*297+flag[6]*287+flag[7]*70+flag[8]*233+flag[9]*159+flag[10]*372+flag[11]*274+flag[12]*134+flag[13]*224+flag[14]*114+flag[15]*14+flag[16]*77+flag[17]*25+flag[18]*202+flag[19]*191+flag[20]*358+flag[21]*305+flag[22]*387+flag[23]*18+flag[24]*168+flag[25]*22+flag[26]*74+flag[27]*313+flag[28]*386+flag[29]*249+flag[30]*345==592365)
s.add(flag[0]*310+flag[1]*154+flag[2]*24+flag[3]*53+flag[4]*39+flag[5]*292+flag[6]*59+flag[7]*44+flag[8]*66+flag[9]*373+flag[10]*50+flag[11]*335+flag[12]*161+flag[13]*329+flag[14]*222+flag[15]*396+flag[16]*144+flag[17]*81+flag[18]*382+flag[19]*46+flag[20]*358+flag[21]*321+flag[22]*156+flag[23]*313+flag[24]*145+flag[25]*232+flag[26]*8+flag[27]*112+flag[28]*53+flag[29]*385+flag[30]*355==558740)
s.add(flag[0]*313+flag[1]*263+flag[2]*186+flag[3]*271+flag[4]*116+flag[5]*101+flag[6]*114+flag[7]*134+flag[8]*55+flag[9]*282+flag[10]*88+flag[11]*105+flag[12]*286+flag[13]*16+flag[14]*97+flag[15]*395+flag[16]*193+flag[17]*149+flag[18]*266+flag[19]*237+flag[20]*149+flag[21]*129+flag[22]*287+flag[23]*396+flag[24]*279+flag[25]*23+flag[26]*139+flag[27]*153+flag[28]*118+flag[29]*60+flag[30]*145==510398)
s.add(flag[0]*312+flag[1]*241+flag[2]*149+flag[3]*234+flag[4]*155+flag[5]*225+flag[6]*292+flag[7]*368+flag[8]*129+flag[9]*376+flag[10]*389+flag[11]*121+flag[12]*154+flag[13]*169+flag[14]*132+flag[15]*232+flag[16]*157+flag[17]*217+flag[18]*226+flag[19]*288+flag[20]*285+flag[21]*182+flag[22]*185+flag[23]*202+flag[24]*23+flag[25]*55+flag[26]*189+flag[27]*201+flag[28]*288+flag[29]*261+flag[30]*69==614840)
s.add(flag[0]*203+flag[1]*110+flag[2]*200+flag[3]*312+flag[4]*275+flag[5]*389+flag[6]*292+flag[7]*76+flag[8]*357+flag[9]*99+flag[10]*21+flag[11]*251+flag[12]*322+flag[13]*398+flag[14]*281+flag[15]*216+flag[16]*244+flag[17]*142+flag[18]*269+flag[19]*33+flag[20]*75+flag[21]*86+flag[22]*362+flag[23]*246+flag[24]*328+flag[25]*55+flag[26]*272+flag[27]*234+flag[28]*202+flag[29]*311+flag[30]*356==631652)
s.add(flag[0]*88+flag[1]*215+flag[2]*191+flag[3]*358+flag[4]*57+flag[5]*190+flag[6]*179+flag[7]*38+flag[8]*292+flag[9]*138+flag[10]*22+flag[11]*72+flag[12]*357+flag[13]*9+flag[14]*398+flag[15]*389+flag[16]*81+flag[17]*398+flag[18]*196+flag[19]*180+flag[20]*218+flag[21]*258+flag[22]*0+flag[23]*248+flag[24]*303+flag[25]*114+flag[26]*387+flag[27]*123+flag[28]*343+flag[29]*293+flag[30]*85==529847)
s.add(flag[0]*395+flag[1]*302+flag[2]*189+flag[3]*209+flag[4]*244+flag[5]*208+flag[6]*224+flag[7]*303+flag[8]*398+flag[9]*356+flag[10]*119+flag[11]*49+flag[12]*200+flag[13]*251+flag[14]*135+flag[15]*16+flag[16]*309+flag[17]*314+flag[18]*13+flag[19]*217+flag[20]*310+flag[21]*21+flag[22]*207+flag[23]*83+flag[24]*248+flag[25]*93+flag[26]*128+flag[27]*67+flag[28]*127+flag[29]*188+flag[30]*100==580384)
s.add(flag[0]*338+flag[1]*18+flag[2]*399+flag[3]*53+flag[4]*334+flag[5]*281+flag[6]*84+flag[7]*68+flag[8]*399+flag[9]*148+flag[10]*21+flag[11]*196+flag[12]*220+flag[13]*174+flag[14]*36+flag[15]*291+flag[16]*350+flag[17]*2+flag[18]*41+flag[19]*395+flag[20]*83+flag[21]*348+flag[22]*137+flag[23]*24+flag[24]*359+flag[25]*210+flag[26]*55+flag[27]*362+flag[28]*191+flag[29]*100+flag[30]*368==538535)
s.add(flag[0]*13+flag[1]*230+flag[2]*306+flag[3]*146+flag[4]*22+flag[5]*188+flag[6]*221+flag[7]*158+flag[8]*209+flag[9]*109+flag[10]*145+flag[11]*383+flag[12]*153+flag[13]*287+flag[14]*257+flag[15]*137+flag[16]*7+flag[17]*191+flag[18]*307+flag[19]*230+flag[20]*366+flag[21]*124+flag[22]*141+flag[23]*350+flag[24]*150+flag[25]*52+flag[26]*31+flag[27]*374+flag[28]*55+flag[29]*367+flag[30]*355==557696)
s.add(flag[0]*236+flag[1]*361+flag[2]*90+flag[3]*386+flag[4]*112+flag[5]*297+flag[6]*373+flag[7]*377+flag[8]*229+flag[9]*270+flag[10]*272+flag[11]*124+flag[12]*345+flag[13]*221+flag[14]*386+flag[15]*73+flag[16]*306+flag[17]*377+flag[18]*330+flag[19]*304+flag[20]*58+flag[21]*239+flag[22]*315+flag[23]*33+flag[24]*141+flag[25]*129+flag[26]*82+flag[27]*118+flag[28]*338+flag[29]*337+flag[30]*123==685705)
s.add(flag[0]*235+flag[1]*316+flag[2]*378+flag[3]*329+flag[4]*141+flag[5]*323+flag[6]*59+flag[7]*37+flag[8]*357+flag[9]*262+flag[10]*44+flag[11]*347+flag[12]*68+flag[13]*253+flag[14]*111+flag[15]*341+flag[16]*264+flag[17]*73+flag[18]*333+flag[19]*122+flag[20]*211+flag[21]*303+flag[22]*294+flag[23]*235+flag[24]*299+flag[25]*67+flag[26]*312+flag[27]*269+flag[28]*338+flag[29]*371+flag[30]*126==634009)
s.add(flag[0]*247+flag[1]*295+flag[2]*118+flag[3]*316+flag[4]*221+flag[5]*382+flag[6]*292+flag[7]*153+flag[8]*302+flag[9]*204+flag[10]*391+flag[11]*236+flag[12]*27+flag[13]*342+flag[14]*195+flag[15]*91+flag[16]*361+flag[17]*27+flag[18]*81+flag[19]*145+flag[20]*105+flag[21]*64+flag[22]*162+flag[23]*158+flag[24]*278+flag[25]*124+flag[26]*369+flag[27]*100+flag[28]*334+flag[29]*67+flag[30]*41==596022)
s.add(flag[0]*115+flag[1]*141+flag[2]*351+flag[3]*215+flag[4]*380+flag[5]*374+flag[6]*84+flag[7]*310+flag[8]*85+flag[9]*354+flag[10]*82+flag[11]*88+flag[12]*212+flag[13]*239+flag[14]*330+flag[15]*215+flag[16]*155+flag[17]*215+flag[18]*317+flag[19]*264+flag[20]*371+flag[21]*300+flag[22]*58+flag[23]*69+flag[24]*137+flag[25]*69+flag[26]*315+flag[27]*93+flag[28]*359+flag[29]*361+flag[30]*108==629123)
s.add(flag[0]*234+flag[1]*261+flag[2]*10+flag[3]*237+flag[4]*338+flag[5]*322+flag[6]*389+flag[7]*298+flag[8]*113+flag[9]*285+flag[10]*392+flag[11]*104+flag[12]*181+flag[13]*345+flag[14]*3+flag[15]*371+flag[16]*219+flag[17]*208+flag[18]*259+flag[19]*278+flag[20]*169+flag[21]*231+flag[22]*123+flag[23]*202+flag[24]*220+flag[25]*274+flag[26]*53+flag[27]*82+flag[28]*148+flag[29]*89+flag[30]*361==659149)
s.add(flag[0]*102+flag[1]*109+flag[2]*43+flag[3]*76+flag[4]*303+flag[5]*64+flag[6]*161+flag[7]*155+flag[8]*50+flag[9]*58+flag[10]*118+flag[11]*280+flag[12]*0+flag[13]*28+flag[14]*309+flag[15]*213+flag[16]*317+flag[17]*324+flag[18]*148+flag[19]*256+flag[20]*303+flag[21]*234+flag[22]*303+flag[23]*254+flag[24]*233+flag[25]*62+flag[26]*8+flag[27]*252+flag[28]*216+flag[29]*353+flag[30]*93==497492)
s.add(flag[0]*102+flag[1]*109+flag[2]*43+flag[3]*76+flag[4]*303+flag[5]*64+flag[6]*161+flag[7]*155+flag[8]*50+flag[9]*58+flag[10]*118+flag[11]*280+flag[12]*0+flag[13]*28+flag[14]*309+flag[15]*213+flag[16]*317+flag[17]*324+flag[18]*148+flag[19]*256+flag[20]*303+flag[21]*234+flag[22]*303+flag[23]*254+flag[24]*233+flag[25]*62+flag[26]*8+flag[27]*252+flag[28]*216+flag[29]*353+flag[30]*93==497492)
s.add(flag[0]*34+flag[1]*62+flag[2]*50+flag[3]*90+flag[4]*186+flag[5]*237+flag[6]*11+flag[7]*225+flag[8]*241+flag[9]*230+flag[10]*331+flag[11]*215+flag[12]*155+flag[13]*82+flag[14]*38+flag[15]*336+flag[16]*252+flag[17]*256+flag[18]*394+flag[19]*14+flag[20]*341+flag[21]*336+flag[22]*36+flag[23]*165+flag[24]*93+flag[25]*175+flag[26]*212+flag[27]*226+flag[28]*305+flag[29]*4+flag[30]*29==473092)
s.add(flag[0]*173+flag[1]*206+flag[2]*26+flag[3]*272+flag[4]*348+flag[5]*396+flag[6]*142+flag[7]*313+flag[8]*75+flag[9]*142+flag[10]*364+flag[11]*315+flag[12]*184+flag[13]*296+flag[14]*149+flag[15]*201+flag[16]*355+flag[17]*225+flag[18]*211+flag[19]*326+flag[20]*118+flag[21]*155+flag[22]*144+flag[23]*366+flag[24]*257+flag[25]*159+flag[26]*323+flag[27]*148+flag[28]*24+flag[29]*29+flag[30]*253==664504)
s.add(flag[0]*238+flag[1]*385+flag[2]*226+flag[3]*35+flag[4]*383+flag[5]*136+flag[6]*267+flag[7]*348+flag[8]*20+flag[9]*230+flag[10]*43+flag[11]*349+flag[12]*290+flag[13]*146+flag[14]*88+flag[15]*354+flag[16]*158+flag[17]*21+flag[18]*60+flag[19]*208+flag[20]*142+flag[21]*388+flag[22]*281+flag[23]*249+flag[24]*63+flag[25]*9+flag[26]*237+flag[27]*143+flag[28]*88+flag[29]*147+flag[30]*343==603481)
s.add(flag[0]*28+flag[1]*365+flag[2]*15+flag[3]*169+flag[4]*0+flag[5]*327+flag[6]*23+flag[7]*303+flag[8]*301+flag[9]*163+flag[10]*170+flag[11]*287+flag[12]*352+flag[13]*72+flag[14]*332+flag[15]*323+flag[16]*1+flag[17]*270+flag[18]*318+flag[19]*308+flag[20]*45+flag[21]*140+flag[22]*65+flag[23]*344+flag[24]*289+flag[25]*385+flag[26]*119+flag[27]*62+flag[28]*169+flag[29]*278+flag[30]*346==572609)
s.add(flag[0]*312+flag[1]*345+flag[2]*275+flag[3]*113+flag[4]*264+flag[5]*171+flag[6]*48+flag[7]*384+flag[8]*47+flag[9]*298+flag[10]*222+flag[11]*303+flag[12]*339+flag[13]*175+flag[14]*5+flag[15]*350+flag[16]*32+flag[17]*218+flag[18]*304+flag[19]*391+flag[20]*113+flag[21]*19+flag[22]*342+flag[23]*164+flag[24]*240+flag[25]*289+flag[26]*171+flag[27]*210+flag[28]*363+flag[29]*106+flag[30]*263==637650)
s.add(flag[0]*21+flag[1]*103+flag[2]*204+flag[3]*247+flag[4]*287+flag[5]*170+flag[6]*298+flag[7]*386+flag[8]*75+flag[9]*84+flag[10]*27+flag[11]*28+flag[12]*270+flag[13]*159+flag[14]*192+flag[15]*1+flag[16]*224+flag[17]*392+flag[18]*213+flag[19]*283+flag[20]*215+flag[21]*77+flag[22]*201+flag[23]*374+flag[24]*213+flag[25]*40+flag[26]*129+flag[27]*341+flag[28]*67+flag[29]*27+flag[30]*361==555288)
s.add(flag[0]*356+flag[1]*349+flag[2]*397+flag[3]*92+flag[4]*208+flag[5]*175+flag[6]*229+flag[7]*103+flag[8]*181+flag[9]*64+flag[10]*5+flag[11]*392+flag[12]*359+flag[13]*335+flag[14]*58+flag[15]*44+flag[16]*340+flag[17]*251+flag[18]*114+flag[19]*153+flag[20]*345+flag[21]*390+flag[22]*189+flag[23]*297+flag[24]*290+flag[25]*285+flag[26]*88+flag[27]*40+flag[28]*231+flag[29]*369+flag[30]*295==661276)
s.add(flag[0]*112+flag[1]*132+flag[2]*217+flag[3]*210+flag[4]*18+flag[5]*72+flag[6]*75+flag[7]*113+flag[8]*40+flag[9]*273+flag[10]*296+flag[11]*43+flag[12]*152+flag[13]*278+flag[14]*24+flag[15]*77+flag[16]*11+flag[17]*262+flag[18]*342+flag[19]*55+flag[20]*255+flag[21]*241+flag[22]*13+flag[23]*300+flag[24]*281+flag[25]*148+flag[26]*162+flag[27]*105+flag[28]*176+flag[29]*393+flag[30]*356==470065)
s.add(flag[0]*134+flag[1]*37+flag[2]*334+flag[3]*193+flag[4]*301+flag[5]*279+flag[6]*198+flag[7]*250+flag[8]*183+flag[9]*5+flag[10]*334+flag[11]*26+flag[12]*270+flag[13]*21+flag[14]*225+flag[15]*259+flag[16]*175+flag[17]*341+flag[18]*111+flag[19]*154+flag[20]*142+flag[21]*223+flag[22]*138+flag[23]*275+flag[24]*48+flag[25]*67+flag[26]*35+flag[27]*111+flag[28]*83+flag[29]*207+flag[30]*163==493999)
s.add(flag[0]*132+flag[1]*369+flag[2]*257+flag[3]*172+flag[4]*254+flag[5]*134+flag[6]*384+flag[7]*162+flag[8]*53+flag[9]*255+flag[10]*296+flag[11]*132+flag[12]*159+flag[13]*165+flag[14]*229+flag[15]*129+flag[16]*23+flag[17]*41+flag[18]*385+flag[19]*296+flag[20]*317+flag[21]*112+flag[22]*17+flag[23]*222+flag[24]*96+flag[25]*161+flag[26]*269+flag[27]*71+flag[28]*137+flag[29]*157+flag[30]*126==563521)
s.add(flag[0]*157+flag[1]*26+flag[2]*16+flag[3]*156+flag[4]*85+flag[5]*23+flag[6]*150+flag[7]*72+flag[8]*356+flag[9]*35+flag[10]*304+flag[11]*311+flag[12]*140+flag[13]*205+flag[14]*184+flag[15]*193+flag[16]*28+flag[17]*60+flag[18]*50+flag[19]*201+flag[20]*87+flag[21]*313+flag[22]*308+flag[23]*77+flag[24]*324+flag[25]*157+flag[26]*360+flag[27]*303+flag[28]*39+flag[29]*58+flag[30]*0==429108)
s.add(flag[0]*277+flag[1]*207+flag[2]*365+flag[3]*378+flag[4]*158+flag[5]*113+flag[6]*100+flag[7]*229+flag[8]*262+flag[9]*51+flag[10]*140+flag[11]*163+flag[12]*188+flag[13]*124+flag[14]*190+flag[15]*320+flag[16]*353+flag[17]*347+flag[18]*11+flag[19]*371+flag[20]*211+flag[21]*326+flag[22]*230+flag[23]*116+flag[24]*202+flag[25]*260+flag[26]*64+flag[27]*125+flag[28]*195+flag[29]*61+flag[30]*137==590534)
s.add(flag[0]*196+flag[1]*123+flag[2]*162+flag[3]*102+flag[4]*120+flag[5]*223+flag[6]*328+flag[7]*29+flag[8]*27+flag[9]*225+flag[10]*74+flag[11]*377+flag[12]*287+flag[13]*365+flag[14]*286+flag[15]*282+flag[16]*309+flag[17]*364+flag[18]*358+flag[19]*43+flag[20]*227+flag[21]*376+flag[22]*315+flag[23]*170+flag[24]*357+flag[25]*210+flag[26]*326+flag[27]*260+flag[28]*87+flag[29]*0+flag[30]*352==666967)
if s.check() == z3.sat:
m = s.model()
# print(m)
result = []
for i in range(31):
val = m[flag[i]].as_long()
print(chr(val),end='')
# moectf{y0u_s0lv3d_Equati0ns!!!}
RC4
主要是要识别出是RC4加密
看不懂。。
junk_code
花指令
jmupout(xxxxx),说明在xxxxx地址处ida反编译失败了
jz,jnz
把call语句nop掉
flag_16 = [0x68, 0x6A, 0x60, 0x5E, 0x6F, 0x61, 0x76, 0x74, 0x2B, 0x70,
0x5A, 0x6D, 0x60, 0x68, 0x2B, 0x71, 0x2E, 0x5F]
for i in flag_16:
print(chr(i+5),end='')
# moectf{y0u_rem0v3d
flag_32 = [ 0x39, 0x12, 0x0E, 0x55, 0x39, 0x0C, 0x13, 0x08, 0x0D, 0x39,
0x05, 0x56, 0x02, 0x55, 0x47, 0x47, 0x47, 0x1B]
for i in flag_32:
print(chr(i^0x66),end='')
# moectf{y0u_rem0v3d_th3_junk_c0d3!!!}
SMC
SMC,即自修改代码
对地址进行异或操作
(所以比较好的方法就是直接使用ida调试,等待程序自行解密(求教))
(但我这没成功)
然后到汇编处
c识别成代码
p识别成函数
GUI
windows程序是再一个循环里处理一个又一个的消息,而这个消息是用户传来的,可能是按一下键盘,点一下某个按键之类的,而程序的循环会处理这一个一个的消息,用什么处理呢?
有一个很重要的消息处理函数,它叫回调函数,程序会把消息交给这个函数处理,然后给出结果,再退回到循环中,大概了解一下之后,我们来看这道题
WinMain相当于是Windows程序的main函数,先找这个东西
窗口绑定函数
根据WORD猜测是unicode
encrypted_flag = [
0x39, 0x3b, 0x31, 0xf, 0x3e, 0x30, 0x27, 0x13,
0x1, 0x7d, 0x70, 0x70, 0x3, 0x7d, 0x38, 0xe,
0x7a, 0x23, 0x7c, 0xb, 0x1a, 0x3c, 0x7d, 0x39,
0x7f, 0x3c, 0x4d, 0x4d, 0x4d, 0x29
]
for i in range(len(encrypted_flag)):
re = (encrypted_flag[i] ^ 0x51) + 5
print(chr(re),end='')
# moectf{GU1&&W1nd0w2_Pr1m3r!!!}
Ezandroid
native方法,去找so文件
明显是maze迷宫
Rust
恢复符号
Unwind
SEH
MoeCTF2023-Re-刷题
https://zer0peach.github.io/2025/08/11/MoeCTF2023-Re-刷题/