第一次近距离感受到了巨佬们的气场,产生了对大师赛巨佬们的敬佩之情,体会到了菜鸡和鹏鸟之间的差距,除了膜,似乎已经没有其他能描述我对巨佬们的敬佩。WCTF的赛题质量之高,设计思路巧妙,可以说每一道题目都能get到实实在在的东西,相当的有意思。本场比赛仅做出truth一题,简单记录一下学习笔记。
truth
.net的程序逆向,静态分析三次矩阵求逆即可得到flag,然而Is it real flag?真的会这么简单么?
正确的思路:
- resources中修改了func2中的代码,但是诸如dnspy之类调试工具无法调试代码。
- windbg调试.net程序,见微软官方的如何使用windbg调试托管代码 Debugging Managed Code
- 成功载入SOS debugging extension和mscordacwks.dll,去调试托管代码,!bmpd下断点,使用方法见!sos.help。
以下操作均在windbg已经能够正确载入符号的前提下进行。
1 | sxe ld:clr |
成功下断点运行以后,都是以前windbg调试的方法了,撸汇编就行了,程序进行了两次代码的自解密,然后写逆算法,求到flag。