首页
社区
课程
招聘
[原创] 看雪CTF.TSRC 2018 团队赛 第二题 半加器 解题过程
2018-12-3 14:21 2138

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

2018-12-3 14:21
2138
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
提交显示正确:



[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回