menu 牢记自己是菜
BUUCTF [V&N2020 公开赛]CSRe
1614 浏览 | 2020-03-28 | 阅读时间: 约 3 分钟 | 分类: BUUCTF,CTF比赛实战学习 | 标签:
请注意,本文编写于 1490 天前,最后修改于 1490 天前,其中某些信息可能已经过时。

0x1 题目简介

题目链接
逆向方向上的题目主要涉及:1.花代码的混淆 2.Net反汇编 3.sha1加密算法。主要是dnspy和de4bot两个工具的使用。首先先介绍一下这两个工具,dnSpy中文版是一款net程序反编译工具,可以对net程序进行反编译,还有替代库文档的功能,如果遇到了代码丢失或者损坏的情况,可以直接恢复。de4bot是一个去除花代码的工具,配合dnspy可与还原大多数C#的原代码。


0x2 开始分析

开始分析,将文件拖入IDA,看见一堆乱七八糟的函数,才意识到应该是花代码的混淆。介绍一下花代码的混淆:代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。

将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等。打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。

这里我们就要用到de4bot这个工具了,由于是exe所以也不需要啥注意的,就是俗话说的有手就行,之后他会生成一个去完花指令的文件。至于是否可以手动去花这里就先不讨论了。

在拖入IDA,虽然可以看见花代码被替换掉了,但是IDA仍然没有办法看见任何有用的信息。这里我们就要用到我们的dnspy。由于这道题应该是入门级别的题目,所以我们不需要多少操作,只需要把程序拖到软件中,找到Main函数入口就可以了。

我们分析一下函数,就像在IDA里面一样,跳转过去发现是一个SHA1的加密。

这里就不由得感叹一下这个软件对.NET的反汇编功能的强大,代码看起来就十分的舒服,并且可以在上面进行修改。然后回到我们的主函数,分析一下。这里用了两个SHA1的加密,并且在里面去掉了一些字符。

这里我们直接去在线网站上去查一下SHA1,发现可以找到,那就没有事情了。


自己在进行一下组合就可以啦。


0x3 后记

这道题就算法而言,是十分简单的,主要是积累一下这两个新奇的工具的使用。ctf比赛中的工具太多也太杂乱,但是我们还是要去收集一下,开阔一下视野。噶油!我在等我蜕变的那一天

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!