首页 > 其他分享 >Reverse|Buuctf xor

Reverse|Buuctf xor

时间:2023-05-06 14:37:08浏览次数:37  
标签:Buuctf xor Reverse 33 char int flag v6 string


程序为mac 64位应用,且未加壳,使用ida64位程序打开
查看快捷键查看字符串,发现flag字符,下方有个success,猜测是输入正确的字符串后会输出success

点击进入,查看伪代码

int __cdecl main(int argc, const char **argv, const char **envp)
{
  char *v3; // rsi
  int result; // eax
  signed int i; // [rsp+2Ch] [rbp-124h]
  char v6[264]; // [rsp+40h] [rbp-110h]
  __int64 v7; // [rsp+148h] [rbp-8h]

  memset(v6, 0, '\x01\0');
  v3 = (char *)256;
  printf("Input your flag:\n", 0LL);
  get_line(v6, 256LL);
  if ( strlen(v6) != 33 )
    goto LABEL_12;
  for ( i = 1; i < 33; ++i )
    v6[i] ^= v6[i - 1];
  v3 = global;
  if ( !strncmp(v6, global, '!') )
    printf("Success", v3);
  else
LABEL_12:
    printf("Failed", v3);
  result = __stack_chk_guard;
  if ( __stack_chk_guard == v7 )
    result = 0;
  return result;
}

if ( strlen(v6) != 33 ),这里先判断字符长度是不是33位
for ( i = 1; i < 33; ++i ) v6[i] ^= v6[i - 1];,然后进行异或运算

查看前面的汇编代码,发现了字母和16进制数字

需要将十六进制转为字符,再与前一位进行异或运算即可得到flag
脚本

string = ['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']

for i in range(1, len(string)):
    if (isinstance(string[i], int)):
        string[i] = chr(string[i])

string = ''.join(string)

flag = 'f'
for i in range(1, len(string)):
    flag += chr(ord(string[i]) ^ ord(string[i-1]))

print(flag)
flag{QianQiuWanDai_YiTongJiangHu}

标签:Buuctf,xor,Reverse,33,char,int,flag,v6,string
From: https://www.cnblogs.com/scarecr0w7/p/17377196.html

相关文章

  • Reverse|Buuctf reverse1
    查看程序信息DetectItEasy查看程序信息,发现是64位应用且未加壳反编译文件使用IDA打开,shift+f12检索程序里的字符串,发现thisistherightflag!,双击查看,发现被main_0函数引用双击main_0函数查看F5查看伪代码int__cdeclmain_0(intargc,constchar**argv,constcha......
  • Reverse|[GXYCTF2019]luck_guy
    ida64打开文件,搜索字符串进入pleaseinputaluckynumber伪代码输入数字进入patch_me(v4);,输入数字为偶数进入get_flag()函数unsigned__int64get_flag(){unsignedintv0;//eaxcharv1;//alsignedinti;//[rsp+4h][rbp-3Ch]signedintj;//[rsp......
  • Web|Buuctf-[NPUCTF2020]ezinclude
    查看源码提示md5($secret.$name)===$passcookie中存在hash,hash随着name的变化而变化hash填入pass参数请求跳转到404页面使用burpsuite发包,提示存在flflflflag.php页面flag不在此页面,并且页面存在文件包含漏洞读取flflflflag.php页面源码<html><head><scriptlangua......
  • Web|Buuctf [NCTF2019]SQLi
    直接给出了查询语句select*fromuserswhereusername=''andpasswd=''构造语句查询,发现有过滤fuzz一下,很多参数都被过滤robots协议下发现hint.txt文件hint.txt文件,有被过滤的参数,但是没有过滤"、|和\,并且提示只要密码与admin的密码相同就可以获得flag解题思路无......
  • Reverse|[ACTF新生赛2020]easyre
    DiE查询发现是UPX加壳,使用工具拆壳./upx-dfile.exe32位程序使用ida32打开找到关键代码int__cdeclmain(intargc,constchar**argv,constchar**envp){charv4;//[esp+12h][ebp-2Eh]charv5;//[esp+13h][ebp-2Dh]charv6;//[esp+14h][ebp-2Ch]c......
  • Reverse|[GWCTF 2019]pyre
    pyc文件反编译uncompyle6-opcat.pyattachment.pycpcat.py#uncompyle6version3.8.0#Pythonbytecode2.7(62211)#Decompiledfrom:Python3.10.6(main,Aug302022,04:58:14)[Clang13.1.6(clang-1316.0.21.2.5)]#Embeddedfilename:encode.py#Compiled......
  • Reverse|Buuctf 简单注册器
    反编译apk文件,搜索flag找到关键代码publicvoidonClick(Viewparam1View){byteb=1;Stringstr=editview.getText().toString();if(str.length()!=32||str.charAt(31)!='a'||str.charAt(1)!='b'||str.ch......
  • Misc|Buuctf 喵喵喵
    查看exif信息无内容,binwalk查看拼接文件也无内容,使用zsteg有内容,说明有lsb隐写内容,使用StegSolve查看发现RGB0通道异常使用DataExtract模式查看,发现存在LSB隐写,隐写有一张图片,另存为图片但是无法打开使用010editor打开,发现文件头不正确,删除多余文件头,打开为半张二维码使用......
  • C++黑马程序员——P251-254. 常用排序算法 sort,random_shuffle,merge,reverse
    P251.常用排序算法——sortP252....——random_shuffleP253....——mergeP254....——reverseP251.sort  1#include<iostream>2#include<vector>3#include<algorithm>4#include<functional>//用greater5usingnamespacest......
  • [网络安全]BurpSuite爆破实战解题详析之BUUCTF Brute 1
    免责声明:本文仅分享AntSword渗透相关知识,不承担任何法律责任。请读者自行安装BurpSuite,本文不再赘述。在用户名和密码都未知的情况下,进行用户名、密码的组合爆破,效率极低。先爆破用户名,再利用得到的用户名爆破密码,将提高爆破速度。BUUCTFBrute1题目操作Burp抓包单独......