re学习笔记(72)HGAME2021 Level - Week1 - RE WP

文章目录

apacha

在这里插入图片描述

#include <stdio.h>
#include "mycrypto.h"
#include <time.h>
#include <stdlib.h>

int main(void) {
    unsigned int data[35] = {
    0xE74EB323, 0xB7A72836, 0x59CA6FE2, 0x967CC5C1, 0xE7802674, 0x3D2D54E6, 0x8A9D0356, 0x99DCC39C,
    0x7026D8ED, 0x6A33FDAD, 0xF496550A, 0x5C9C6F9E, 0x1BE5D04C, 0x6723AE17, 0x5270A5C2, 0xAC42130A,
    0x84BE67B2, 0x705CC779, 0x5C513D98, 0xFB36DA2D, 0x22179645, 0x5CE3529D, 0xD189E1FB, 0xE85BD489,
    0x73C8D11F, 0x54B5C196, 0xB67CB490, 0x2117E4CA, 0x9DE3F994, 0x2F5AA1AA, 0xA7E801FD, 0xC30D6EAB,
    0x1BADDC9C, 0x3453B04A, 0x92A406F9
    };
    uint32_t key[4] = { 1,2,3,4 };
    xxtea_crypt(data, -35, key);

    for(int i=0;i<35;i++)
        printf("%c", data[i]);
    // hgame{l00ks_1ike_y0u_f0Und_th3_t34}
}

其中头文件mycrypto.hgithub

helloRe

在这里插入图片描述

l = [0x97, 0x99, 0x9C, 0x91, 0x9E, 0x81, 0x91, 0x9D, 0x9B, 0x9A, 0x9A, 0xAB, 0x81, 0x97, 0xAE, 0x80, 0x83, 0x8F, 0x94, 0x89, 0x99, 0x97]
flag = ""
n = 255
for i in range(22):
	flag += chr(l[i]^n)
	n -= 1
print(flag)
# hgame{hello_re_player}

pypy

python字节码,手动参考文档还原

得到还原后代码

raw_flag = input('give me your flag:\n')
cipher = list(raw_flag[6:-1])
length = len(cipher)
for i in range(length//2):
    cipher[2*i],cipher[i*2+1]=cipher[2*i+1],cipher[i*2]
res = []
for i in range(length):
    res.append(ord(cipher[i])^i)
res = bytes(res).hex()
print('your flag: '+res)

写解密脚本

flag = "30466633346f59213b4139794520572b45514d61583151576638643a"
flag = list(bytearray.fromhex(flag))
length = len(flag)
for i in range(length):
    flag[i] = flag[i]^i
for i in range(length//2):
    flag[2*i],flag[i*2+1]=flag[2*i+1],flag[i*2]
f = ""
for i in flag:
    f += chr(i)
print('hgame{'+f+"}")
# hgame{G00dj0&_H3r3-I$Y@Ur_$L@G!~!~}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forgo7ten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值