首页 > 其他分享 >xor

xor

时间:2023-05-01 10:44:29浏览次数:36  
标签:__ xor 33 global st flag printf

~它说附件有用????(没见用到)~

查壳

64位,进IDA,老方法(伪代码)

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

  memset(__b, 0, 0x100uLL);
  printf("Input your flag:\n");
  get_line(__b, 256LL);
  if ( strlen(__b) != 33 )
    goto LABEL_7;
  for ( i = 1; i < 33; ++i )
    __b[i] ^= __b[i - 1];
  if ( !strncmp(__b, global, 0x21uLL) )
    printf("Success");
  else
LABEL_7:
    printf("Failed");
  return 0;
}

可以见到两重判断


第一重说的是,如果 __b 的长度没有33就不对

第二重说的是 __b 转化后如果不与 global 相同也不对,可以知道 global 是 flag 经过转化后得到的东西

查看 global :dq offset aFKWOXZUPFVMDGH

很明显这玩意不是字符串,双击 aFKWOXZUPFVMDGH 进入

提取选中全部 db --> shift+e --> 保存文件

我们先看看 __b 怎么转化的:利用循环前一位和后一位按位异或了

所以利用这个方法,用 global 还回去,写个脚本(根据它的写法,我们反着来就好了,这里用的是python)

st = [0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11,
      0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F,
      0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F,
      0x47, 0x32, 0x4F, 0x00]
flag = ''
for i in range(len(st) - 1, 0, -1):
    st[i] ^= st[i - 1]

for i in range(33):
    flag += chr(st[i])
print(flag)

得到flag{QianQiuWanDai_YiTongJiangHu}收工

标签:__,xor,33,global,st,flag,printf
From: https://www.cnblogs.com/TFOREVERY/p/17366247.html

相关文章

  • CF 1709E XOR Tree(树上启发式合并)
    题目链接:https://codeforces.com/contest/1709/problem/E解题思路:定义sum(x,y)为x→y路径上的点的异或和,dx 为x→root路径上的点的异或和。对于一个点权树,sum(x,y)=dx ^dy ^vallca(x,y)。考虑修改一个点,可以将它改为一个很大的2为底数的幂,则经过此点的所有的不合......
  • POJ - 3764 XOR&&dfs 01字典树
    Inanedge-weightedtree,thexor-lengthofapathpisdefinedasthexorsumoftheweightsofedgesonp:{xor}length§=\oplus{e\inp}w(e)⊕isthexoroperator.Wesayapaththexor-longestpathifithasthelargestxor-length.Givenanedge-weigh......
  • [ABC126F] XOR Matching
    2023-01-07题目传送门翻译难度&重要性(1~10):1题目来源AtCoder题目算法位运算解题思路因为两个相同数异或为\(0\),所以中间放一个\(k\)两边一直加一样的数,然后在序列首或尾在加一个\(k\),既构造完成。(\(k=1\)时要特判)完成状态已完成......
  • xor (牛客多校) (线性基+ 线段树)
      思路:问xor起来有没有某个值,想到线性基然后发现问L-R区间的集合都要表示x,利用线性基的交集解决在利用线段树解决区间问题 #include<iostream>usingnamespacestd;typedefunsignedintui;constintmaxn=50005;structL_B{//线性基结构体ui......
  • CF1816F Xor Counting - dp - 分治 -
    题目链接:https://codeforces.com/contest/1816/problem/F题解:一道有趣的题。首先发现\(m=1\)和\(m\geq3\)时结论是平凡的。\(m=1\)时结论显然,下面讨论一下\(m\geq3\)时:首先可以构造\([x,(n-x)/2,(n-x)/2,\cdots]\),其中\(x\)和\(n\)同奇偶,显然此时异或值可以......
  • [ARC127D] Sum of Min of Xor 题解
    先把\(i\)对\(j\)的约束去掉。没有\(\min\)的情况是trival的,发现瓶颈在于如何比较两个数之间的大小。可以发现,对两个二进制数,我们本质上是想要找到它们第一个不同的位置。于是考虑从最高位开始,将\((a_i,b_i)\)按最高位分组为\((0,0),(0,1),(1,0),(1,1)\)四组。每组内......
  • unity xorpay使用HTTP中post方式请求调用接口
    结合:https://www.cnblogs.com/guangzhiruijie/p/16985533.htmlunity自带的UnityWebRequest提供了构成HTTP请求和处理HTTP响应。构造函数:publicUnityWebRequest();publicUnityWebRequest(Uriuri);publicUnityWebRequest(stringurl);publicUnityWebRequest(Uriuri,......
  • buuctf 新年快乐、内涵的软件、xor
    内涵的软件下载解压文件后双击执行,没有任何提示将文件拖进exeinfope 发现查不出壳,并且为32位的文件,拖进ida32,shift+f12查找字符串,找到flag 新年快乐打开ida发......
  • Go Xorm简单使用
    官网相关文档https://xorm.io/zh/docs/chapter-01/1.engine/https://gitea.com/xorm/xorm/src/branch/master/README_CN.mdxorm是一个简单而强大的Go语言ORM库.通过......
  • xor shift
    64位。整数到整数的随机映射。x^=x<13,x^=x>>7,x^=x<<17为了防止被对着卡,可以在前面和后面各让x异或一个随机的常数。拿来树哈希,\(h(x)=hash(\{h_v\})\)dls说自然......