【去除控制】對 學生機房管理助手 密碼破解的分析1st

 

 


                                  本文僅以學習交流爲目的,請勿用於非法用途,一切因引起的後果與作者無關。

今天的主角是 學生機房管理助手6.1 2019版。

 

這個軟件讓我們學生深惡痛絕,因爲它我們喪失了一切上機房的樂趣,於是具有反抗精神的我們開始做些造福全社會的事。呵呵。

分析開始

慣例拖進peid

驚喜的發現軟件是。net寫的,還沒加殼。這爲我們反編譯算法提供了極大地方便,爽!

直接進IL SPY

瀏覽代碼,找到基本邏輯

輸入密碼》讀取註冊表獲得原密碼密文》des解密得明碼》於輸入密碼對比

找到思路自然簡便很多。(作者你代碼寫的有點亂啊)

關鍵代碼:

// WindowsApplication1.Module1
public static object jiemi()
{
	int num;
	object obj;
	int num3;
	try
	{
		IL_00:
		ProjectData.ClearProjectError();
		num = -2;
		IL_09:
		int num2 = 2;
		object objectValue = RuntimeHelpers.GetObjectValue(Interaction.CreateObject("wscript.shell", ""));
		IL_21:
		num2 = 3;
		object objectValue2 = RuntimeHelpers.GetObjectValue(NewLateBinding.LateGet(objectValue, null, "regread", new object[]
		{
			"HKEY_LOCAL_MACHINE\\software\\pd"
		}, null, null, null));
		IL_4C:
		num2 = 4;
		if (Information.Err().Number != 0)
		{
			goto IL_7F;
		}
		IL_5C:
		num2 = 5;
		string text = Module1.DecryptDes(Conversions.ToString(objectValue2), "20190101", "xsjfglzs");
		IL_75:
		num2 = 6;
		obj = text;
		IL_7A:
		goto IL_11A;
		IL_7F:
		num2 = 8;
		IL_82:
		num2 = 9;
		obj = "";
		IL_8C:
		goto IL_11A;
		IL_91:
		int arg_98_0 = num3 + 1;
		num3 = 0;
		@switch(ICSharpCode.Decompiler.ILAst.ILLabel[], arg_98_0);
		IL_CD:
		goto IL_10F;
		num3 = num2;
		@switch(ICSharpCode.Decompiler.ILAst.ILLabel[], (num > -2) ? num : 1);
		IL_EB:
		goto IL_10F;
	}
	object arg_ED_0;
	endfilter(arg_ED_0 is Exception & num != 0 & num3 == 0);
	IL_10F:
	throw ProjectData.CreateProjectError(-2146828237);
	IL_11A:
	object arg_124_0 = obj;
	if (num3 != 0)
	{
		ProjectData.ClearProjectError();
	}
	return arg_124_0;
}
public static string DecryptDes(string SourceStr, string myKey, string myIV)
{
	DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
	dESCryptoServiceProvider.Key = Encoding.UTF8.GetBytes(myKey);
	dESCryptoServiceProvider.IV = Encoding.UTF8.GetBytes(myIV);
	byte[] buffer = Convert.FromBase64String(SourceStr);
	MemoryStream stream = new MemoryStream(buffer);
	CryptoStream stream2 = new CryptoStream(stream, dESCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Read);
	StreamReader streamReader = new StreamReader(stream2);
	return streamReader.ReadToEnd();
}

顯然這是一個DES加解密標程

DecryptDes(string SourceStr, string myKey, string myIV)

sourcestr密文 mykey=20190101 myiv=xsjfglzs

string text = Module1.DecryptDes(Conversions.ToString(objectValue2), "20190101", "xsjfglzs");

返回值text即爲我們要知道的密碼明文。

去除控制6.0將自帶此密碼破解的支持 將於2019-07-15發佈 大家可以百度去除控制去官網下載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章