re学习(15)BUUCTF 2019红帽杯easyRe(寻找数据+xor问题)

参考视频:

【BUUCTF】每天一个CTF11“2019红帽杯easyRe”_哔哩哔哩_bilibili

(本人觉得看视频比看博客效率能提高十倍,呜呜呜,还是视频香~~~与君共勉)

下载地址:

BUUCTF在线评测

前言:虽然带有easy,但是并不是那么easy。CTF偏向于算法,实战偏向于程序逻辑,执行的流程

刷题所得:

AB键将转伪代码,与空格键配合使用

0→字符串的结束标志,查看字符串结尾

Shift+e:导出数据,提取数据

X;交叉引用,寻找哪个函数用了这段数据

*号键:可以创建数组,规定数组大小

题解:
1.ida64打开

                                                  (建议多看汇编,少看伪代码 )

                                       (CTF解题大概就在这个函数里面了)

   (推测flag可能在off_6CC090中)

 进入off_6CC090,进行base64解密

 

import base64

encData='Vm0wd2VHUXhTWGhpUm1SWVYwZDRWVll3Wkc5WFJsbDNXa1pPVlUxV2NIcFhhMk0xVmpKS1NHVkdXbFpOYmtKVVZtcEtTMUl5VGtsaVJtUk9ZV3hhZVZadGVHdFRNVTVYVW01T2FGSnRVbGhhVjNoaFZWWmtWMXBFVWxSTmJFcElWbTAxVDJGV1NuTlhia0pXWWxob1dGUnJXbXRXTVZaeVdrWm9hVlpyV1hwV1IzaGhXVmRHVjFOdVVsWmlhMHBZV1ZSR1lWZEdVbFZTYlhSWFRWWndNRlZ0TVc5VWJGcFZWbXR3VjJKSFVYZFdha1pXWlZaT2NtRkhhRk5pVjJoWVYxZDBhMVV3TlhOalJscFlZbGhTY1ZsclduZGxiR1J5VmxSR1ZXSlZjRWhaTUZKaFZqSktWVkZZYUZkV1JWcFlWV3BHYTFkWFRrZFRiV3hvVFVoQ1dsWXhaRFJpTWtsM1RVaG9hbEpYYUhOVmJUVkRZekZhY1ZKcmRGTk5Wa3A2VjJ0U1ExWlhTbFpqUldoYVRVWndkbFpxUmtwbGJVWklZVVprYUdFeGNHOVhXSEJIWkRGS2RGSnJhR2hTYXpWdlZGVm9RMlJzV25STldHUlZUVlpXTlZadE5VOVdiVXBJVld4c1dtSllUWGhXTUZwell6RmFkRkpzVWxOaVNFSktWa1phVTFFeFduUlRhMlJxVWxad1YxWnRlRXRXTVZaSFVsUnNVVlZVTURrPQ== '
for i in range(10):
    encData=base64.b64decode(encData)
print(encData)

然后怎么办呢?遇到了困难,请教别人,别人根据经验.........

                           (从flag开始 两次异或)

key='flag'
encKey=[0x40, 0x35, 0x20, 0x56]
for i in range(len(encKey)):
    encKey[i]^=ord(key[i%4])
encData=[
  0x40, 0x35, 0x20, 0x56, 0x5D, 0x18, 0x22, 0x45, 0x17, 0x2F,
  0x24, 0x6E, 0x62, 0x3C, 0x27, 0x54, 0x48, 0x6C, 0x24, 0x6E,
  0x72, 0x3C, 0x32, 0x45, 0x5B
]
for i in range(len(encData)):
    print(chr(encData[i]^encKey[i%4]),end='')
#flag{Act1ve_Defen5e_Test}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提供了一段代码,其中定义了一个全局变量key,并给出了key的值。引用是一段使用了异或运算的代码,其中包含了对全局变量key的使用。引用是一个题目的描述,题目要求使用IDA打开附件,并进入到主函数中。 根据引用的代码,全局变量key的值是一个由16进制整数和字符串组成的数组。根据引用中的代码,这个全局变量key在进行异或运算时被使用了。具体来说,根据代码可以得知,x、y和z是三个变量,z等于x和y的异或运算结果,x等于z和y的异或运算结果,y等于z和x的异或运算结果。 根据引用中的题目描述,题目要求我们战胜xor的敌人or,其中xor的奥秘在附件中。根据题目的要求,我们需要使用IDA打开附件并进入主函数中,并进行分析和解密操作。 综上所述,buuctf xor是一个题目的一部分,要求使用IDA打开附件并进行分析和解密操作。具体的解密步骤需要进一步分析附件中的代码和逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [BUUCTF 逆向工程(reverse)之xor](https://blog.csdn.net/weixin_44632787/article/details/119808950)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值