xor 题解

举报
御麟 发表于 2023/04/25 22:54:44 2023/04/25
【摘要】 ​ 1.解压文件得到文件夹,得到一个__MACOSX,说明是MacOs系统的可执行文件​编辑._xor在windows系统中是没用的只需要对xor进行反汇编2.查壳 ​编辑是一个64位文件3.静态分析找到main函数,按下F5反编译​编辑int __cdecl main(int argc, const char **argv, const char **envp){ int i; // [...

 1.解压文件

得到文件夹,得到一个__MACOSX,说明是MacOs系统的可执行文件

编辑

._xor在windows系统中是没用的

只需要对xor进行反汇编

2.查壳 

编辑

是一个64位文件

3.静态分析

找到main函数,按下F5反编译

编辑


int __cdecl main(int argc, const char **argv, const char **envp)
{
  int i; // [rsp+2Ch] [rbp-124h]
  char v5[264]; // [rsp+40h] [rbp-110h]

  memset(v5, 0, 0x100uLL);
  printf("Input your flag:\n");  
  get_line(v5, 256LL);    //输入字符串
  if ( strlen(v5) != 33 )   //如果字符串长度不等于33,跳转
    goto LABEL_11;
  for ( i = 1; i < 33; ++i )
    v5[i] ^= v5[i - 1];     
  if ( !strncmp(v5, global, 0x21uLL) )
    printf("Success");
  else
LABEL_11:
    printf("Failed");      //字符串长度不等于33,输出failed,flag长度一定是33
  return 0;
}

flag是一个长度为33的字符串

for ( i = 1; i < 33; ++i )
    v5[i] ^= v5[i - 1];     
  if ( !strncmp(v5, global, 0x21uLL) )
    printf("Success");

根据这段关键代码编写wp

需要知道:两次异或等于没有异或

global与异或操作之后的数据相等

查看global

编辑

点击aFKWOXZUPFVMDGH继续跟进

编辑

 找到数据

编辑

 选中,shift加e提取

编辑

 提取数据

 102, 10, 107, 12, 119, 38, 79, 46, 64, 17,

120, 13, 90, 59, 85, 17, 112, 25, 70, 31,

118, 34, 77, 35, 68, 14, 103, 6, 104, 15,

71, 50, 79, 0

4.编写wp

python wp

flag=""
data=[ 102,10,107,12,119,38,79,46,64,17,120,13,90,59,85,17,112,25,70,31,118,34,77,35,68,14,103,6,104,15,71,50,79,0]
for i in range(1,len(data)):
    flag+=chr(data[i]^data[i-1])  //第一个数据之后的都参与异或运算,需要逆向
print(chr(data[0])+flag)   //第一个数据没有参与异或运算,直接打印

C++ wp

#include<iostream>
using namespace std;

int main(){
	int data[34]={102,10,107,12,119,38,79,46,64,17,120,13,90,59,85,17,112,25,70,31,118,34,77,35,68,14,103,6,104,15,71,50,79,0};
	printf("%c",char(data[0]));
	for(int i=1 ;i<=32;i++){
		char a;
		a=(char)data[i]^data[i-1]; 
		printf("%c",a);
	} 
	return 0;
} 

flag{QianQiuWanDai_YiTongJiangHu}    千秋万代,一统江湖!


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。