V1.4 - Added firmware .bin to rwd converter
This commit is contained in:
parent
ddfe0a9ada
commit
db2feab40f
|
@ -190,7 +190,7 @@ public class Class_Cypher
|
||||||
//#########################################
|
//#########################################
|
||||||
//#########################################
|
//#########################################
|
||||||
IL_170:
|
IL_170:
|
||||||
//(((k2 != 0 ? s * k1 % k2 : s * k1) ^ (s + k0)) & 0xFFFF)
|
//PERFORM CYPHER WORK BELLOW
|
||||||
/*Console.WriteLine("num:" + num.ToString()); //num = 2920096767U -> FF-23-0D-AE
|
/*Console.WriteLine("num:" + num.ToString()); //num = 2920096767U -> FF-23-0D-AE
|
||||||
Console.WriteLine("num2:" + num2.ToString()); //num2 = 1080383667U -> B3-58-65-40
|
Console.WriteLine("num2:" + num2.ToString()); //num2 = 1080383667U -> B3-58-65-40
|
||||||
Console.WriteLine("num3:" + num3.ToString()); //num3 = 0
|
Console.WriteLine("num3:" + num3.ToString()); //num3 = 0
|
||||||
|
|
231
Class_RWD.cs
231
Class_RWD.cs
|
@ -16,6 +16,12 @@ static class Class_RWD
|
||||||
public static byte[] _firmware_encrypted = new byte[] { };
|
public static byte[] _firmware_encrypted = new byte[] { };
|
||||||
public static UInt32 start = 0U;
|
public static UInt32 start = 0U;
|
||||||
public static UInt32 size = 0U;
|
public static UInt32 size = 0U;
|
||||||
|
private static string[] SuppportedVersions = new string[] { };
|
||||||
|
private static string[] SuppportedFWKeys = new string[] { };
|
||||||
|
private static string CanAddress = "";
|
||||||
|
private static byte[] DecodersBytes = new byte[] { }; //Used to decode rwd to bin
|
||||||
|
private static byte[] EncodersBytes = new byte[] { }; //Used to encode bin to rwd
|
||||||
|
private static byte[] RWD_encrypted_StartFile = new byte[] { }; //Used to encode bin to rwd
|
||||||
|
|
||||||
private static GForm_Main GForm_Main_0;
|
private static GForm_Main GForm_Main_0;
|
||||||
|
|
||||||
|
@ -24,17 +30,99 @@ static class Class_RWD
|
||||||
GForm_Main_0 = GForm_Main_1;
|
GForm_Main_0 = GForm_Main_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void CompressFile(string ThisFile, string CompressedName)
|
||||||
|
{
|
||||||
|
FileStream originalFileStream = File.Open(ThisFile, FileMode.Open);
|
||||||
|
FileStream compressedFileStream = File.Create(CompressedName);
|
||||||
|
GZipStream compressor = new GZipStream(compressedFileStream, CompressionMode.Compress);
|
||||||
|
originalFileStream.CopyTo(compressor);
|
||||||
|
}
|
||||||
|
|
||||||
public static byte[] Decompress(string ThisFile)
|
public static byte[] Decompress(string ThisFile)
|
||||||
{
|
{
|
||||||
Stream compressedStream = new MemoryStream(File.ReadAllBytes(ThisFile));
|
Stream compressedStream = new MemoryStream(File.ReadAllBytes(ThisFile));
|
||||||
var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress);
|
GZipStream zipStream = new GZipStream(compressedStream, CompressionMode.Decompress);
|
||||||
MemoryStream resultStream = new MemoryStream();
|
MemoryStream resultStream = new MemoryStream();
|
||||||
zipStream.CopyTo(resultStream);
|
zipStream.CopyTo(resultStream);
|
||||||
return resultStream.ToArray();
|
return resultStream.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static UInt16 ToUInt16BE(byte[] TwoBytes)
|
||||||
|
{
|
||||||
|
UInt16 k0 = BitConverter.ToUInt16(TwoBytes, 0);
|
||||||
|
UInt16 k1 = BitConverter.ToUInt16(BitConverter.GetBytes(k0).Reverse().ToArray(), 0);
|
||||||
|
return k1;
|
||||||
|
}
|
||||||
|
|
||||||
public static void LoadRWD(string f_name, bool FullDecrypt)
|
private static UInt16 checksum_by_sum(byte[] fw, uint start, uint end)
|
||||||
|
{
|
||||||
|
int s = 0;
|
||||||
|
uint valuescount = (end - start) / 2;
|
||||||
|
for (int i = 0; i < valuescount; i++)
|
||||||
|
{
|
||||||
|
byte[] ThisTwoBytes = new byte[2] { fw[start + (i*2)], fw[start + (i * 2) + 1] };
|
||||||
|
s += ToUInt16BE(ThisTwoBytes);
|
||||||
|
|
||||||
|
if (s > 0xFFFF) s -= 0xFFFF;
|
||||||
|
}
|
||||||
|
return (UInt16) s;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static UInt16 checksum_by_negative_sum(byte[] fw, uint start, uint end)
|
||||||
|
{
|
||||||
|
int s = 0;
|
||||||
|
uint valuescount = (end - start) / 2;
|
||||||
|
for (int i = 0; i < valuescount; i++)
|
||||||
|
{
|
||||||
|
byte[] ThisTwoBytes = new byte[2] { fw[start + (i * 2)], fw[start + (i * 2) + 1] };
|
||||||
|
s -= ToUInt16BE(ThisTwoBytes);
|
||||||
|
|
||||||
|
if (s < 0) s += 0xFFFF;
|
||||||
|
}
|
||||||
|
return (UInt16) s;
|
||||||
|
}
|
||||||
|
|
||||||
|
//######################################################################################################
|
||||||
|
//######################################################################################################
|
||||||
|
public static void LoadBIN(string f_name, string f_nameFW)
|
||||||
|
{
|
||||||
|
byte[] data = File.ReadAllBytes(f_name);
|
||||||
|
GForm_Main_0.method_1("Encrypting file: " + f_name);
|
||||||
|
|
||||||
|
//Load .rwd file for obtaining 'encryption' method and then encrypt the .bin using the same method.
|
||||||
|
LoadRWD(f_nameFW, true, false);
|
||||||
|
|
||||||
|
//Copy Start file bytes from the selected rwd file
|
||||||
|
byte[] dataEncrypted = new byte[RWD_encrypted_StartFile.Length + data.Length];
|
||||||
|
for (int i = 0; i < RWD_encrypted_StartFile.Length; i++) dataEncrypted[i] = RWD_encrypted_StartFile[i];
|
||||||
|
|
||||||
|
//Encrypt .bin data bytes to .rwd format
|
||||||
|
for (int i = 0; i < data.Length; i++)
|
||||||
|
{
|
||||||
|
byte ThisByte = data[i];
|
||||||
|
dataEncrypted[RWD_encrypted_StartFile.Length + i] = EncodersBytes[ThisByte];
|
||||||
|
}
|
||||||
|
|
||||||
|
//Fix Checksums
|
||||||
|
//TODO HERE #######################################
|
||||||
|
|
||||||
|
//Save Encrypted rwd firmware
|
||||||
|
string ThisPath = Path.GetDirectoryName(f_name) + @"\" + Path.GetFileNameWithoutExtension(f_name) + ".rwd";
|
||||||
|
File.Create(ThisPath).Dispose();
|
||||||
|
File.WriteAllBytes(ThisPath, dataEncrypted);
|
||||||
|
GForm_Main_0.method_1("Saved encrypted firmware file: " + ThisPath);
|
||||||
|
|
||||||
|
//Save ZIPPED Encrypted firmware
|
||||||
|
CompressFile(ThisPath, ThisPath + ".gz");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*'39990-TLA-A030': { #CR-V thanks to joe1
|
||||||
|
'checksum-offsets': [(0, 0x6bf80), (1, 0x6bffe)] #original bin checksums are 0x419b at offset 0x6FF80 and 0x24ef at 0x6FFFE, but since we start the bin from 0x4000 after bootloader, we offset the checksum accordingly
|
||||||
|
},*/
|
||||||
|
|
||||||
|
//######################################################################################################
|
||||||
|
//######################################################################################################
|
||||||
|
public static void LoadRWD(string f_name, bool FullDecrypt, bool Saving)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[] { };
|
byte[] data = new byte[] { };
|
||||||
if (Path.GetExtension(f_name).ToLower().Contains("gz")) data = Decompress(f_name);
|
if (Path.GetExtension(f_name).ToLower().Contains("gz")) data = Decompress(f_name);
|
||||||
|
@ -90,6 +178,10 @@ static class Class_RWD
|
||||||
size = ReadUInt32BE(data, idx);
|
size = ReadUInt32BE(data, idx);
|
||||||
idx += 4;
|
idx += 4;
|
||||||
|
|
||||||
|
//Get Start file bytes array
|
||||||
|
RWD_encrypted_StartFile = new byte[idx];
|
||||||
|
for (int i = 0; i < idx; i++) RWD_encrypted_StartFile[i] = data[i];
|
||||||
|
|
||||||
byte[] firmware = Slice(data, idx, data.Length - 4);
|
byte[] firmware = Slice(data, idx, data.Length - 4);
|
||||||
idx += firmware.Length;
|
idx += firmware.Length;
|
||||||
|
|
||||||
|
@ -102,10 +194,55 @@ static class Class_RWD
|
||||||
_firmware_encrypted = firmware;
|
_firmware_encrypted = firmware;
|
||||||
_keys = headers5;
|
_keys = headers5;
|
||||||
|
|
||||||
if (FullDecrypt) DecryptRWD(f_name);
|
//Get supported versions and supported firmwares keys
|
||||||
|
int VersionsCount = (headers3.Length / 16);
|
||||||
|
SuppportedVersions = new string[VersionsCount];
|
||||||
|
SuppportedFWKeys = new string[VersionsCount];
|
||||||
|
string SoftwareKey = _keys[0].ToString("X2") + _keys[1].ToString("X2") + _keys[2].ToString("X2");
|
||||||
|
for (int i = 0; i < VersionsCount; i++)
|
||||||
|
{
|
||||||
|
//Get Supported versions
|
||||||
|
byte[] buf = new byte[16];
|
||||||
|
int EmptyCount = 0;
|
||||||
|
for (int i2 = 0; i2 < 16; i2++)
|
||||||
|
{
|
||||||
|
buf[i2] = headers3[(i * 16) + i2];
|
||||||
|
if (buf[i2] == 0)
|
||||||
|
{
|
||||||
|
buf[i2] = 0x2E;
|
||||||
|
EmptyCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Remove Empty chars
|
||||||
|
byte[] bufRedo = new byte[16 - EmptyCount];
|
||||||
|
for (int i2 = 0; i2 < bufRedo.Length; i2++) bufRedo[i2] = buf[i2];
|
||||||
|
SuppportedVersions[i] = System.Text.Encoding.ASCII.GetString(bufRedo);
|
||||||
|
|
||||||
|
//Get supported Firmwares keys according to the supported versions
|
||||||
|
byte[] bufkey = new byte[6];
|
||||||
|
for (int i2 = 0; i2 < 6; i2++)
|
||||||
|
{
|
||||||
|
bufkey[i2] = headers4[(i * 6) + i2];
|
||||||
|
}
|
||||||
|
SuppportedFWKeys[i] = bufkey[0].ToString("X2") + bufkey[1].ToString("X2") + bufkey[2].ToString("X2") + bufkey[3].ToString("X2") + bufkey[4].ToString("X2") + bufkey[5].ToString("X2");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DecryptRWD(string f_name)
|
//Get CanAddress Infos
|
||||||
|
CanAddress = "18DA" + headers2[0].ToString("X") + "F1";
|
||||||
|
|
||||||
|
//Print/Log Informations
|
||||||
|
GForm_Main_0.method_1("Firmware Start: 0x" + start.ToString("X"));
|
||||||
|
GForm_Main_0.method_1("Firmware Size: 0x" + size.ToString("X"));
|
||||||
|
GForm_Main_0.method_1("CanAddress: 0x" + CanAddress);
|
||||||
|
GForm_Main_0.method_1("Software Keys: 0x" + SoftwareKey);
|
||||||
|
GForm_Main_0.method_1("Supported Versions (and keys): ");
|
||||||
|
for (int i = 0; i < SuppportedVersions.Length; i++) GForm_Main_0.method_1(SuppportedVersions[i] + " (0x" + SuppportedFWKeys[i] + ")");
|
||||||
|
|
||||||
|
//Perform FULL decryption (convert .rwd to .bin)
|
||||||
|
if (FullDecrypt) DecryptRWD(f_name, Saving);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void DecryptRWD(string f_name, bool Saving)
|
||||||
{
|
{
|
||||||
part_number_prefix = get_part_number_prefix(f_name);
|
part_number_prefix = get_part_number_prefix(f_name);
|
||||||
firmware_candidates = decrypt(part_number_prefix);
|
firmware_candidates = decrypt(part_number_prefix);
|
||||||
|
@ -125,6 +262,24 @@ static class Class_RWD
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Remove duplicated Candidates
|
||||||
|
if (firmware_candidates.Count > 1)
|
||||||
|
{
|
||||||
|
List<byte[]> firmware_candidatesBUFFER = firmware_candidates;
|
||||||
|
firmware_candidates = new List<byte[]>();
|
||||||
|
|
||||||
|
byte[] LastCandidate = firmware_candidatesBUFFER[firmware_candidatesBUFFER.Count - 1];
|
||||||
|
for (int i = 0; i < firmware_candidatesBUFFER.Count - 1; i++)
|
||||||
|
{
|
||||||
|
byte[] CurrentCandidate = firmware_candidatesBUFFER[i];
|
||||||
|
if (CurrentCandidate != LastCandidate)
|
||||||
|
{
|
||||||
|
firmware_candidates.Add(CurrentCandidate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
firmware_candidates.Add(LastCandidate);
|
||||||
|
}
|
||||||
|
|
||||||
if (firmware_candidates.Count > 1) GForm_Main_0.method_1("multiple sets of keys resulted in data containing the part number");
|
if (firmware_candidates.Count > 1) GForm_Main_0.method_1("multiple sets of keys resulted in data containing the part number");
|
||||||
|
|
||||||
//###################################################################
|
//###################################################################
|
||||||
|
@ -182,13 +337,23 @@ static class Class_RWD
|
||||||
//###################################################################
|
//###################################################################
|
||||||
|
|
||||||
//Saving Decrypted Firmwares
|
//Saving Decrypted Firmwares
|
||||||
foreach (byte[] f_data in firmware_candidates)
|
if (Saving)
|
||||||
//foreach (byte[] f_data in firmware_good)
|
|
||||||
{
|
{
|
||||||
uint start_addr = start;
|
bool AsSavedFile = false;
|
||||||
string ThisPath = Path.GetDirectoryName(f_name) + @"\" + Path.GetFileNameWithoutExtension(f_name).Replace(".rwd", "").Replace(".RWD", "") + ".0x" + start_addr.ToString("X") + ".bin";
|
int FileCount = 1;
|
||||||
|
foreach (byte[] f_data in firmware_candidates)
|
||||||
|
{
|
||||||
|
string FileNumber = "";
|
||||||
|
if (firmware_candidates.Count > 1) FileNumber = "_" + FileCount;
|
||||||
|
string ThisPath = Path.GetDirectoryName(f_name) + @"\" + Path.GetFileNameWithoutExtension(f_name).Replace(".rwd", "").Replace(".RWD", "") + ".0x" + start.ToString("X") + FileNumber + ".bin";
|
||||||
File.Create(ThisPath).Dispose();
|
File.Create(ThisPath).Dispose();
|
||||||
File.WriteAllBytes(ThisPath, f_data); //-> f_data[start_addr:]
|
File.WriteAllBytes(ThisPath, f_data); //-> f_data[start_addr:]
|
||||||
|
GForm_Main_0.method_1("Saved decrypted firmware file: " + ThisPath);
|
||||||
|
AsSavedFile = true;
|
||||||
|
FileCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AsSavedFile) GForm_Main_0.method_1("Note: The decrypted firmware file (.bin), is not a complete .bin file! It cannot be used to perform a 'Flash Rom' to the ECU, the bootloader section from 0x0000 to 0x" + start.ToString("X") + " of the rom is Missing.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,6 +568,21 @@ static class Class_RWD
|
||||||
return BufferedContent;
|
return BufferedContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void MakeEncoderArray()
|
||||||
|
{
|
||||||
|
EncodersBytes = new byte[256];
|
||||||
|
if (DecodersBytes.Length != EncodersBytes.Length)
|
||||||
|
{
|
||||||
|
GForm_Main_0.method_1("Something went wrong getting Encoders bytes!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < EncodersBytes.Length; i++)
|
||||||
|
{
|
||||||
|
EncodersBytes[DecodersBytes[i]] = (byte) i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static List<byte[]> decrypt(string search_value)
|
private static List<byte[]> decrypt(string search_value)
|
||||||
{
|
{
|
||||||
|
@ -415,13 +595,14 @@ static class Class_RWD
|
||||||
search_value_padded += ThisChar + ".";
|
search_value_padded += ThisChar + ".";
|
||||||
}
|
}
|
||||||
GForm_Main_0.method_1("Searching:");
|
GForm_Main_0.method_1("Searching:");
|
||||||
GForm_Main_0.method_1(search_value);
|
//GForm_Main_0.method_1(search_value);
|
||||||
GForm_Main_0.method_1(search_value_padded);
|
//GForm_Main_0.method_1(search_value_padded);
|
||||||
|
|
||||||
|
string search_exact = search_value.ToUpper();
|
||||||
|
string search_padded = search_value_padded.ToUpper();
|
||||||
|
GForm_Main_0.method_1(search_exact);
|
||||||
|
GForm_Main_0.method_1(search_padded);
|
||||||
|
|
||||||
string search_exact = search_value;
|
|
||||||
string search_padded = search_value_padded;
|
|
||||||
//string search_exact = re.compile(".*" + search_value + ".*", flags = re.IGNORECASE | re.MULTILINE | re.DOTALL); //###############################
|
|
||||||
//string search_padded = re.compile(".*" + search_value_padded + ".*", flags = re.IGNORECASE | re.MULTILINE | re.DOTALL); //###############################
|
|
||||||
string[] operators = new string[8] {
|
string[] operators = new string[8] {
|
||||||
"fn:^", //XOR
|
"fn:^", //XOR
|
||||||
"fn:&", //AND
|
"fn:&", //AND
|
||||||
|
@ -439,7 +620,13 @@ static class Class_RWD
|
||||||
string k = _keys[i].ToString("x2");
|
string k = _keys[i].ToString("x2");
|
||||||
keys.Add(String.Format("val:" + k + ",sym:" + "k{0}", i));
|
keys.Add(String.Format("val:" + k + ",sym:" + "k{0}", i));
|
||||||
}
|
}
|
||||||
//assert len(keys) == 3, "excatly three keys currently required!";
|
|
||||||
|
if (keys.Count != 3)
|
||||||
|
{
|
||||||
|
GForm_Main_0.method_1("excatly three keys currently required, cannot perform decryption!");
|
||||||
|
return new List<byte[]> { };
|
||||||
|
//return null;
|
||||||
|
}
|
||||||
|
|
||||||
List<byte[]> firmware_candidates_0 = new List<byte[]> { };
|
List<byte[]> firmware_candidates_0 = new List<byte[]> { };
|
||||||
|
|
||||||
|
@ -495,6 +682,7 @@ static class Class_RWD
|
||||||
DoneCount++;
|
DoneCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Get operators values
|
//Get operators values
|
||||||
foreach (string LineOP in op_perms)
|
foreach (string LineOP in op_perms)
|
||||||
{
|
{
|
||||||
|
@ -514,20 +702,22 @@ static class Class_RWD
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Perform decoding of bytes and search for ECU name string
|
||||||
int Percent = (CurrentDone * 100) / (key_perms.Length * op_perms.Length);
|
int Percent = (CurrentDone * 100) / (key_perms.Length * op_perms.Length);
|
||||||
GForm_Main_0.method_4(Percent);
|
GForm_Main_0.method_4(Percent);
|
||||||
CurrentDone++;
|
CurrentDone++;
|
||||||
|
|
||||||
byte[] decoder = _get_decoder(k1, k2, k3, o1, o2, o3);
|
DecodersBytes = _get_decoder(k1, k2, k3, o1, o2, o3);
|
||||||
if (decoder != null && !attempted_decoders.Contains(decoder))
|
//MakeEncoderArray();
|
||||||
|
if (DecodersBytes != null && !attempted_decoders.Contains(DecodersBytes))
|
||||||
{
|
{
|
||||||
attempted_decoders.Add(decoder);
|
attempted_decoders.Add(DecodersBytes);
|
||||||
|
|
||||||
byte[] candidate = new byte[_firmware_encrypted.Length];
|
byte[] candidate = new byte[_firmware_encrypted.Length];
|
||||||
char[] decryptedCharArr = new char[_firmware_encrypted.Length];
|
char[] decryptedCharArr = new char[_firmware_encrypted.Length];
|
||||||
for (int i2 = 0; i2 < _firmware_encrypted.Length; i2++)
|
for (int i2 = 0; i2 < _firmware_encrypted.Length; i2++)
|
||||||
{
|
{
|
||||||
byte ThisByte = decoder[_firmware_encrypted[i2]];
|
byte ThisByte = DecodersBytes[_firmware_encrypted[i2]];
|
||||||
candidate[i2] = ThisByte;
|
candidate[i2] = ThisByte;
|
||||||
decryptedCharArr[i2] = (char) ThisByte;
|
decryptedCharArr[i2] = (char) ThisByte;
|
||||||
}
|
}
|
||||||
|
@ -535,6 +725,7 @@ static class Class_RWD
|
||||||
|
|
||||||
if ((decrypted.Contains(search_exact) || decrypted.Contains(search_padded)) && !firmware_candidates_0.Contains(candidate))
|
if ((decrypted.Contains(search_exact) || decrypted.Contains(search_padded)) && !firmware_candidates_0.Contains(candidate))
|
||||||
{
|
{
|
||||||
|
MakeEncoderArray();
|
||||||
GForm_Main_0.method_Log("X");
|
GForm_Main_0.method_Log("X");
|
||||||
firmware_candidates_0.Add(candidate);
|
firmware_candidates_0.Add(candidate);
|
||||||
display_ciphers.Add(string.Format("(((i {0} {1}) {2} {3}) {4} {5}) & 0xFF",
|
display_ciphers.Add(string.Format("(((i {0} {1}) {2} {3}) {4} {5}) & 0xFF",
|
||||||
|
@ -551,6 +742,8 @@ static class Class_RWD
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GForm_Main_0.ResetProgressBar();
|
||||||
|
|
||||||
GForm_Main_0.method_1(Environment.NewLine);
|
GForm_Main_0.method_1(Environment.NewLine);
|
||||||
foreach (string cipher in display_ciphers) {
|
foreach (string cipher in display_ciphers) {
|
||||||
GForm_Main_0.method_1(String.Format("cipher: {0}", cipher));
|
GForm_Main_0.method_1(String.Format("cipher: {0}", cipher));
|
||||||
|
|
|
@ -62,6 +62,9 @@
|
||||||
<Compile Include="Class_ECUS.cs" />
|
<Compile Include="Class_ECUS.cs" />
|
||||||
<Compile Include="Class_Cypher.cs" />
|
<Compile Include="Class_Cypher.cs" />
|
||||||
<Compile Include="Class_RWD.cs" />
|
<Compile Include="Class_RWD.cs" />
|
||||||
|
<Compile Include="GForm_ConvertBIN.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="GForm_Main.cs">
|
<Compile Include="GForm_Main.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -73,6 +76,9 @@
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Class_Startup.cs" />
|
<Compile Include="Class_Startup.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<EmbeddedResource Include="GForm_ConvertBIN.resx">
|
||||||
|
<DependentUpon>GForm_ConvertBIN.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="GForm_Main.resx">
|
<EmbeddedResource Include="GForm_Main.resx">
|
||||||
<DependentUpon>GForm_Main.cs</DependentUpon>
|
<DependentUpon>GForm_Main.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
|
@ -0,0 +1,194 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using DarkUI.Controls;
|
||||||
|
using DarkUI.Forms;
|
||||||
|
|
||||||
|
|
||||||
|
public class GForm_ConvertBIN : DarkForm
|
||||||
|
{
|
||||||
|
|
||||||
|
public GForm_ConvertBIN()
|
||||||
|
{
|
||||||
|
this.InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string FileBIN { get; set; }
|
||||||
|
public string FileRWD { get; set; }
|
||||||
|
|
||||||
|
private void method_0(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.FileBIN = this.textBox_bin.Text;
|
||||||
|
this.FileRWD = this.textBox_rwd.Text;
|
||||||
|
base.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void method_1(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void method_2(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
base.DialogResult = DialogResult.Abort;
|
||||||
|
base.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && this.icontainer_0 != null)
|
||||||
|
{
|
||||||
|
this.icontainer_0.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.darkButton_0 = new DarkUI.Controls.DarkButton();
|
||||||
|
this.darkButton_1 = new DarkUI.Controls.DarkButton();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.textBox_bin = new System.Windows.Forms.TextBox();
|
||||||
|
this.textBox_rwd = new System.Windows.Forms.TextBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// darkButton_0
|
||||||
|
//
|
||||||
|
this.darkButton_0.Checked = false;
|
||||||
|
this.darkButton_0.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||||
|
this.darkButton_0.Location = new System.Drawing.Point(257, 154);
|
||||||
|
this.darkButton_0.Name = "darkButton_0";
|
||||||
|
this.darkButton_0.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.darkButton_0.TabIndex = 4;
|
||||||
|
this.darkButton_0.Text = "Accept";
|
||||||
|
this.darkButton_0.Click += new System.EventHandler(this.method_0);
|
||||||
|
//
|
||||||
|
// darkButton_1
|
||||||
|
//
|
||||||
|
this.darkButton_1.Checked = false;
|
||||||
|
this.darkButton_1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.darkButton_1.Location = new System.Drawing.Point(12, 154);
|
||||||
|
this.darkButton_1.Name = "darkButton_1";
|
||||||
|
this.darkButton_1.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.darkButton_1.TabIndex = 5;
|
||||||
|
this.darkButton_1.Text = "Cancel";
|
||||||
|
this.darkButton_1.Click += new System.EventHandler(this.method_2);
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.ForeColor = System.Drawing.SystemColors.ControlLight;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 61);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(168, 13);
|
||||||
|
this.label1.TabIndex = 6;
|
||||||
|
this.label1.Text = "Select decrypted firmware .bin file:";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.ForeColor = System.Drawing.SystemColors.ControlLight;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 106);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(171, 13);
|
||||||
|
this.label2.TabIndex = 7;
|
||||||
|
this.label2.Text = "Select encrypted firmware .rwd file:";
|
||||||
|
//
|
||||||
|
// textBox_bin
|
||||||
|
//
|
||||||
|
this.textBox_bin.Location = new System.Drawing.Point(12, 79);
|
||||||
|
this.textBox_bin.Name = "textBox_bin";
|
||||||
|
this.textBox_bin.Size = new System.Drawing.Size(320, 20);
|
||||||
|
this.textBox_bin.TabIndex = 8;
|
||||||
|
this.textBox_bin.DoubleClick += new System.EventHandler(this.textBox_bin_DoubleClick);
|
||||||
|
//
|
||||||
|
// textBox_rwd
|
||||||
|
//
|
||||||
|
this.textBox_rwd.Location = new System.Drawing.Point(12, 124);
|
||||||
|
this.textBox_rwd.Name = "textBox_rwd";
|
||||||
|
this.textBox_rwd.Size = new System.Drawing.Size(320, 20);
|
||||||
|
this.textBox_rwd.TabIndex = 9;
|
||||||
|
this.textBox_rwd.DoubleClick += new System.EventHandler(this.textBox_rwd_DoubleClick);
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.ForeColor = System.Drawing.SystemColors.ControlLight;
|
||||||
|
this.label3.Location = new System.Drawing.Point(11, 10);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(324, 39);
|
||||||
|
this.label3.TabIndex = 10;
|
||||||
|
this.label3.Text = "To create a firmware .rwd file from a decrypted .bin, you must select\r\nthe .rwd f" +
|
||||||
|
"irmware from which it has been decrypted from in\r\norder to use the same encrypti" +
|
||||||
|
"on method";
|
||||||
|
this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||||
|
//
|
||||||
|
// openFileDialog1
|
||||||
|
//
|
||||||
|
this.openFileDialog1.Title = "Select File";
|
||||||
|
//
|
||||||
|
// GForm_ConvertBIN
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(344, 187);
|
||||||
|
this.ControlBox = false;
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.textBox_rwd);
|
||||||
|
this.Controls.Add(this.textBox_bin);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Controls.Add(this.darkButton_1);
|
||||||
|
this.Controls.Add(this.darkButton_0);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "GForm_ConvertBIN";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "Convert .bin to .rwd";
|
||||||
|
this.Load += new System.EventHandler(this.method_1);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[CompilerGenerated]
|
||||||
|
private IContainer icontainer_0;
|
||||||
|
private DarkButton darkButton_0;
|
||||||
|
private Label label1;
|
||||||
|
private Label label2;
|
||||||
|
private TextBox textBox_bin;
|
||||||
|
private TextBox textBox_rwd;
|
||||||
|
private Label label3;
|
||||||
|
private OpenFileDialog openFileDialog1;
|
||||||
|
private DarkButton darkButton_1;
|
||||||
|
|
||||||
|
private void textBox_bin_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.openFileDialog1.Filter = "Honda decompressed firmware binary|*.bin";
|
||||||
|
this.openFileDialog1.DefaultExt = "*.bin";
|
||||||
|
|
||||||
|
DialogResult result = this.openFileDialog1.ShowDialog();
|
||||||
|
if (result == DialogResult.OK)
|
||||||
|
{
|
||||||
|
this.textBox_bin.Text = this.openFileDialog1.FileName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void textBox_rwd_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.openFileDialog1.Filter = "Honda compressed firmware file|*.rwd;*.gz";
|
||||||
|
this.openFileDialog1.DefaultExt = "*.gz";
|
||||||
|
|
||||||
|
DialogResult result = this.openFileDialog1.ShowDialog();
|
||||||
|
if (result == DialogResult.OK)
|
||||||
|
{
|
||||||
|
this.textBox_rwd.Text = this.openFileDialog1.FileName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
234
GForm_Main.cs
234
GForm_Main.cs
|
@ -22,9 +22,9 @@ public class GForm_Main : DarkForm
|
||||||
private OpenFileDialog openFileDialog1;
|
private OpenFileDialog openFileDialog1;
|
||||||
byte Unlocking_Mode = 0x41;
|
byte Unlocking_Mode = 0x41;
|
||||||
bool WritingBinaryMode = true; //if false we are in writing firmware mode
|
bool WritingBinaryMode = true; //if false we are in writing firmware mode
|
||||||
private DarkButton darkButton3;
|
private DarkButton darkButton_FlashFW;
|
||||||
GForm_Main GForm_Main_0;
|
GForm_Main GForm_Main_0;
|
||||||
UInt16 block_size = 0;
|
private DarkButton darkButton3;
|
||||||
|
|
||||||
public GForm_Main()
|
public GForm_Main()
|
||||||
{
|
{
|
||||||
|
@ -113,7 +113,8 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton_DownloadROM.Enabled = false;
|
this.darkButton_DownloadROM.Enabled = false;
|
||||||
this.darkButton_Unlock41.Enabled = false;
|
this.darkButton_Unlock41.Enabled = false;
|
||||||
this.darkButton_Unlock01.Enabled = false;
|
this.darkButton_Unlock01.Enabled = false;
|
||||||
this.darkButton_5.Enabled = false;
|
this.darkButton_FlashRom.Enabled = false;
|
||||||
|
this.darkButton_FlashFW.Enabled = false;
|
||||||
|
|
||||||
using (API api = APIFactory.GetAPI(GForm_Main.string_0))
|
using (API api = APIFactory.GetAPI(GForm_Main.string_0))
|
||||||
{
|
{
|
||||||
|
@ -236,6 +237,13 @@ public class GForm_Main : DarkForm
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ResetProgressBar()
|
||||||
|
{
|
||||||
|
this.darkProgressBar_0.Value = 0;
|
||||||
|
this.darkLabel_7.Text = "Status";
|
||||||
|
Application.DoEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void method_6(object sender, ProgressChangedEventArgs e)
|
private void method_6(object sender, ProgressChangedEventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -273,7 +281,8 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton_DownloadROM.Enabled = false;
|
this.darkButton_DownloadROM.Enabled = false;
|
||||||
this.darkButton_Unlock41.Enabled = false;
|
this.darkButton_Unlock41.Enabled = false;
|
||||||
this.darkButton_Unlock01.Enabled = false;
|
this.darkButton_Unlock01.Enabled = false;
|
||||||
this.darkButton_5.Enabled = false;
|
this.darkButton_FlashRom.Enabled = false;
|
||||||
|
this.darkButton_FlashFW.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void darkButton2_Click(object sender, EventArgs e)
|
private void darkButton2_Click(object sender, EventArgs e)
|
||||||
|
@ -473,15 +482,26 @@ public class GForm_Main : DarkForm
|
||||||
{
|
{
|
||||||
this.method_1("Security Authorized: ECU Unlocked" + Environment.NewLine);
|
this.method_1("Security Authorized: ECU Unlocked" + Environment.NewLine);
|
||||||
ECU_Unlocked = true;
|
ECU_Unlocked = true;
|
||||||
|
if (!TwoBytesMode)
|
||||||
|
{
|
||||||
|
//Unlock ALL buttons (Read&Writes) for 0x27,0x41 Unlock
|
||||||
this.darkButton_DownloadROM.Enabled = true;
|
this.darkButton_DownloadROM.Enabled = true;
|
||||||
this.darkButton_5.Enabled = true;
|
this.darkButton_FlashRom.Enabled = true;
|
||||||
|
this.darkButton_FlashFW.Enabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Unlock FlashFW button (Write FW ONLY) for 0x27,0x01 Unlock
|
||||||
|
this.darkButton_FlashFW.Enabled = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.method_1("Recv:" + GForm_Main.smethod_1(Received) + Environment.NewLine);
|
this.method_1("Recv:" + GForm_Main.smethod_1(Received) + Environment.NewLine);
|
||||||
ECU_Unlocked = false;
|
ECU_Unlocked = false;
|
||||||
this.darkButton_DownloadROM.Enabled = false;
|
this.darkButton_DownloadROM.Enabled = false;
|
||||||
this.darkButton_5.Enabled = false;
|
this.darkButton_FlashRom.Enabled = false;
|
||||||
|
this.darkButton_FlashFW.Enabled = false;
|
||||||
MessageBox.Show("Failed to Unlock ECU, Check Log");
|
MessageBox.Show("Failed to Unlock ECU, Check Log");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1024,7 +1044,7 @@ public class GForm_Main : DarkForm
|
||||||
WritingBinaryMode = false;
|
WritingBinaryMode = false;
|
||||||
|
|
||||||
//Decrypt firmware file and get needed variable (Decryption byte)
|
//Decrypt firmware file and get needed variable (Decryption byte)
|
||||||
Class_RWD.LoadRWD(openFileDialog1.FileName, false);
|
Class_RWD.LoadRWD(openFileDialog1.FileName, false, false);
|
||||||
|
|
||||||
//###############################
|
//###############################
|
||||||
//Get Checksum and Fix it
|
//Get Checksum and Fix it
|
||||||
|
@ -1465,28 +1485,29 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton_DownloadROM = new DarkUI.Controls.DarkButton();
|
this.darkButton_DownloadROM = new DarkUI.Controls.DarkButton();
|
||||||
this.darkButton_0 = new DarkUI.Controls.DarkButton();
|
this.darkButton_0 = new DarkUI.Controls.DarkButton();
|
||||||
this.darkGroupBox_0 = new DarkUI.Controls.DarkGroupBox();
|
this.darkGroupBox_0 = new DarkUI.Controls.DarkGroupBox();
|
||||||
|
this.darkButton3 = new DarkUI.Controls.DarkButton();
|
||||||
|
this.darkButton_FlashFW = new DarkUI.Controls.DarkButton();
|
||||||
this.darkButton2 = new DarkUI.Controls.DarkButton();
|
this.darkButton2 = new DarkUI.Controls.DarkButton();
|
||||||
this.darkButton_Unlock01 = new DarkUI.Controls.DarkButton();
|
this.darkButton_Unlock01 = new DarkUI.Controls.DarkButton();
|
||||||
|
this.darkTextBox_4 = new DarkUI.Controls.DarkTextBox();
|
||||||
this.darkButton_Unlock41 = new DarkUI.Controls.DarkButton();
|
this.darkButton_Unlock41 = new DarkUI.Controls.DarkButton();
|
||||||
|
this.darkTextBox_3 = new DarkUI.Controls.DarkTextBox();
|
||||||
this.darkButton1 = new DarkUI.Controls.DarkButton();
|
this.darkButton1 = new DarkUI.Controls.DarkButton();
|
||||||
this.darkButton_6 = new DarkUI.Controls.DarkButton();
|
this.darkButton_6 = new DarkUI.Controls.DarkButton();
|
||||||
this.darkButton_5 = new DarkUI.Controls.DarkButton();
|
this.darkButton_FlashRom = new DarkUI.Controls.DarkButton();
|
||||||
|
this.darkLabel_3 = new DarkUI.Controls.DarkLabel();
|
||||||
this.darkButton_4 = new DarkUI.Controls.DarkButton();
|
this.darkButton_4 = new DarkUI.Controls.DarkButton();
|
||||||
|
this.darkLabel_2 = new DarkUI.Controls.DarkLabel();
|
||||||
this.darkLabel_0 = new DarkUI.Controls.DarkLabel();
|
this.darkLabel_0 = new DarkUI.Controls.DarkLabel();
|
||||||
this.darkLabel_1 = new DarkUI.Controls.DarkLabel();
|
this.darkLabel_1 = new DarkUI.Controls.DarkLabel();
|
||||||
this.darkLabel_2 = new DarkUI.Controls.DarkLabel();
|
|
||||||
this.darkLabel_3 = new DarkUI.Controls.DarkLabel();
|
|
||||||
this.darkLabel_4 = new DarkUI.Controls.DarkLabel();
|
this.darkLabel_4 = new DarkUI.Controls.DarkLabel();
|
||||||
this.darkLabel_5 = new DarkUI.Controls.DarkLabel();
|
this.darkLabel_5 = new DarkUI.Controls.DarkLabel();
|
||||||
this.darkTextBox_1 = new DarkUI.Controls.DarkTextBox();
|
this.darkTextBox_1 = new DarkUI.Controls.DarkTextBox();
|
||||||
this.darkTextBox_2 = new DarkUI.Controls.DarkTextBox();
|
this.darkTextBox_2 = new DarkUI.Controls.DarkTextBox();
|
||||||
this.darkTextBox_3 = new DarkUI.Controls.DarkTextBox();
|
|
||||||
this.darkTextBox_4 = new DarkUI.Controls.DarkTextBox();
|
|
||||||
this.darkProgressBar_0 = new DarkUI.Controls.DarkProgressBar();
|
this.darkProgressBar_0 = new DarkUI.Controls.DarkProgressBar();
|
||||||
this.darkLabel_7 = new DarkUI.Controls.DarkLabel();
|
this.darkLabel_7 = new DarkUI.Controls.DarkLabel();
|
||||||
this.darkLabel_8 = new DarkUI.Controls.DarkLabel();
|
this.darkLabel_8 = new DarkUI.Controls.DarkLabel();
|
||||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.darkButton3 = new DarkUI.Controls.DarkButton();
|
|
||||||
this.darkGroupBox_0.SuspendLayout();
|
this.darkGroupBox_0.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -1535,7 +1556,7 @@ public class GForm_Main : DarkForm
|
||||||
//
|
//
|
||||||
this.darkButton_0.Checked = false;
|
this.darkButton_0.Checked = false;
|
||||||
this.darkButton_0.Enabled = false;
|
this.darkButton_0.Enabled = false;
|
||||||
this.darkButton_0.Location = new System.Drawing.Point(6, 309);
|
this.darkButton_0.Location = new System.Drawing.Point(6, 338);
|
||||||
this.darkButton_0.Name = "darkButton_0";
|
this.darkButton_0.Name = "darkButton_0";
|
||||||
this.darkButton_0.Size = new System.Drawing.Size(192, 23);
|
this.darkButton_0.Size = new System.Drawing.Size(192, 23);
|
||||||
this.darkButton_0.TabIndex = 50;
|
this.darkButton_0.TabIndex = 50;
|
||||||
|
@ -1547,6 +1568,7 @@ public class GForm_Main : DarkForm
|
||||||
//
|
//
|
||||||
this.darkGroupBox_0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
|
this.darkGroupBox_0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton3);
|
this.darkGroupBox_0.Controls.Add(this.darkButton3);
|
||||||
|
this.darkGroupBox_0.Controls.Add(this.darkButton_FlashFW);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton2);
|
this.darkGroupBox_0.Controls.Add(this.darkButton2);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton_Unlock01);
|
this.darkGroupBox_0.Controls.Add(this.darkButton_Unlock01);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkTextBox_4);
|
this.darkGroupBox_0.Controls.Add(this.darkTextBox_4);
|
||||||
|
@ -1554,7 +1576,7 @@ public class GForm_Main : DarkForm
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkTextBox_3);
|
this.darkGroupBox_0.Controls.Add(this.darkTextBox_3);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton1);
|
this.darkGroupBox_0.Controls.Add(this.darkButton1);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton_6);
|
this.darkGroupBox_0.Controls.Add(this.darkButton_6);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton_5);
|
this.darkGroupBox_0.Controls.Add(this.darkButton_FlashRom);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkLabel_3);
|
this.darkGroupBox_0.Controls.Add(this.darkLabel_3);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton_4);
|
this.darkGroupBox_0.Controls.Add(this.darkButton_4);
|
||||||
this.darkGroupBox_0.Controls.Add(this.darkButton_0);
|
this.darkGroupBox_0.Controls.Add(this.darkButton_0);
|
||||||
|
@ -1569,6 +1591,27 @@ public class GForm_Main : DarkForm
|
||||||
this.darkGroupBox_0.TabStop = false;
|
this.darkGroupBox_0.TabStop = false;
|
||||||
this.darkGroupBox_0.Text = "J2534 Controls";
|
this.darkGroupBox_0.Text = "J2534 Controls";
|
||||||
//
|
//
|
||||||
|
// darkButton3
|
||||||
|
//
|
||||||
|
this.darkButton3.Checked = false;
|
||||||
|
this.darkButton3.Location = new System.Drawing.Point(6, 309);
|
||||||
|
this.darkButton3.Name = "darkButton3";
|
||||||
|
this.darkButton3.Size = new System.Drawing.Size(192, 23);
|
||||||
|
this.darkButton3.TabIndex = 67;
|
||||||
|
this.darkButton3.Text = "Convert Firmware .bin to .rwd";
|
||||||
|
this.darkButton3.Click += new System.EventHandler(this.darkButton3_Click_1);
|
||||||
|
//
|
||||||
|
// darkButton_FlashFW
|
||||||
|
//
|
||||||
|
this.darkButton_FlashFW.Checked = false;
|
||||||
|
this.darkButton_FlashFW.Enabled = false;
|
||||||
|
this.darkButton_FlashFW.Location = new System.Drawing.Point(6, 251);
|
||||||
|
this.darkButton_FlashFW.Name = "darkButton_FlashFW";
|
||||||
|
this.darkButton_FlashFW.Size = new System.Drawing.Size(192, 23);
|
||||||
|
this.darkButton_FlashFW.TabIndex = 60;
|
||||||
|
this.darkButton_FlashFW.Text = "Flash Firmware (.rwd)";
|
||||||
|
this.darkButton_FlashFW.Click += new System.EventHandler(this.darkButton3_Click);
|
||||||
|
//
|
||||||
// darkButton2
|
// darkButton2
|
||||||
//
|
//
|
||||||
this.darkButton2.Checked = false;
|
this.darkButton2.Checked = false;
|
||||||
|
@ -1576,7 +1619,7 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton2.Name = "darkButton2";
|
this.darkButton2.Name = "darkButton2";
|
||||||
this.darkButton2.Size = new System.Drawing.Size(192, 23);
|
this.darkButton2.Size = new System.Drawing.Size(192, 23);
|
||||||
this.darkButton2.TabIndex = 59;
|
this.darkButton2.TabIndex = 59;
|
||||||
this.darkButton2.Text = "Convert .rwd to .bin";
|
this.darkButton2.Text = "Convert Firmware .rwd to .bin";
|
||||||
this.darkButton2.Click += new System.EventHandler(this.darkButton2_Click_1);
|
this.darkButton2.Click += new System.EventHandler(this.darkButton2_Click_1);
|
||||||
//
|
//
|
||||||
// darkButton_Unlock01
|
// darkButton_Unlock01
|
||||||
|
@ -1590,6 +1633,14 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton_Unlock01.Text = "UNLOCK ECU (0x27,0x01)";
|
this.darkButton_Unlock01.Text = "UNLOCK ECU (0x27,0x01)";
|
||||||
this.darkButton_Unlock01.Click += new System.EventHandler(this.darkButton_Unlock01_Click);
|
this.darkButton_Unlock01.Click += new System.EventHandler(this.darkButton_Unlock01_Click);
|
||||||
//
|
//
|
||||||
|
// darkTextBox_4
|
||||||
|
//
|
||||||
|
this.darkTextBox_4.Location = new System.Drawing.Point(85, 474);
|
||||||
|
this.darkTextBox_4.Name = "darkTextBox_4";
|
||||||
|
this.darkTextBox_4.Size = new System.Drawing.Size(113, 20);
|
||||||
|
this.darkTextBox_4.TabIndex = 66;
|
||||||
|
this.darkTextBox_4.Visible = false;
|
||||||
|
//
|
||||||
// darkButton_Unlock41
|
// darkButton_Unlock41
|
||||||
//
|
//
|
||||||
this.darkButton_Unlock41.Checked = false;
|
this.darkButton_Unlock41.Checked = false;
|
||||||
|
@ -1601,6 +1652,14 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton_Unlock41.Text = "UNLOCK ECU (0x27,0x41)";
|
this.darkButton_Unlock41.Text = "UNLOCK ECU (0x27,0x41)";
|
||||||
this.darkButton_Unlock41.Click += new System.EventHandler(this.darkButton2_Click);
|
this.darkButton_Unlock41.Click += new System.EventHandler(this.darkButton2_Click);
|
||||||
//
|
//
|
||||||
|
// darkTextBox_3
|
||||||
|
//
|
||||||
|
this.darkTextBox_3.Location = new System.Drawing.Point(85, 450);
|
||||||
|
this.darkTextBox_3.Name = "darkTextBox_3";
|
||||||
|
this.darkTextBox_3.Size = new System.Drawing.Size(113, 20);
|
||||||
|
this.darkTextBox_3.TabIndex = 65;
|
||||||
|
this.darkTextBox_3.Visible = false;
|
||||||
|
//
|
||||||
// darkButton1
|
// darkButton1
|
||||||
//
|
//
|
||||||
this.darkButton1.Checked = false;
|
this.darkButton1.Checked = false;
|
||||||
|
@ -1622,22 +1681,33 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton_6.Text = "Select ECU";
|
this.darkButton_6.Text = "Select ECU";
|
||||||
this.darkButton_6.Click += new System.EventHandler(this.method_20);
|
this.darkButton_6.Click += new System.EventHandler(this.method_20);
|
||||||
//
|
//
|
||||||
// darkButton_5
|
// darkButton_FlashRom
|
||||||
//
|
//
|
||||||
this.darkButton_5.Checked = false;
|
this.darkButton_FlashRom.Checked = false;
|
||||||
this.darkButton_5.Enabled = false;
|
this.darkButton_FlashRom.Enabled = false;
|
||||||
this.darkButton_5.Location = new System.Drawing.Point(6, 222);
|
this.darkButton_FlashRom.Location = new System.Drawing.Point(6, 222);
|
||||||
this.darkButton_5.Name = "darkButton_5";
|
this.darkButton_FlashRom.Name = "darkButton_FlashRom";
|
||||||
this.darkButton_5.Size = new System.Drawing.Size(192, 23);
|
this.darkButton_FlashRom.Size = new System.Drawing.Size(192, 23);
|
||||||
this.darkButton_5.TabIndex = 54;
|
this.darkButton_FlashRom.TabIndex = 54;
|
||||||
this.darkButton_5.Text = "Flash Rom (.bin)";
|
this.darkButton_FlashRom.Text = "Flash Rom (.bin)";
|
||||||
this.darkButton_5.Click += new System.EventHandler(this.method_17);
|
this.darkButton_FlashRom.Click += new System.EventHandler(this.method_17);
|
||||||
|
//
|
||||||
|
// darkLabel_3
|
||||||
|
//
|
||||||
|
this.darkLabel_3.AutoSize = true;
|
||||||
|
this.darkLabel_3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
|
this.darkLabel_3.Location = new System.Drawing.Point(24, 476);
|
||||||
|
this.darkLabel_3.Name = "darkLabel_3";
|
||||||
|
this.darkLabel_3.Size = new System.Drawing.Size(56, 13);
|
||||||
|
this.darkLabel_3.TabIndex = 60;
|
||||||
|
this.darkLabel_3.Text = "Read Size";
|
||||||
|
this.darkLabel_3.Visible = false;
|
||||||
//
|
//
|
||||||
// darkButton_4
|
// darkButton_4
|
||||||
//
|
//
|
||||||
this.darkButton_4.Checked = false;
|
this.darkButton_4.Checked = false;
|
||||||
this.darkButton_4.Enabled = false;
|
this.darkButton_4.Enabled = false;
|
||||||
this.darkButton_4.Location = new System.Drawing.Point(6, 338);
|
this.darkButton_4.Location = new System.Drawing.Point(6, 367);
|
||||||
this.darkButton_4.Name = "darkButton_4";
|
this.darkButton_4.Name = "darkButton_4";
|
||||||
this.darkButton_4.Size = new System.Drawing.Size(192, 23);
|
this.darkButton_4.Size = new System.Drawing.Size(192, 23);
|
||||||
this.darkButton_4.TabIndex = 51;
|
this.darkButton_4.TabIndex = 51;
|
||||||
|
@ -1645,26 +1715,6 @@ public class GForm_Main : DarkForm
|
||||||
this.darkButton_4.Visible = false;
|
this.darkButton_4.Visible = false;
|
||||||
this.darkButton_4.Click += new System.EventHandler(this.method_16);
|
this.darkButton_4.Click += new System.EventHandler(this.method_16);
|
||||||
//
|
//
|
||||||
// darkLabel_0
|
|
||||||
//
|
|
||||||
this.darkLabel_0.AutoSize = true;
|
|
||||||
this.darkLabel_0.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
|
||||||
this.darkLabel_0.Location = new System.Drawing.Point(228, 14);
|
|
||||||
this.darkLabel_0.Name = "darkLabel_0";
|
|
||||||
this.darkLabel_0.Size = new System.Drawing.Size(62, 13);
|
|
||||||
this.darkLabel_0.TabIndex = 57;
|
|
||||||
this.darkLabel_0.Text = "Vin Number";
|
|
||||||
//
|
|
||||||
// darkLabel_1
|
|
||||||
//
|
|
||||||
this.darkLabel_1.AutoSize = true;
|
|
||||||
this.darkLabel_1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
|
||||||
this.darkLabel_1.Location = new System.Drawing.Point(228, 40);
|
|
||||||
this.darkLabel_1.Name = "darkLabel_1";
|
|
||||||
this.darkLabel_1.Size = new System.Drawing.Size(70, 13);
|
|
||||||
this.darkLabel_1.TabIndex = 58;
|
|
||||||
this.darkLabel_1.Text = "Calibration ID";
|
|
||||||
//
|
|
||||||
// darkLabel_2
|
// darkLabel_2
|
||||||
//
|
//
|
||||||
this.darkLabel_2.AutoSize = true;
|
this.darkLabel_2.AutoSize = true;
|
||||||
|
@ -1676,16 +1726,25 @@ public class GForm_Main : DarkForm
|
||||||
this.darkLabel_2.Text = "Read address";
|
this.darkLabel_2.Text = "Read address";
|
||||||
this.darkLabel_2.Visible = false;
|
this.darkLabel_2.Visible = false;
|
||||||
//
|
//
|
||||||
// darkLabel_3
|
// darkLabel_0
|
||||||
//
|
//
|
||||||
this.darkLabel_3.AutoSize = true;
|
this.darkLabel_0.AutoSize = true;
|
||||||
this.darkLabel_3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
this.darkLabel_0.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
this.darkLabel_3.Location = new System.Drawing.Point(24, 476);
|
this.darkLabel_0.Location = new System.Drawing.Point(218, 14);
|
||||||
this.darkLabel_3.Name = "darkLabel_3";
|
this.darkLabel_0.Name = "darkLabel_0";
|
||||||
this.darkLabel_3.Size = new System.Drawing.Size(56, 13);
|
this.darkLabel_0.Size = new System.Drawing.Size(62, 13);
|
||||||
this.darkLabel_3.TabIndex = 60;
|
this.darkLabel_0.TabIndex = 57;
|
||||||
this.darkLabel_3.Text = "Read Size";
|
this.darkLabel_0.Text = "Vin Number";
|
||||||
this.darkLabel_3.Visible = false;
|
//
|
||||||
|
// darkLabel_1
|
||||||
|
//
|
||||||
|
this.darkLabel_1.AutoSize = true;
|
||||||
|
this.darkLabel_1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
|
this.darkLabel_1.Location = new System.Drawing.Point(218, 40);
|
||||||
|
this.darkLabel_1.Name = "darkLabel_1";
|
||||||
|
this.darkLabel_1.Size = new System.Drawing.Size(70, 13);
|
||||||
|
this.darkLabel_1.TabIndex = 58;
|
||||||
|
this.darkLabel_1.Text = "Calibration ID";
|
||||||
//
|
//
|
||||||
// darkLabel_4
|
// darkLabel_4
|
||||||
//
|
//
|
||||||
|
@ -1703,43 +1762,27 @@ public class GForm_Main : DarkForm
|
||||||
this.darkLabel_5.AutoSize = true;
|
this.darkLabel_5.AutoSize = true;
|
||||||
this.darkLabel_5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
|
this.darkLabel_5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
|
||||||
this.darkLabel_5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
this.darkLabel_5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
this.darkLabel_5.Location = new System.Drawing.Point(214, 514);
|
this.darkLabel_5.Location = new System.Drawing.Point(12, 512);
|
||||||
this.darkLabel_5.Name = "darkLabel_5";
|
this.darkLabel_5.Name = "darkLabel_5";
|
||||||
this.darkLabel_5.Size = new System.Drawing.Size(0, 20);
|
this.darkLabel_5.Size = new System.Drawing.Size(0, 20);
|
||||||
this.darkLabel_5.TabIndex = 51;
|
this.darkLabel_5.TabIndex = 51;
|
||||||
//
|
//
|
||||||
// darkTextBox_1
|
// darkTextBox_1
|
||||||
//
|
//
|
||||||
this.darkTextBox_1.Location = new System.Drawing.Point(304, 11);
|
this.darkTextBox_1.Location = new System.Drawing.Point(294, 11);
|
||||||
this.darkTextBox_1.Name = "darkTextBox_1";
|
this.darkTextBox_1.Name = "darkTextBox_1";
|
||||||
this.darkTextBox_1.ReadOnly = true;
|
this.darkTextBox_1.ReadOnly = true;
|
||||||
this.darkTextBox_1.Size = new System.Drawing.Size(375, 20);
|
this.darkTextBox_1.Size = new System.Drawing.Size(385, 20);
|
||||||
this.darkTextBox_1.TabIndex = 63;
|
this.darkTextBox_1.TabIndex = 63;
|
||||||
//
|
//
|
||||||
// darkTextBox_2
|
// darkTextBox_2
|
||||||
//
|
//
|
||||||
this.darkTextBox_2.Location = new System.Drawing.Point(304, 37);
|
this.darkTextBox_2.Location = new System.Drawing.Point(294, 37);
|
||||||
this.darkTextBox_2.Name = "darkTextBox_2";
|
this.darkTextBox_2.Name = "darkTextBox_2";
|
||||||
this.darkTextBox_2.ReadOnly = true;
|
this.darkTextBox_2.ReadOnly = true;
|
||||||
this.darkTextBox_2.Size = new System.Drawing.Size(375, 20);
|
this.darkTextBox_2.Size = new System.Drawing.Size(385, 20);
|
||||||
this.darkTextBox_2.TabIndex = 64;
|
this.darkTextBox_2.TabIndex = 64;
|
||||||
//
|
//
|
||||||
// darkTextBox_3
|
|
||||||
//
|
|
||||||
this.darkTextBox_3.Location = new System.Drawing.Point(85, 450);
|
|
||||||
this.darkTextBox_3.Name = "darkTextBox_3";
|
|
||||||
this.darkTextBox_3.Size = new System.Drawing.Size(113, 20);
|
|
||||||
this.darkTextBox_3.TabIndex = 65;
|
|
||||||
this.darkTextBox_3.Visible = false;
|
|
||||||
//
|
|
||||||
// darkTextBox_4
|
|
||||||
//
|
|
||||||
this.darkTextBox_4.Location = new System.Drawing.Point(85, 474);
|
|
||||||
this.darkTextBox_4.Name = "darkTextBox_4";
|
|
||||||
this.darkTextBox_4.Size = new System.Drawing.Size(113, 20);
|
|
||||||
this.darkTextBox_4.TabIndex = 66;
|
|
||||||
this.darkTextBox_4.Visible = false;
|
|
||||||
//
|
|
||||||
// darkProgressBar_0
|
// darkProgressBar_0
|
||||||
//
|
//
|
||||||
this.darkProgressBar_0.Location = new System.Drawing.Point(98, 537);
|
this.darkProgressBar_0.Location = new System.Drawing.Point(98, 537);
|
||||||
|
@ -1761,7 +1804,7 @@ public class GForm_Main : DarkForm
|
||||||
//
|
//
|
||||||
this.darkLabel_8.AutoSize = true;
|
this.darkLabel_8.AutoSize = true;
|
||||||
this.darkLabel_8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
this.darkLabel_8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
this.darkLabel_8.Location = new System.Drawing.Point(220, 518);
|
this.darkLabel_8.Location = new System.Drawing.Point(228, 516);
|
||||||
this.darkLabel_8.Name = "darkLabel_8";
|
this.darkLabel_8.Name = "darkLabel_8";
|
||||||
this.darkLabel_8.Size = new System.Drawing.Size(0, 13);
|
this.darkLabel_8.Size = new System.Drawing.Size(0, 13);
|
||||||
this.darkLabel_8.TabIndex = 69;
|
this.darkLabel_8.TabIndex = 69;
|
||||||
|
@ -1769,20 +1812,9 @@ public class GForm_Main : DarkForm
|
||||||
// openFileDialog1
|
// openFileDialog1
|
||||||
//
|
//
|
||||||
this.openFileDialog1.DefaultExt = "*.gz";
|
this.openFileDialog1.DefaultExt = "*.gz";
|
||||||
this.openFileDialog1.Filter = "Honda Compressed RWD Firmware|*.gz|Honda RWD Firmware|*.rwd";
|
this.openFileDialog1.Filter = "Honda Compressed RWD Firmware|*.gz;*.rwd";
|
||||||
this.openFileDialog1.Title = "Open Honda RWD Firmware File";
|
this.openFileDialog1.Title = "Open Honda RWD Firmware File";
|
||||||
//
|
//
|
||||||
// darkButton3
|
|
||||||
//
|
|
||||||
this.darkButton3.Checked = false;
|
|
||||||
this.darkButton3.Enabled = false;
|
|
||||||
this.darkButton3.Location = new System.Drawing.Point(6, 251);
|
|
||||||
this.darkButton3.Name = "darkButton3";
|
|
||||||
this.darkButton3.Size = new System.Drawing.Size(192, 23);
|
|
||||||
this.darkButton3.TabIndex = 60;
|
|
||||||
this.darkButton3.Text = "Flash Firmware (.rwd)";
|
|
||||||
this.darkButton3.Click += new System.EventHandler(this.darkButton3_Click);
|
|
||||||
//
|
|
||||||
// GForm_Main
|
// GForm_Main
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
@ -1803,6 +1835,7 @@ public class GForm_Main : DarkForm
|
||||||
this.MinimumSize = new System.Drawing.Size(710, 573);
|
this.MinimumSize = new System.Drawing.Size(710, 573);
|
||||||
this.Name = "GForm_Main";
|
this.Name = "GForm_Main";
|
||||||
this.Text = "Honda CANBUS Tools";
|
this.Text = "Honda CANBUS Tools";
|
||||||
|
this.Load += new System.EventHandler(this.GForm_Main_Load);
|
||||||
this.darkGroupBox_0.ResumeLayout(false);
|
this.darkGroupBox_0.ResumeLayout(false);
|
||||||
this.darkGroupBox_0.PerformLayout();
|
this.darkGroupBox_0.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
@ -1991,7 +2024,7 @@ public class GForm_Main : DarkForm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private DarkButton darkButton_5;
|
private DarkButton darkButton_FlashRom;
|
||||||
|
|
||||||
|
|
||||||
private DarkButton darkButton_6;
|
private DarkButton darkButton_6;
|
||||||
|
@ -2122,7 +2155,26 @@ public class GForm_Main : DarkForm
|
||||||
DialogResult result = openFileDialog1.ShowDialog();
|
DialogResult result = openFileDialog1.ShowDialog();
|
||||||
if (result == DialogResult.OK)
|
if (result == DialogResult.OK)
|
||||||
{
|
{
|
||||||
Class_RWD.LoadRWD(openFileDialog1.FileName, true);
|
Class_RWD.LoadRWD(openFileDialog1.FileName, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void GForm_Main_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void darkButton3_Click_1(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
GForm_ConvertBIN gform = new GForm_ConvertBIN();
|
||||||
|
if (gform.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
string ThisB = gform.FileBIN;
|
||||||
|
string ThisR = gform.FileRWD;
|
||||||
|
gform.Dispose();
|
||||||
|
Class_RWD.LoadBIN(ThisB, ThisR);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.darkTextBox_0.Text = "Couldn't open file selection form";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue