首页
论坛
课程
招聘
雪    币: 3117
活跃值: 活跃值 (11)
能力值: ( LV15,RANK:1395 )
在线值:
发帖
回帖
粉丝

[原创] 看雪CTF.TSRC 2018 团队赛 第二题 半加器 解题过程

2018-12-3 14:21 671

[原创] 看雪CTF.TSRC 2018 团队赛 第二题 半加器 解题过程

2018-12-3 14:21
671
1.程序运行会有提示:
Please Input:
根据此提示可找到主函数:

xor_48d3a4最终调用:

根据这些信息可知:
1.key长度在 10到30之间
2.输入字符串拷贝到全局变量dword_5F3088
3.第8个字符为A,之后会被替换为# (sub_49dbd0 第6行代码,如上图),整个字符串每一位异或ox1f

在IDA中超值 dword_5F3088的交叉引用可找到另外一个重要函数:


此函数中,先将字符串“invalid argument”异或0x1c加密,再与 dword_5F3088异或后内容比较,先等则打印ok。

根据以上信息,相当于将字符串 “invalid argument” 每一位异或0x1c后再异或0x1f,然后将第8位的#改为A即为注册码。

#69 6E 76 61 6C 69 64 20  61 72 67 75 6D 65 6E 74  invalid argument


last_str="invalid argument"

last_str_len=len(last_str)

outList=[]
for i in xrange(0,last_str_len):
    outList.append(ord(last_str[i])^0x1c)


keyString=""
for x in xrange(0,last_str_len):
    keyString+=(chr(outList[x]^0x1f))
    
keyString=keyString.replace('#','A')
print keyString


输出字符串为:jmubojgAbqdvnfmw
提交显示正确:




HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

最新回复 (0)
游客
登录 | 注册 方可回帖
返回