安恒月赛-DASCTF之Reverse

前言:逆向题真的做到雨露均沾!安恒月赛-DASCTF之Reverse_第1张图片
入门reverse 按照以往的套路IDA载入,再F5(但是做题要仔细,此题是32位的程序)]当时做题时拖入IDA 64位F5后没反应,憨憨的我纠结了半个小时,一度怀疑F5坏了安恒月赛-DASCTF之Reverse_第2张图片之后换了32位载入正常显示如图所示安恒月赛-DASCTF之Reverse_第3张图片因作为签到题,不会太复杂,大致看一下猜是输入,v5的异或处理,用Python写个代码试一下安恒月赛-DASCTF之Reverse_第4张图片果然,猜对了,就是这么爽!
也可用C++编译一下安恒月赛-DASCTF之Reverse_第5张图片结果编译运行后一样也可以出flag
0X02 encrypt3刚看到这题时属实有点懵,怎么那么多行,仔细看一下,关键点在数字上,分析一下也是对异或算法的一种应用(题外话,异或算法确实得好好学)也是写个Python代码编译一下安恒月赛-DASCTF之Reverse_第6张图片回车就出答案了C++程序一样可以做,代码没有Python简洁安恒月赛-DASCTF之Reverse_第7张图片 0X03 sm 此题是个神仙题,只有十位大神做出来了官方出了位web大神来讲解了几个题,此题在其中。听完讲解之后,这题应该归为密码题,核心如题名是国密sm4算法(我不会啊),只能现学现卖了IDA打开之后就是如图所示安恒月赛-DASCTF之Reverse_第8张图片
跟进sub_401863()函数(至于为什么跟进这个函数,试出来的,一共两个函数,试那个里面没什么有用信息)安恒月赛-DASCTF之Reverse_第9张图片
再跟进如上图sub_4016D2()函数(跟进它的原因很简单,其他的sub_401639()和sub_4015c9就是一样能看出来的异或操作),跟进后发现特征值unk_4040,安恒月赛-DASCTF之Reverse_第10张图片
打开后安恒月赛-DASCTF之Reverse_第11张图片
4个一组,按倒序排列得到
{0xa3b1bac6,0x56aa3350,0x677d9197,0xb27022dc},这个值为sm4的FK,由分析算法流程得这就是一个sm4加密。复制上面那串到浏览器一搜就能找到这篇文章安恒月赛-DASCTF之Reverse_第12张图片
安恒月赛-DASCTF之Reverse_第13张图片
根据交叉引用,找到S盒,CK 值,再找到需要对比的密文c。
S 盒安恒月赛-DASCTF之Reverse_第14张图片
CK值安恒月赛-DASCTF之Reverse_第15张图片
main中的v9—v12就是需要比较的密文c,。
现在我们得到了FK,CK,S 盒,密文c 。根据sm4解密算法得到明文m, 分四次提交得到flag,
flag{d0389046c236e4c66bd787959f5c6e66}

(本人菜鸡一个,向大佬们学习)

你可能感兴趣的:(笔记)