GeekChal 2019 - RE4(千反田和冰窠) - WriteUp

Posted travelr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GeekChal 2019 - RE4(千反田和冰窠) - WriteUp相关的知识,希望对你有一定的参考价值。

程序提示使用dnSpy。
 
通过上述工具打开,发现类EncryptStr里自有玄机:
 
// Bingo.EncryptStr
// Token: 0x06000013 RID: 19 RVA: 0x00002424 File Offset: 0x00000624
public bool CheckStr(string text)
{
    if (text.Length != 20)
    {
        return false;
    }
    byte[] bytes = Encoding.ASCII.GetBytes(text);
    byte[] array = new byte[]
    {
        119,
        77,
        103,
        79,
        21,
        115,
        133,
        97,
        115,
        87,
        22,
        115,
        103,
        89,
        88,
        93,
        22,
        89,
        119,
        81
    };
    byte[] array2 = new byte[]
    {
        57,
        13
    };
    for (int i = 0; i < array.Length; i++)
    {
        bytes[i] = Convert.ToByte((int)((bytes[i] ^ array2[0]) + array2[1]));
        if (bytes[i] != array[i])
        {
            return false;
        }
    }
    return true;
}

 

 

 
想必就是存放flag的地方了。
 

 
这个函数定义了三个数组, 然后以array数组的长度为循环次数,将byte[i] 跟array[2] 异或在加上array2[1] 的结果赋给bytes[i]
 
再检查bytes[i] 跟array[i] 相不相等,不相等就返回false
 

 
然后写个c脚本完事。
 
#include <stdio.h>
#include <string.h>
int main() {
        int arr1[] = { 119,
               77,
               103,
               79,
               21,
               115,
               133,
               97,
               115,
               87,
               22,
               115,
               103,
               89,
               88,
               93,
               22,
               89,
               119,
               81 };
        int arr2[] = {57,13};
        int flag[20];
        int length = 24 - 4;
        for (int i = 0; i < length; i++)
               flag[i] = ((arr1[i] - arr2[1]) ^ arr2[0]);
        for (int k = 0; k < length; k++)
               printf("%c", flag[k]);
        return 0;
}

 

 
 
得出flag
 
Syc{1_Am_s0_curi0uS}

以上是关于GeekChal 2019 - RE4(千反田和冰窠) - WriteUp的主要内容,如果未能解决你的问题,请参考以下文章

markdown geekhouse,五反田,大崎备忘录

怎样用photoshop做冰块和冰效果

探索深海生态系统和冰卫星的协同作用-深海机器人开发与空间技术合作

探索深海生态系统和冰卫星的协同作用-深海机器人开发与空间技术合作

攻防世界逆向高手题《流浪者》《re4-unvm-me》《tt3441810》《BABYRE》

python 在此处找到CVE-2006-2184 python脚本的修改版本:https://github.com/Re4son/AT-TFTP_Long_Filename/blob/master/