本文僅以學習交流爲目的,請勿用於非法用途,一切因引起的後果與作者無關。
今天的主角是 學生機房管理助手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發佈 大家可以百度去除控制去官網下載。