ctf-learn RE_verseDIS

RE_verseDIS

1. 问题描述

这是一道逆向的题目,可执行文件的下载地址:problem

2. 分析

通过IDA Pro对该文件进行分析,反汇编的结果如下:


QQ截图20200828125654.png

从上面的代码可以看出,代码的关键是红框中两条代码语句,用key2中的数据和str中的数据进行异或。接下来看key中的值,以及str的值。如下所示:


QQ截图202008281713.png

所以key和key的值为'IdontKnowWhatsGoingOn', str中实际值为'0x8, 0x6, 0x2c, 0x3a, 0x32, 0x30, 0x1c, 0x5c, 0x1, 0x32, 0x1a, 0x12, 0x45,0x1d, 0x20, 0x30, 0x0d, 0x1b, 0x3, 0x7c, 0x13',下面通过程序对他们进行异或。

3. 程序

key1 = [ord(c) for c in 'IdontKnowWhatsGoingOn']
key2 = [0x8, 0x6, 0x2c, 0x3a, 0x32, 0x30, 0x1c, 0x5c, 0x1, 0x32, 0x1a, 0x12, 0x45,0x1d, 0x20, 0x30, 0x0d, 0x1b, 0x3, 0x7c, 0x13]


result = []

for i in range(len(key1)):
    result.append(key1[i] ^ key2[i])
    
result = [chr(i) for i in result]
    
print('flags:',''.join(result))
flags: AbCTF{r3vers1ng_dud3}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容