本文僅以學習交流爲目的,請勿用於非法用途
自從去除控制破解掉了機房助手6.1的密碼策略後,那個作者更換了加密策略,並對軟件加殼保護
今天來分析一下新的加密算法
同6.1 相比 6.8
1 依舊是過時的DES加密
2 更換了密鑰爲rebootpc,偏移量syserror
3 對寫入註冊表的數據做了一些裝飾
4 增加了對去除控制,我的arp欺騙程序,用於6.1破解密碼的regworkshop
的屏蔽(很愚蠢的匹配窗口名的辦法)以圖爲證
關鍵算法
public static object smethod_2()
{
string text = null;
int num = 0;
try
{
ProjectData.ClearProjectError();
string text2 = "reboot";
string text3 = "sys";
object objectValue = RuntimeHelpers.GetObjectValue(Interaction.CreateObject("wscript.shell", ""));
object obj = RuntimeHelpers.GetObjectValue(NewLateBinding.LateGet(objectValue, null, "regread", new object[]
{
"HKEY_LOCAL_MACHINE\\software\\pd"
}, null, null, null));
int num2 = 1;
do
{
Conversions.ToString(Operators.ConcatenateObject(obj, "2"));
num2++;
}
while (num2 <= 3);
obj = RuntimeHelpers.GetObjectValue(NewLateBinding.LateGet(objectValue, null, "regread", new object[]
{
"HKEY_LOCAL_MACHINE\\software\\360m"
}, null, null, null));
object objectValue2 = RuntimeHelpers.GetObjectValue(obj);
text2 += "pc";
int num3 = 1;
do
{
Conversions.ToString(Operators.ConcatenateObject(obj, "1"));
num3++;
}
while (num3 <= 3);
obj = Strings.Mid(Conversions.ToString(obj), 2);
int num4 = 1;
do
{
Conversions.ToString(Operators.ConcatenateObject(obj, "2"));
num4++;
}
while (num4 <= 3);
text3 += "error";
if (Information.Err().Number == 0)
{
text = CryptoHelper.smethod_1(Conversions.ToString(obj), text2, text3);
}
else
{
text = "";
}
CryptoHelper.Decrypt(Conversions.ToString(objectValue2), "20200101", "xsjfglzs");
}
catch (Exception)
{
}
string text4 = text;
if (num != 0)
{
ProjectData.ClearProjectError();
}
MessageBox.Show(Conversions.ToString(text4));
return text4;
}
public static string Decrypt(string string_0, string string_1, string string_2)
{
DESCryptoServiceProvider descryptoServiceProvider = new DESCryptoServiceProvider();
descryptoServiceProvider.Key = Encoding.UTF8.GetBytes(string_1);
descryptoServiceProvider.IV = Encoding.UTF8.GetBytes(string_2);
byte[] buffer = Convert.FromBase64String(string_0);
MemoryStream stream = new MemoryStream(buffer);
CryptoStream stream2 = new CryptoStream(stream, descryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Read);
StreamReader streamReader = new StreamReader(stream2);
return streamReader.ReadToEnd();
}
可以看出核心算法並未有較大的改變
可以參考我對6.1的分析 https://blog.csdn.net/qq_37485351/article/details/93291748
這是修改版的設置,在原密碼欄中隨意輸入,按保存設置,忽視退出安全軟件提示(按是),會自動彈出一個消息框,那就是密碼
下載地址 https://www.lanzous.com/b05fzlri
當然註冊表解密也行
把360m項拿出來,去掉前面的a就是真正的加密碼了,一樣的在線解密
ok
我們的目的旨在幫助有能力的學生學到更多的知識,而不是侷限於老師所講的,當然我們還是希望薄弱的同學好好聽課。