CTF题解三 逆向 where is your flag(ISCC2017)

本文详细介绍了CTF比赛中一道逆向题目'where is your flag'(ISCC2017)的解题过程,重点解析了对变量s2进行异或操作的步骤,以及如何通过分析得出正确答案flag{lt.is.50.easy}。同时,作者反思了在理解s2异或和16进制及小端存储特性上的不足。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接进入test函数:

下面的代码进行第一步操作:

这里写图片描述

首先a1的长度应该为19。

接下来对s2进行异或处理。

题目中给出的s2的值如下:

 s2 = 0x3929531D01070A00LL;
 v4 = 0x391257391F150703LL;
 v5 = 0x150F;
 v6 = 0x1B;

s2是int64类型,共有8个字节。由于s2、v4、v5和v6的地址是相连的,所以当从s2的起始地址开始进行19个字节的异或处理时,v4、v5和v6中的数值也会被处理。

由于s2占据了多个字节,在存储的过程中,一定存在着先分配的字节放在高地址还是低地址的问题。在s2中先分配的字节应该是放在了低地址处。

对s2、v4、v5和v6中的元素按顺序写出,应为:

 s2 = 0x00,0x0A,0x07,0x01,0x1D,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值