异性相吸

题目描述:

题目分析(两种解法):

第一种:
  • 文件中并没有过多提示,只有异性相吸这一提示,那么便想到了异或

异或:
逻辑算符异或(exclusive or)是对两个运算元的一种逻辑析取类型,符号为 xor 或 eor 或 ⊕(编程语言中常用^)
计算机中异或是以二进制数据为基础进行运算的;也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。运算规则:两个操作数的同位中,如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)则为1,即:

1 ^ 1 = 0
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1

  • 由此我们便能想到用010打开文件,取两文件的二进制数进行异或,得到异或值后再将其转化为字符串

  • 解密脚本如下:

import libnum
c = '00000111 00011111 00000000 00000011 00001000 00000100 00010010 0101010100000011 00010000 01010100 01011000 01001011 01011100 01011000 0100101001010110 01010011 01000100 01010010 00000011 01000100 00000010 0101100001000110 00000110 01010100 01000111 00000101 01010110 01000111 0101011101000100 00010010 01011101 01001010 00010100 00011011'.replace(' ','')
k = '01100001 01110011 01100001 01100100 01110011 01100001 01110011 0110010001100001 01110011 01100100 01100001 01110011 01100100 01100001 0111001101100100 01100001 01110011 01100100 01100001 01110011 01100100 0110000101110011 01100100 01100001 01110011 01100100 01100001 01110011 0110010001110001 01110111 01100101 01110011 01110001 01100110'.replace(' ','')
m = ''
for i in range(len(c)):if c[i] == k[i]:m += '0'else:m += '1'
print(libnum.b2s(m))
  • 得到:flag{ea1bc0988992276b7f95b54a7435e89e}
第二种:

直接python打开要读取的文件进行异或转换
(注:要读取的文件和所写的代码要放入同一个文件夹中)
代码如下:

key = open("key.txt", 'rb').read()
cipher = open("密文.txt", "rb").read()flag = []
result = ""
for i in range(len(key)):flag.append(key[i] ^ cipher[i])result += chr(flag[i])
print(flag)
print(result)

yxx

和上面一题解法一模一样,这里就不过多解说了

  • 得到:flag{xor_xor_xor_biubiubiu} xor为异或符号

收获与体会:

要我说以后遇到这种有两串文字,一串是乱码(看不懂的字符),一串是看得懂的字母,且形式还挺相同的,如:

m: asadsasdasdasdasdasdasdasdasdasdqwesqf

m: lovelovelovelovelovelovelovelove

c: ἇ̀Ј唒ဃ塔屋䩘卖剄䐃堂ن䝔嘅均ቄ䩝ᬔ

c: V

0
0
0

如果没有其他有用的提示,那么就用异或来做,也只能用异或来做,但关键是做题的时候要想得到这种方法

buu 异性相吸 yxx相关推荐

  1. 南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup

    南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup 题目描述 文件下载地址 很明显,文件之间进行亦或就可得到flag,不再多说,直接上脚本 1 #coding:utf-8 2 file ...

  2. 实验吧CTF练习题---安全杂项---异性相吸解析

    ---恢复内容开始--- 实验吧安全杂项之异性相吸 地址:http://www.shiyanbar.com/ctf/1855 flag值:nctf{xor_xor_xor_biubiubiu} 解题步 ...

  3. 异性相吸_writeup

    http://ctf.nuptzj.cn/challenges#异性相吸 vi +_+-.txt / +?+-.txt vim编辑器底部出现一排红色提示 Command can not be - 提示 ...

  4. BUUCTF——异性相吸 题解

    题目描述:最近出现了一个奇葩观点,说性别都不一样,怎么能谈恋爱?为了证明这个观点错误,请大家证明异性是相吸的. 注意:得到的 flag 请包上 flag{} 提交. 答案: flag{ea1bc098 ...

  5. 异性相吸题目解决方法

    题目如下: 把密文拖入16进制查看器看一下,数了下正好38个值,数了下正好密钥也是38个字符 难道是按位异或?毕竟题目叫异性相吸 flag{ea1bc0988992276b7f95b54a7435e8 ...

  6. 实验吧-杂项-异性相吸(异或加密)

    异或加密的一道题 明文和密文进行异或得出flag: with open("明文.txt") as f1:a = f1.read() with open("密文.txt&q ...

  7. BUUCTF_Crypto_异性相吸(yxxx)

    题目:给了两个文件一个是key.txt,一个是密文.txt 这种类型的题的原理就是将所有的字符串变成二进制数,一个字符串对应8位二进制数. 再进行加法运算:1+1=0,1+0=0,0+1=0,(每个1 ...

  8. BUUCTF Crypto [异性相吸] writeup题解

    1.观察题目 2.解题思路 联想到密码学中明文和密钥进行异或操作进行加密的方式,用二进制形式打开两个文件,然后编写简单脚本对每一位进行异或操作即可得到答案: #include<iostream& ...

  9. K近邻算法:以同类相吸解决分类问题!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:游璐颖,福州大学,Datawhale成员 前言 KNN(k-nea ...

最新文章

  1. 从零开始html css,HTML/CSS从零开始-常用属性(三)
  2. 1.5 为什么正则化可以减少过拟合?
  3. 陈秋贵 CHEN QIUGUI 美国的门窗大王
  4. pyton 编写脚本检测两台主机之间的通信状态,异常邮件通知
  5. ubuntu下cmake安装
  6. pt和px区别 pt是逻辑像素,px是物理像素
  7. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 3
  8. 遍历同辈节电的方法_家庭节水节电的24个好方法
  9. 如何bat修改dns
  10. 2019双11猫晚直播技术详解(附演讲PDF)
  11. 问题:TypeError: Descriptors cannot not be created directly.解决方法
  12. 带你了解云计算的优势
  13. Lect2_MDPs
  14. 非正式协议和正式协议的区别
  15. [corctf 2022] 部分
  16. git 版本管理系统
  17. [渝粤教育] 长沙理工大学 理论力学 参考 资料
  18. 数据结构与算法之一(书籍篇)
  19. 基于asp.net企业差旅管理系统-计算机毕业设计
  20. unit8_t, unit16_t, unit32_t, unit64_t

热门文章

  1. 【今日计划】学习jQuery与Ajax的应用
  2. TPS7A4101DGN线性稳压器50V输入电压50mA 高电压TI
  3. java ssh三层架构_SSH和三层架构的MVC模式的对应关系
  4. [附源码]JAVA+ssm健身房管理系统(程序+Lw)
  5. “中国网安•深思杯”第八届山东省大学生网络安全技能大赛选拔赛Misc题目Write up
  6. java 文本的相似度_java – 文本相似度算法
  7. mac 设置 nginx 代理
  8. Java 丢手绢游戏 求和_小区被“丢手绢”吼爆了, 大人都做过的, 现在竟然还可以这么火!...
  9. 51Nod1414-冰雕-【思维】
  10. com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接