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

[原创]第二题 半加器

2018-12-3 21:44 858

[原创]第二题 半加器

2018-12-3 21:44
858

拖入IDA,发现一堆奇怪操作,好像有什么动态修改的东西在里面?

 

先跑起来,通过栈回溯即可找到读取输入的逻辑,在0x13B19B0,猜测标记一些函数,逻辑如下:
图片描述

 

可以看到要求输入长度在10~30之间,且中间一位是'A'。拿到输入进入encode函数,是一段异或逻辑,把'A'替换成'#',其余的异或0x1f:
图片描述

 

在存放输入字符串的地方下内存访问断点,立马断到对比逻辑,
图片描述

 

观察发现就是逐位和图中所示的'urj}pux<}n{iqyrh'字符串对比,反着异或回去,得到答案。

>>> xor('urj}pux<}n{iqyrh', '\x1f')
'jmubojg#bqdvnfmw'
>>> jmubojgAbqdvnfmw

尝试填入答案,跟过去,发现最后输出ok的逻辑:

 

图片描述



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

最后于 2018-12-4 09:51 被diycode编辑 ,原因:
最新回复 (0)
游客
登录 | 注册 方可回帖
返回