Easy kengen

题目链接 : http://reversing.kr/challenge.php 第二题
下载下来是一个压缩包,解压后有一个exe文件和一个txt文件。打开readme,可以看到下面内容:

***ReversingKr KeygenMe
Find the Name when the Serial is 5B134977135E7D13***

看意思应该就是在程序输入name,程序会计算出一个Serial,正确答案的话应该最后算出来的等于“5B134977135E7D13”。
下面看程序,用IDA打开,F5反汇编,得到下面内容:

这里写图片描述

主要就是sprintf那一句,将输入的name与一个数进行异或,所以只要将Serial异或一次就可以得到原始的name。
程序如下:

Serial = '5B,13,49,77,13,5E,7D,13'
Serial = [int(i, base=16) for i in Serial.split(',')]
encode = [16,32,48]
for i in range(8):
    Serial[i] = encode[i % 3] ^ Serial[i]
name = ''.join([chr(i) for i in Serial])
print(name)

最后输出:K3yg3nm3
测试一下
这里写图片描述
正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值