easy_RE
先exeinfo

没有壳,直接上ida

看到有关键信息,但没有显示完,按f5反编译一下

拼接一下输入,注意字符串的部分字母由近似数字代替,提交

KE

运行一下,看到是KE,想着可能是壳的意思?exeinfo看一下

upx壳,尝试upx脱壳

呃呃 权限好像不对 尝试了一下用管理员权限打开

要记住先输入红框中的两行指令才可以打开目标文件夹。
打开之后可以看到成功脱壳了。
直接ida f5看看

程序逻辑也很清晰了,第一个红框输入字符并且通过++Str1[i]把字符的ascii值往后推一个,第二个红框就是加密之后与字符串enc进行比较
enc:

写脚本吧
a="gmbh|D1ohsbuv2bu21ot1oQb332ohUifG2stuQ[HBMBYZ2fwf2~"
for i in a:
k=ord(i)-1
print(chr(k),end='')
出flag
flag{C0ngratu1at10ns0nPa221ngTheF1rstPZGALAXY1eve1}
segment

elf,那放到kali里面看看

额,没啥信息,放ida里面吧,因为题目的信息也是这个

ok,啥也没有,按照提示shift f7打开段窗口

关键信息出来了,但是要注意的是flag后面的和name后面的__要换成{}
flag{You_ar3_g0od_at_f1nding_ELF_segments_name}
ELF

感觉没啥特殊的,扔kali里面看看

ida里面看看

可以看到,我们输入的字符串先经过了两重加密,然后和Vlx…进行比较。
所以你想思路就是Vlx…先解base64,再解上面那个encode。
本来第一步解base64我用的就是在线网站

然后换了一个网站,发现还没什么,直接就进行下一步

上面那个encode的逻辑就是先异或0x20,再减去16
那直接写就是了
flag{D04ou7nowwha7ELF1s?}
提交,不对。
后面我就觉得应该是上面有些不是标准字符,但是我错误的把他直接用来解密,就研究怎么直接在python里面,利用base64库,不用显示转义字符地得到字符串。直接告诉gpt需求,就写了
import base64
# 密文字符串
encrypted_string = "VlxRV2t0II8kX2WPJ15fZ49nWFEnj3V8do8hYy9t"
# Base64 替代字符集
altchars = b'@~'
# Base64 解码并使用替代字符集解析非标准字符
decoded_bytes = base64.b64decode(encrypted_string, altchars=altchars)
# 使用异或解密
decrypted_bytes = bytes([(c - 16) ^ 0x20 for c in decoded_bytes])
# 得到最初的字符串
original_string = decrypted_bytes.decode('utf-8')
print(original_string)
有了
flag{D0_4ou_7now_wha7_ELF_1s?}