首页 > 其他 > 详细

BUUCTF--xor

时间:2019-09-04 22:27:02      阅读:386      评论:0      收藏:0      [点我收藏+]

测试文件:https://buuoj.cn/files/caa0fdad8f67a3115e11dc722bb9bba7/7ea34089-68ff-4bb7-8e96-92094285dfe9.zip?token=eyJ0ZWFtX2lkIjpudWxsLCJ1c2VyX2lkIjoxOTAzLCJmaWxlX2lkIjoyMzl9.XW-jSA.6pb2caCKvD2RceQo5EiL3_wSfec

 

1.准备

技术分享图片

恩...毫无信息,用万能的IDA打开,博客园居然502了...

 

2.IDA打开

反编译main函数,获得C代码

 1 int __cdecl main(int argc, const char **argv, const char **envp)
 2 {
 3   char *v3; // rsi
 4   int result; // eax
 5   signed int i; // [rsp+2Ch] [rbp-124h]
 6   char v6[264]; // [rsp+40h] [rbp-110h]
 7   __int64 v7; // [rsp+148h] [rbp-8h]
 8 
 9   memset(v6, 0, 0x100uLL);
10   v3 = (char *)256;
11   printf("Input your flag:\n", 0LL);
12   get_line(v6, 256LL);
13   if ( strlen(v6) != 33 )
14     goto LABEL_12;
15   for ( i = 1; i < 33; ++i )
16     v6[i] ^= v6[i - 1];
17   v3 = global;
18   if ( !strncmp(v6, global, 0x21uLL) )
19     printf("Success", v3);
20   else
21 LABEL_12:
22     printf("Failed", v3);
23   result = __stack_chk_guard;
24   if ( __stack_chk_guard == v7 )
25     result = 0;
26   return result;
27 }

 

2.1代码分析

从第13行代码,我们知道flag的长度是33

第18行代码,在比较v6和global,后面的0x21也印证了,flag长度是33

global

__cstring:0000000100000F6E aFKWOXZUPFVMDGH db f,0Ah              ; DATA XREF: __data:_global↓o
__cstring:0000000100000F6E                 db k,0Ch,w&O.@,11h,x,0Dh,Z;U,11h,p,19h,F,1Fh,v"M#D,0Eh,g
__cstring:0000000100000F6E                 db 6,h,0Fh,G2O,0

从第15~16行代码,我们知道了v6的处理方式,那么将global反过来处理,也就获得了flag。

 

2.2脚本获取flag

str1 = [f, 0x0A, k, 0x0C, w, &, O, ., @, 0x11, x, 0x0D, Z, ;, U, 0x11, p, 0x19, F, 0x1F, v,
        ", M, #, D, 0x0E, g, 6, h, 0x0F, G, 2, O]

x = f

for i in range(1, len(str1)):
    if (isinstance(str1[i], str)):
        if (isinstance(str1[i - 1], str)):
            x += chr(ord(str1[i]) ^ ord(str1[i - 1]))
        else:
            x += chr(ord(str1[i]) ^ str1[i - 1])
    else:
        x += chr(str1[i] ^ ord(str1[i - 1]))

print(x)

注:第一个‘f’没有被处理,但是也是flag的一部分。

 

3.get flag!

flag{QianQiuWanDai_YiTongJiangHu}

 

BUUCTF--xor

原文:https://www.cnblogs.com/Mayfly-nymph/p/11461575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!