2020年DASCTF六月团队赛 REVERSE Magia

2020年DASCTF六月团队赛 REVERSE Magia

IDA静态分析

程序为32位Windows程序,拖入IDA3Pro分析

字符串输入检测

在这里插入图片描述
在这里插入图片描述
输入字符串后进入sub_403290()函数检测,满足以下条件:
1.字符串必须为32位。
2、第1、2、3、4、32位分别为‘N’、‘e’、‘p’、‘{’、‘}’。
不满足,则退出。满足则进入下一步检测。

字符间逻辑检测

在这里插入图片描述
依次对第一个字符与最后一个、第二个字符与到数字二个、第三个与倒数第三…第16个与第32个,两个字符满足以下条件:
设key为字符串,i(0-16)为字符串的下标
1.key[i] ^ key[-(i+1)],依次等于:

0x33 0x00 0x15 0x09 0x0B 0x36 0x06 0x0C 0x02 0x3A 0x2C 0x08 0x31 0x0B 0x37 0x0C

2 .key[i] & key[-(i+1)],依次等于:

0x4C 0x65 0x60 0x72 0x64 0x49 0x70 0x63 0x6C 0x45 0x53 0x61 0x4E 0x64 0x48 0x61

3.key[i] & 0xf,依次等于:

0x0E 0x05 0x00 0x0B 0x0D 0x09 0x02 0x03 0x0C 0x05 0x0F 0x01 0x0E 0x04 0x0F 0x0D

4.key[-(i+1)] & 0xf,依次等于:

0x01 0x08 0x0F 0x0F 0x09 0x03 0x0F 0x0E 0x0F 0x04 0x0F 0x06 0x02 0x05 0x05 0x0D 

根据以上逻辑关系可以爆破出input:
|:------::-------|第几位1
根据题目中提示的格式为

abcd_efgh_...

可确定为:

Nep{mircle_and_maho_is_not_free}

输入验证:
在这里插入图片描述
说明正确,但提示:

It_is_that_true?

这还不是flag。

继续IDA分析

在这里插入图片描述
输入验证正确后,首先对word_403006的数据进行了计算处理
在这里插入图片描述
在这里插入图片描述
然后将sub_403000();作为函数调用。word_403006与输入的字符串进行计算转换后转换为执行代码。
在这里插入图片描述

利用XDBG进行动态分析

text:004019F6 call sub_403000,在004019F6出下断,跟踪,经过几个循环
在这里插入图片描述
sub_403000为生成flag的函数,在函数中跟踪运行。
在这里插入图片描述
跟踪到地址00403221处在0018FE70处找到生成的flag:8b272473500a451286ab225413f1debd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值