首页
论坛
课程
招聘
雪    币: 500
活跃值: 活跃值 (20)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝

[原创]半加器 writeup

2018-12-4 22:20 949

[原创]半加器 writeup

2018-12-4 22:20
949

半加器 writeup

使用ida查找提示字符串"please input"的引用,找到函数:

 

该函数读取输入后判断输入的第8个字符要为'A',之后进入do_xor函数:

 

 

do_xor把第8个字符变为'#',之后将每个字符异或上0x1f。之后调用的函数们看了下好像并没有什么意义;查找对全局保存的input_xor_0x1f的引用后找到了另一个函数:

 

 

该函数将第二个参数每个字符异或0x1c与输入进行比对,查找该函数的引用可以找到第二个参数为"invalid argument":

 



 

于是可以写出脚本:

#!/usr/bin/python
a = "invalid argument"
input = ''
for c in a:
    input += chr(ord(c) ^ 0x1c ^ 0x1f)
input = input[:7] + 'A' + input[8:]
print input
#jmubojgAbqdvnfmw

验证成功



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

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