debug -------------- 简单的net

emmmm  感觉.net的题 也太没有压力了把  

.net 工具一把梭直接就ok了      

先用工具找到 关键点

using System;
using System.Security.Cryptography;
using System.Text;

internal class ᜅ
{
	private static int ᜀ(int A_0, int A_1)
	{
		return (new int[]
		{
			2,
			3,
			5,
			7,
			11,
			13,
			17,
			19,
			23,
			29,
			31,
			37,
			41,
			43,
			47,
			53,
			59,
			61,
			67,
			71,
			73,
			79,
			83,
			89,
			97,
			101,
			103,
			107,
			109,
			113
		})[A_1] ^ A_0;
	}

	private static string ᜀ(string A_0)
	{
		byte[] bytes = Encoding.ASCII.GetBytes(A_0);
		return "flag{" + BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(bytes)).Replace("-", "") + "}";
	}

	private static void ᜀ(string A_0, int A_1, ref string A_2)
	{
		int num = 0;
		if (0 < A_0.Length)
		{
			do
			{
				char c = A_0[num];
				int num2 = 1;
				do
				{
					c = Convert.ToChar(ᜅ.ᜀ(Convert.ToInt32(c), num2));
					num2++;
				}
				while (num2 < 15);
				A_2 += c;
				num++;
			}
			while (num < A_0.Length);
		}
		A_2 = ᜅ.ᜀ(A_2);
	}

	private static void ᜀ(string[] A_0)
	{
		string b = null;
		string value = string.Format("{0}", DateTime.Now.Hour + 1);
		string a_ = "CreateByTenshine";
		ᜅ.ᜀ(a_, Convert.ToInt32(value), ref b);
		string a = Console.ReadLine();
		if (a == b)
		{
			Console.WriteLine("u got it!");
			Console.ReadKey(true);
		}
		else
		{
			Console.Write("wrong");
		}
		Console.ReadKey(true);
	}
}

 然后可以分析一下 函数流程   写出脚本   感觉脚本挺好些的 

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<iostream>
#include<map>
#include<time.h>
#include<math.h>
using namespace std;
int s[30]= {   2,
               3,
               5,
               7,
               11,
               13,
               17,
               19,
               23,
               29,
               31,
               37,
               41,
               43,
               47,
               53,
               59,
               61,
               67,
               71,
               73,
               79,
               83,
               89,
               97,
               101,
               103,
               107,
               109,
               113
           };
char flag[100];
int reint(int a1,int a2)
{
    return s[a2]^a1;
}
int main()
{
    char str[]="CreateByTenshine";
    char c=str[0];
    int num=0,num2;
    do
    {
        c=str[num];
        num2=1;
        do
        {
            c=reint((int)c,num2);
            num2++;

        }
        while(num2<15);
        flag[num++]=c;
    }while(num<strlen(str));
    printf("%s\n",flag);
    return 0;
}

打印内容 

[j}yl}ZaL}vkpqv}

然后 用md5加密一下 

这里的flag 是32位大写  flag也就是flag{967DDDFBCD32C1F53527C221D9E40A0B}

这题还是比较水的0.。

猜你喜欢

转载自blog.csdn.net/qq_41071646/article/details/86477873