[HGAME 2023 week1]easyenc

正常顺序,我习惯于用die这个软件查看,因为看着简便。

然后接下来用IDA打开

image-20250904085526595

很明显这就是一个很普通的xor题。我们直接看,他写了v7【10】,而这个数据他是用的8字节,但是我们往后看,我们的flag(v9)是byte*+4说明他是char类型,然后循环41次说明我们的flag是41位。

很显然那句话是用来检查我们输入的flag是否是41位长度。然后接下来就开始解密环节

我们可以看见后面you are right!我们倒着看,v7以byte去进行运算,所以我们v3是从0到41一直+,然后(flag^0x32)-86的等于v7

然后我们写解密代码

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<Windows.h>
​
int main() {
    int v3 = 0;
    int v7[10] = { 0x09FDFF04, 0x00B0F301, 0xADF00500, 0x05170607, 
        0x17FD17EB, 0x01EE01EA, 0xFA05B1EA, 0xAC170108, 
    0xFDEA01EC, 0x060705F0 };
    char flag = 0;
​
    for (v3=41;v3 >=0;v3--) {
        flag = (*((char*)v7 + v3) + 86) ^ 0x32;
        printf("%c", flag);
    }
    
    
    
    return 0;
​
}
​
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值