-
-
[原创] 看雪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漏洞挖掘与利用;代码审计。
赞赏
他的文章
看原图