Imre Himpli portrait

Hallo! Ich bin Imre Himpli

Kfz-Techniker & Webentwickler

imre.himpli@sigterm.hu

Das Vermächtnis von Kim Freding: Ein Pionier im BMW-Tuning

Jan 29, 2023

Nach dem bedauerlichen Tod von Kim Freding wurde seine Website (chipster.no) unzugänglich. Kim war ein Pionier in der BMW-Tuning-Community und bekannt für seine unschätzbaren Beiträge im Bereich ECU-Flashing und Prüfsummenberechnung. Eines seiner bemerkenswertesten Werke war das Siemens Flash Tool, das zum Zeitpunkt seiner Veröffentlichung lizenzpflichtige Software war.


Leider ist Kim nicht mehr unter uns und da seine Familie sich entschieden hat, die Lizenzierungsplattform nicht weiterzuführen, gab es keinen offiziellen Weg, seine unglaubliche Software weiterhin zu nutzen. Um sein Erbe zu bewahren und sicherzustellen, dass seine Arbeit der Community weiterhin zugutekommt, habe ich es auf mich genommen, einen Keygen zu entwickeln.



public static string smethod_4(string string_0)
{
	string password = "uV1M/.&{>Q1A`!0T:3,:67)oMy6=0I";
	byte[] bytes = Encoding.Unicode.GetBytes(string_0);
	
	using (Aes aes = Aes.Create())
	{
		Rfc2898DeriveBytes rfc2898DeriveBytes = new Rfc2898DeriveBytes(password, new byte[]{73,118,97,110,32,77,101,100,118,101,100,101,118});
		aes.Key = rfc2898DeriveBytes.GetBytes(32);
		aes.IV = rfc2898DeriveBytes.GetBytes(16);

		using (MemoryStream memoryStream = new MemoryStream())
		{
			using (CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write))
			{
				cryptoStream.Write(bytes, 0, bytes.Length);
				cryptoStream.Close();
			}

			string_0 = Convert.ToBase64String(memoryStream.ToArray());
		}
	}

	return string_0;
}




Durch das Entpacken und Deobfuskieren der Software mit de4dot konnte ich die Funktion finden, die für die Überprüfung einer gültigen Lizenz verantwortlich ist. Nachdem ich die Logik umgekehrt und sie in PHP portiert hatte, war es mir wieder möglich, Kims brillante Software zu nutzen – und damit sicherzustellen, dass seine harte Arbeit der BMW-Tuning-Community weiterhin zugutekommt.



private function GenerateLicense($hwid)
{
	$dev = openssl_pbkdf2('uV1M/.&{>Q1A`!0T:3,:67)oMy6=0I', 'Ivan Medvedev', 48, 1000);
	$key = substr($dev, 0, 32);
	$iv = substr($dev, 32, 16);

	$pass = openssl_encrypt(mb_convert_encoding($hwid, "UCS-2LE", "JIS, eucjp-win, sjis-win"), 'aes256', $key, OPENSSL_RAW_DATA, $iv);

	return base64_encode($pass);
}




Danke, Kim, für alles, was du getan hast. Deine Beiträge werden niemals vergessen. Ruhe in Frieden.

Imre Himpli

Project Info

Category:

BMW, Programming