WUSTCTF2021-re-平成第四杰

WUSTCTF2021-re-平成第四杰,第1张

WUSTCTF2021-re-平成第四杰 exeinfope查看信息

发现py文件转化成的exe文件,则用pyinstxtractor将exe文件转成pyc文件。

pyinstxtractor将exe转为pyc

在网上找到pyinstxtractor.py文件,将此文件放在与目标文件同一文件夹下,打开控制台输入以下命令

python pyinstxtractor.py 平成第四杰.exe

  *** 作后文件夹中生成以下文件夹

在文件夹中找到struct文件和“平成第四杰”文件

 

 将“平成第四杰”文件后缀改为.pyc

 打开winhex,打开文件struct和平成第四杰.pyc文件

 对比两个文件,发现struct文件比目标文件多了一行16进制字符,我们把这一行复制到目标文件开头。

 

 像这样,然后ctrl+s保存。

python在线反编译

打开python在线反编译网站,选择目标文件后,生成如下代码

table = [
    28709,
    3454,
    16859,
    3524,
    16876,
    8497,
    17277,
    17152,
    4629,
    17152]
text = input('平成三杰现向你抛出橄榄枝,希望你能加入他们,但需要你喊出口号:')
if len(text) != 10:
    print('你甚至不知道该输几个字!')
else:
    cipher = []
    for i in range(len(text)):
        cipher.append(ord(text[i]))
    
    for i in range(len(cipher)):
        if i & 1 == 0:
            cipher[i] ^= 4660
            continue
        cipher[i] ^= 17185
    
    tmp = 0
    for i in range(len(cipher)):
        if cipher[i] == table[i]:
            continue
            continue
        print("Sorry, maybe you don't have it in you.")
        tmp = 1
        break
    
    if tmp == 0:
        print('Congratulations on becoming the fourth jie!')
 上脚本!!!
table = [
    28709,
    3454,
    16859,
    3524,
    16876,
    8497,
    17277,
    17152,
    4629,
    17152]

flag=[]

for i in range(len(table)):
    if i & 1 ==0:
        table[i] ^= 4660
        continue
    table[i] ^= 17185
    flag += chr(table[i])

print(flag)

 运行结果如下(脚本写的比较辣鸡,请大佬们海涵)

[25105, 20063, 21487, 20197, 21464, 25104, 20809, 33, 33, 33]

得到的是一串十进制数字。将其通过在线网站转化为ASCII码形式。

 得到flag!!

 我也可以变成光!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5700445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存