v1.1.5 - checksum in definition, extract bin fpm
This commit is contained in:
parent
a0bce9eaff
commit
9f617270e5
|
@ -1173,7 +1173,7 @@ internal class ClassEditor
|
|||
for (int i = 0; i < AllLines.Length; i++)
|
||||
{
|
||||
string Thisline = AllLines[i];
|
||||
if (Thisline.Contains("ROM Parameters")) GettingEcuList = false; //make sure we are not reading false contents
|
||||
if (Thisline.Contains("ROM Parameters") || Thisline.Contains("Checksum ")) GettingEcuList = false; //make sure we are not reading false contents
|
||||
|
||||
if (Thisline[0] != '#' && Thisline != "")
|
||||
{
|
||||
|
@ -1281,7 +1281,7 @@ internal class ClassEditor
|
|||
for (int i = 0; i < AllLines.Length; i++)
|
||||
{
|
||||
string Thisline = AllLines[i];
|
||||
if (Thisline.Contains("ROM Parameters")) GettingEcuList = false; //make sure we are not reading false contents
|
||||
if (Thisline.Contains("ROM Parameters") || Thisline.Contains("Checksum ")) GettingEcuList = false; //make sure we are not reading false contents
|
||||
|
||||
if (Thisline.Contains("THIS FILE AS BEEN GENERATED")) IsFileGenerated = true;
|
||||
|
||||
|
|
|
@ -215,7 +215,7 @@ public class Class_DefinitionMaker
|
|||
{
|
||||
if (BufECUName != "") CreateFile(AllStringFile, BufECUName);
|
||||
BufECUName = AllECUS[i];
|
||||
AllStringFile = GenerateNewHeader(BufECUName, new List<string>());
|
||||
AllStringFile = GenerateNewHeader(BufECUName, new List<string>(), "0x8400");
|
||||
//Console.WriteLine(AllECUS[i] + " | 0x" + AllFoundAddress[i].ToString("X") + " | " + AllFoundFunctions[i]);
|
||||
}
|
||||
|
||||
|
@ -349,7 +349,7 @@ public class Class_DefinitionMaker
|
|||
GForm_Main_0.method_1("File saved:" + DirectoryPath + @"\" + ThisFile + ".txt");
|
||||
}
|
||||
|
||||
private string GenerateNewHeader(string ThisEECU, List<string> AllEcuCompatible)
|
||||
private string GenerateNewHeader(string ThisEECU, List<string> AllEcuCompatible, string ChecksumLocation)
|
||||
{
|
||||
string ReturnStr = "";
|
||||
ReturnStr = ReturnStr + "#######################################################################" + Environment.NewLine;
|
||||
|
@ -364,6 +364,15 @@ public class Class_DefinitionMaker
|
|||
{
|
||||
for (int i = 0; i < AllEcuCompatible.Count; i++) ReturnStr = ReturnStr + AllEcuCompatible[i] + Environment.NewLine;
|
||||
}
|
||||
//###############################
|
||||
if (ChecksumLocation != "")
|
||||
{
|
||||
ReturnStr = ReturnStr + "#######################################################################" + Environment.NewLine;
|
||||
ReturnStr = ReturnStr + "# Checksum Address Location:" + Environment.NewLine;
|
||||
ReturnStr = ReturnStr + "#######################################################################" + Environment.NewLine;
|
||||
ReturnStr = ReturnStr + "ChecksumAddress:" + ChecksumLocation + Environment.NewLine;
|
||||
}
|
||||
//###############################
|
||||
ReturnStr = ReturnStr + "#######################################################################" + Environment.NewLine;
|
||||
ReturnStr = ReturnStr + "#######################################################################" + Environment.NewLine;
|
||||
ReturnStr = ReturnStr + "#######################################################################" + Environment.NewLine;
|
||||
|
@ -530,15 +539,19 @@ public class Class_DefinitionMaker
|
|||
List<bool> AllTableReadOnly = new List<bool>();
|
||||
List<bool> AllTableUntested = new List<bool>();
|
||||
|
||||
List<string> AllIndexName = new List<string>();
|
||||
List<string> AllIndexShortName = new List<string>();
|
||||
List<string> AllIndexLocations = new List<string>();
|
||||
|
||||
string CurrentParam = "";
|
||||
//string ThisECUName = "";
|
||||
int ParamCount = 0;
|
||||
int TableCount = 0;
|
||||
List<string> AllEcuCompatible = new List<string>();
|
||||
int NumberOfEcus = 0;
|
||||
string ChecksumLocation = "";
|
||||
|
||||
//#########################################
|
||||
//FileName=RDX-RWC-A620 NumBinaries
|
||||
if (AllLines[2].Contains("NumBinaries="))
|
||||
{
|
||||
NumberOfEcus = int.Parse(AllLines[2].Split('=')[1]);
|
||||
|
@ -571,7 +584,9 @@ public class Class_DefinitionMaker
|
|||
IndexCount=53
|
||||
TableCount=49
|
||||
ChecksumAddress=0x001FFFFA
|
||||
ChecksumAddress=0x00008400*/
|
||||
ChecksumAddress=0x00008400
|
||||
ChecksumAddress=0x001FFFFA*/
|
||||
if (ChecksumLocation == "") if(AllLines[i].Contains("ChecksumAddress=")) ChecksumLocation = AllLines[i].Split('=')[1];
|
||||
if (AllLines[i].Contains("ParameterCount=")) ParamCount = int.Parse(AllLines[i].Split('=')[1]);
|
||||
if (AllLines[i].Contains("TableCount=") && !AllLines[i].Contains("DevTableCount")) TableCount = int.Parse(AllLines[i].Split('=')[1]);
|
||||
|
||||
|
@ -625,6 +640,10 @@ public class Class_DefinitionMaker
|
|||
AllParamReadOnly.RemoveAt(AllParamReadOnly.Count - 1);
|
||||
AllParamUntested.RemoveAt(AllParamUntested.Count - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
GForm_Main_0.method_1("Added parameter: " + AllParamName[AllParamName.Count - 1]);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
@ -697,10 +716,18 @@ public class Class_DefinitionMaker
|
|||
|
||||
if (IssueEncountered)
|
||||
{
|
||||
AllParamName.RemoveAt(AllParamName.Count - 1);
|
||||
AllParamLocations.RemoveAt(AllParamLocations.Count - 1);
|
||||
AllParamReadOnly.RemoveAt(AllParamReadOnly.Count - 1);
|
||||
AllParamUntested.RemoveAt(AllParamUntested.Count - 1);
|
||||
AllTableName.RemoveAt(AllTableName.Count - 1);
|
||||
AllTableLocations.RemoveAt(AllTableLocations.Count - 1);
|
||||
AllColCount.RemoveAt(AllColCount.Count - 1);
|
||||
AllRowCount.RemoveAt(AllRowCount.Count - 1);
|
||||
AllTableLocationsX.RemoveAt(AllTableLocationsX.Count - 1);
|
||||
AllTableLocationsY.RemoveAt(AllTableLocationsY.Count - 1);
|
||||
AllTableReadOnly.RemoveAt(AllTableReadOnly.Count - 1);
|
||||
AllTableUntested.RemoveAt(AllTableUntested.Count - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
GForm_Main_0.method_1("Added table: " + AllTableName[AllTableName.Count - 1]);
|
||||
}
|
||||
}
|
||||
catch
|
||||
|
@ -718,6 +745,70 @@ public class Class_DefinitionMaker
|
|||
}
|
||||
}
|
||||
}
|
||||
//########################
|
||||
if (AllLines[i].Contains("[Index"))
|
||||
{
|
||||
//AllIndexName
|
||||
//AllIndexLocations
|
||||
if (AllLines[i] != CurrentParam)
|
||||
{
|
||||
CurrentParam = AllLines[i];
|
||||
|
||||
bool DoneThisParameter = false;
|
||||
try
|
||||
{
|
||||
string ParamNamee = AllLines[i + 2].Split('=')[1];
|
||||
for (int i2 = 0; i2 < AllIndexName.Count; i2++) if (AllIndexName[i2] == ParamNamee) DoneThisParameter = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
DoneThisParameter = true;
|
||||
}
|
||||
|
||||
if (!DoneThisParameter)
|
||||
{
|
||||
AllIndexName.Add("");
|
||||
AllIndexShortName.Add("");
|
||||
AllIndexLocations.Add("");
|
||||
|
||||
try
|
||||
{
|
||||
AllIndexName[AllIndexName.Count - 1] = AllLines[i + 2].Split('=')[1];
|
||||
AllIndexShortName[AllIndexShortName.Count - 1] = AllLines[i + 5].Split('=')[1];
|
||||
AllIndexLocations[AllIndexLocations.Count - 1] = AllLines[i + 6].Split('=')[1];
|
||||
|
||||
// XXX index
|
||||
AllIndexName[AllIndexName.Count - 1] = AllIndexName[AllIndexName.Count - 1].Replace(" " + AllIndexShortName[AllIndexShortName.Count - 1], "");
|
||||
AllIndexName[AllIndexName.Count - 1] = AllIndexName[AllIndexName.Count - 1].Replace(" index", "");
|
||||
|
||||
//Check for issues
|
||||
bool IssueEncountered = false;
|
||||
if (!AllIndexLocations[AllIndexLocations.Count - 1].Contains("0x")) IssueEncountered = true;
|
||||
if (AllIndexLocations[AllIndexLocations.Count - 1] == "0") IssueEncountered = true;
|
||||
if (AllIndexName[AllIndexName.Count - 1].Contains("0x")) IssueEncountered = true;
|
||||
|
||||
if (IssueEncountered)
|
||||
{
|
||||
AllIndexName.RemoveAt(AllIndexName.Count - 1);
|
||||
AllIndexShortName.RemoveAt(AllIndexShortName.Count - 1);
|
||||
AllIndexLocations.RemoveAt(AllIndexLocations.Count - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
GForm_Main_0.method_1("Added index: " + AllIndexName[AllIndexName.Count - 1]);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
//issue extracing parameters, remove from list to avoid issue creating definition
|
||||
AllIndexName.RemoveAt(AllIndexName.Count - 1);
|
||||
AllIndexShortName.RemoveAt(AllIndexShortName.Count - 1);
|
||||
AllIndexLocations.RemoveAt(AllIndexLocations.Count - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//########################
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -725,6 +816,17 @@ public class Class_DefinitionMaker
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
//ChecksumAddress = 0x001FFFFA
|
||||
//ChecksumAddress = 0x00008400
|
||||
//ChecksumAddress = 0x001FFFFA
|
||||
if (ChecksumLocation != "")
|
||||
{
|
||||
ChecksumLocation = ChecksumLocation.Replace("0x00", "0x");
|
||||
ChecksumLocation = ChecksumLocation.Replace("0x00", "0x");
|
||||
GForm_Main_0.method_1("Checksum address: " + ChecksumLocation);
|
||||
}
|
||||
|
||||
//Check Counts
|
||||
GForm_Main_0.method_1("Parameters existing in FPM: " + ParamCount);
|
||||
GForm_Main_0.method_1("Parameters extracted: " + AllParamName.Count);
|
||||
|
@ -733,13 +835,22 @@ public class Class_DefinitionMaker
|
|||
|
||||
|
||||
//string SavingStr = GenerateNewHeader(ThisECUName);
|
||||
string SavingStr = GenerateNewHeader("", AllEcuCompatible);
|
||||
string SavingStr = GenerateNewHeader("", AllEcuCompatible, ChecksumLocation);
|
||||
for (int i = 0; i < AllParamName.Count; i++)
|
||||
{
|
||||
SavingStr = SavingStr + "ROMLocationTable:" + AllParamLocations[i] + Environment.NewLine;
|
||||
SavingStr = SavingStr + "Name:" + AllParamName[i] + Environment.NewLine;
|
||||
SavingStr = SavingStr + "TableSize:1x1" + Environment.NewLine;
|
||||
SavingStr = SavingStr + "IsSingleByteTable:true" + Environment.NewLine;
|
||||
for (int m = 0; m < AllIndexName.Count; m++)
|
||||
{
|
||||
if (AllIndexName[m].ToLower() == AllParamName[i].ToLower())
|
||||
{
|
||||
SavingStr = SavingStr + "ROMLocationY:" + AllIndexLocations[m] + Environment.NewLine;
|
||||
SavingStr = SavingStr + "Unit1:" + AllIndexShortName[m] + Environment.NewLine;
|
||||
m = AllIndexName.Count;
|
||||
}
|
||||
}
|
||||
SavingStr = SavingStr + "IsNotDefined:true" + Environment.NewLine;
|
||||
if (AllParamReadOnly[i]) SavingStr = SavingStr + "IsReadOnly:true" + Environment.NewLine;
|
||||
if (AllParamUntested[i]) SavingStr = SavingStr + "IsUntested:true" + Environment.NewLine;
|
||||
|
@ -760,6 +871,15 @@ public class Class_DefinitionMaker
|
|||
SavingStr = SavingStr + "ValueMin:-32768" + Environment.NewLine;
|
||||
SavingStr = SavingStr + "ValueMax:32768" + Environment.NewLine;
|
||||
//SavingStr = SavingStr + "IsSingleByteTable:true" + Environment.NewLine;
|
||||
for (int m = 0; m < AllIndexName.Count; m++)
|
||||
{
|
||||
if (AllIndexName[m].ToLower() == AllTableName[i].ToLower())
|
||||
{
|
||||
SavingStr = SavingStr + "ROMLocationY:" + AllIndexLocations[m] + Environment.NewLine;
|
||||
SavingStr = SavingStr + "Unit1:" + AllIndexShortName[m] + Environment.NewLine;
|
||||
m = AllIndexName.Count;
|
||||
}
|
||||
}
|
||||
SavingStr = SavingStr + "IsNotDefined:true" + Environment.NewLine;
|
||||
if (AllTableReadOnly[i]) SavingStr = SavingStr + "IsReadOnly:true" + Environment.NewLine;
|
||||
if (AllTableUntested[i]) SavingStr = SavingStr + "IsUntested:true" + Environment.NewLine;
|
||||
|
@ -797,7 +917,7 @@ public class Class_DefinitionMaker
|
|||
public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
|
||||
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern bool ReadProcessMemory(int hProcess, int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);
|
||||
public static extern bool ReadProcessMemory(int hProcess, uint lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);
|
||||
|
||||
[DllImport("kernel32.dll")]
|
||||
static extern void GetSystemInfo(out SYSTEM_INFO lpSystemInfo);
|
||||
|
@ -817,6 +937,7 @@ public class Class_DefinitionMaker
|
|||
public string ThisEndPath = Application.StartupPath + @"\Extracted\";
|
||||
public int CurrentExtractedDumps = 1;
|
||||
public int ExtractedBlockDone = 1;
|
||||
public int ExtractMemorySize = 0;
|
||||
|
||||
// REQUIRED STRUCTS
|
||||
public struct MEMORY_BASIC_INFORMATION
|
||||
|
@ -845,35 +966,12 @@ public class Class_DefinitionMaker
|
|||
public ushort processorRevision;
|
||||
}
|
||||
|
||||
private int AllBytesContains(byte[] AllBytesCheck, byte[] CheckArray)
|
||||
{
|
||||
for (int i = 0; i < AllBytesCheck.Length; i++)
|
||||
{
|
||||
int Index2 = 0;
|
||||
try
|
||||
{
|
||||
while (AllBytesCheck[i + Index2] == CheckArray[Index2])
|
||||
{
|
||||
Index2++;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (Index2 >= CheckArray.Length) return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
public bool Extract(string ExtractMode)
|
||||
{
|
||||
try
|
||||
{
|
||||
SYSTEM_INFO sys_info = new SYSTEM_INFO();
|
||||
GetSystemInfo(out sys_info);
|
||||
//CurrentIndex = 4000000;
|
||||
CurrentIndex = 0;
|
||||
Done = false;
|
||||
ExtractedBlockDone = 1;
|
||||
|
@ -903,39 +1001,42 @@ public class Class_DefinitionMaker
|
|||
process = Process.GetProcessesByName("FlashProManager")[0];
|
||||
GForm_Main_0.method_1("FlashProManager is running...");
|
||||
|
||||
//RemovePastDump();
|
||||
string ReloadDump = "";
|
||||
|
||||
Console.WriteLine("memsize: " + sys_info.maximumApplicationAddress.ToString("X"));
|
||||
|
||||
while (!Done)
|
||||
if (ExtractMode == "Bin")
|
||||
{
|
||||
//int Percent = (int)(((CurrentIndex - 4000000) * 100) / (Int64.Parse(sys_info.maximumApplicationAddress.ToString()) - 1));
|
||||
int Percent = (int)(((CurrentIndex) * 100) / (Int64.Parse(sys_info.maximumApplicationAddress.ToString()) - 1));
|
||||
//Console.Write("\nSEARCH #" + SearchID + " " + Percent + "%");
|
||||
GForm_Main_0.method_4(Percent);
|
||||
//This function will extract datas present in 'system space memory' (kernel/protected area)
|
||||
//32Bit applications have 4Gb of memory split into 2sections of 2Gb,
|
||||
// ->the first section 0x00000000 to 0x7FFFFFFF are 'user space memory'
|
||||
// ->the second section 0x80000000 to 0xFFFFFFFF are 'system space memory'
|
||||
ExtractBINFromMemory();
|
||||
}
|
||||
|
||||
if ((CurrentIndex + BlockSizeExtracted) > Int64.Parse(sys_info.maximumApplicationAddress.ToString()))
|
||||
//if ((CurrentIndex + BlockSizeExtracted) > 0xFEFFFFFF)
|
||||
if (ExtractMode == "Definition")
|
||||
{
|
||||
//This function will extract datas present in 'user space memory' (unprotected area)
|
||||
//32Bit applications have 4Gb of memory split into 2sections of 2Gb,
|
||||
// ->the first section 0x00000000 to 0x7FFFFFFF are 'user space memory'
|
||||
// ->the second section 0x80000000 to 0xFFFFFFFF are 'system space memory'
|
||||
while (!Done)
|
||||
{
|
||||
Done = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxIndex = (CurrentIndex + BlockSizeExtracted);
|
||||
int Percent = (int)(((CurrentIndex) * 100) / (Int64.Parse(sys_info.maximumApplicationAddress.ToString()) - 1));
|
||||
GForm_Main_0.method_4(Percent);
|
||||
|
||||
proc_min_address = (IntPtr)CurrentIndex;
|
||||
proc_max_address = (IntPtr)MaxIndex;
|
||||
proc_min_address_l = (long)proc_min_address;
|
||||
proc_max_address_l = (long)proc_max_address;
|
||||
|
||||
ExtractMemoryBlock(ExtractMode);
|
||||
//ReloadDump = ReloadDumpFile();
|
||||
//ReloadDump = File.ReadAllText(ThisEndPath + "DumpHex" + ExtractedBlockDone);
|
||||
|
||||
//5B446566696E6974696F6E5D ->[Definition]
|
||||
if (ExtractMode == "Definition")
|
||||
if ((CurrentIndex + BlockSizeExtracted) > Int64.Parse(sys_info.maximumApplicationAddress.ToString()))
|
||||
{
|
||||
Done = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxIndex = (CurrentIndex + BlockSizeExtracted);
|
||||
|
||||
proc_min_address = (IntPtr)CurrentIndex;
|
||||
proc_max_address = (IntPtr)MaxIndex;
|
||||
proc_min_address_l = (long)proc_min_address;
|
||||
proc_max_address_l = (long)proc_max_address;
|
||||
|
||||
ExtractMemoryBlock();
|
||||
|
||||
ReloadDump = File.ReadAllText(ThisEndPath + "DumpHex" + ExtractedBlockDone);
|
||||
if (ReloadDump.Contains("[Definition]"))
|
||||
{
|
||||
|
@ -950,10 +1051,11 @@ public class Class_DefinitionMaker
|
|||
|
||||
|
||||
string SaveDefPath = ThisEndPath + "ExtractedDefinition" + (CurrentExtractedDumps - 1).ToString() + ".txt";
|
||||
GForm_Main_0.method_1("Extracted Definitions file created: " + SaveDefPath);
|
||||
GForm_Main_0.method_1("Extracted Definitions file created: " + Environment.NewLine + SaveDefPath);
|
||||
File.Create(SaveDefPath).Dispose();
|
||||
File.WriteAllText(SaveDefPath, DumpedDefinition);
|
||||
|
||||
//NOT NEEDED ANYMORE
|
||||
//< 0x20 > 0x7E
|
||||
/*byte[] AllFileBytes = File.ReadAllBytes(SaveDefPath);
|
||||
string SavingString = "";
|
||||
|
@ -965,24 +1067,13 @@ public class Class_DefinitionMaker
|
|||
File.WriteAllText(SaveDefPath, SavingString);*/
|
||||
}
|
||||
}
|
||||
if (ExtractMode == "Bin")
|
||||
{
|
||||
byte[] AllBytesArray = File.ReadAllBytes(ThisEndPath + "DumpHex" + ExtractedBlockDone);
|
||||
byte[] CheckBytes = new byte[] { 0xD0, 0x02, 0x40, 0x0B, 0x00, 0x09, 0xAF, 0xFE, 0x00, 0x09, 0x00, 0x00, 0x00 };
|
||||
//D0 02 40 0B 00 09 AF FE 00 09 00 00 00
|
||||
|
||||
if (AllBytesContains(AllBytesArray, CheckBytes) != -1)
|
||||
{
|
||||
Console.WriteLine("Found Bin in DumpHex" + ExtractedBlockDone);
|
||||
}
|
||||
}
|
||||
CurrentIndex += BlockSizeExtracted;
|
||||
ExtractedBlockDone++;
|
||||
}
|
||||
|
||||
CurrentIndex += BlockSizeExtracted;
|
||||
ExtractedBlockDone++;
|
||||
}
|
||||
|
||||
//RemovePastDump();
|
||||
RemovePastDump();
|
||||
GForm_Main_0.ResetProgressBar();
|
||||
|
||||
if (CurrentExtractedDumps == 1)
|
||||
|
@ -1018,24 +1109,136 @@ public class Class_DefinitionMaker
|
|||
}
|
||||
}
|
||||
|
||||
/*string ReloadDumpFile()
|
||||
void ExtractBINFromMemory()
|
||||
{
|
||||
string ReloadDump = File.ReadAllText(ThisEndPath + "Dump" + ExtractedBlockDone + ".txt");
|
||||
ReloadDump = ReloadDump.Replace("\n", "");
|
||||
ReloadDump = ReloadDump.Replace("\r", "");
|
||||
ReloadDump = ReloadDump.Replace(" ", "");
|
||||
File.WriteAllText(ThisEndPath + "Dump" + ExtractedBlockDone + ".txt", ReloadDump);
|
||||
int bytesRead = 0;
|
||||
uint ThisLocation = 0xFC000000; //0xFCD180BB FD0100C3 FD2A00C3 //C60000
|
||||
uint MaxLocation = 0xFE000000;
|
||||
uint ExtractingSize = 0xFFFFF;
|
||||
int BINSize = ExtractMemorySize + 1;
|
||||
IntPtr processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_WM_READ, false, process.Id);
|
||||
byte[] buffer = new byte[ExtractingSize];
|
||||
|
||||
//ExtractedBytes = File.ReadAllBytes(ThisEndPath + "DumpHex");
|
||||
return ReloadDump;
|
||||
}*/
|
||||
uint StartAddr = 0;
|
||||
uint StartLocation = ThisLocation;
|
||||
while (ThisLocation < MaxLocation && StartAddr == 0)
|
||||
{
|
||||
int Percent = (int)(((ThisLocation - StartLocation) * 100) / ((MaxLocation - StartLocation) - 1));
|
||||
GForm_Main_0.method_4(Percent);
|
||||
|
||||
void ExtractMemoryBlock(string ExtractMode)
|
||||
ReadProcessMemory((int)processHandle, ThisLocation, buffer, buffer.Length, ref bytesRead);
|
||||
|
||||
//D0 02 40 0B 00 09 AF FE ->works for 1Mb &7 2Mb ROM
|
||||
//0D 00 40 02 00 80 00 90 ->works for 4Mb ROM
|
||||
//20 00 00 03 B4 C0 FF FF ->works for some 1Mb ROM
|
||||
//FF FF FF FF FF FF FF XX -> NOT SUGGESTED
|
||||
for (int i = 0; i < buffer.Length - 8; i++)
|
||||
{
|
||||
if (buffer[i] == 0xd0
|
||||
&& buffer[i + 1] == 0x02
|
||||
&& buffer[i + 2] == 0x40
|
||||
&& buffer[i + 3] == 0x0b
|
||||
&& buffer[i + 4] == 0x00
|
||||
&& buffer[i + 5] == 0x09
|
||||
&& buffer[i + 6] == 0xaf
|
||||
&& buffer[i + 7] == 0xfe)
|
||||
{
|
||||
StartAddr = (uint)i - 8;
|
||||
i = buffer.Length;
|
||||
}
|
||||
|
||||
if (StartAddr == 0)
|
||||
{
|
||||
if (buffer[i] == 0x0d
|
||||
&& buffer[i + 1] == 0x00
|
||||
&& buffer[i + 2] == 0x40
|
||||
&& buffer[i + 3] == 0x02
|
||||
&& buffer[i + 4] == 0x00
|
||||
&& buffer[i + 5] == 0x80
|
||||
&& buffer[i + 6] == 0x00
|
||||
&& buffer[i + 7] == 0x90)
|
||||
{
|
||||
StartAddr = (uint)i - 8;
|
||||
i = buffer.Length;
|
||||
}
|
||||
}
|
||||
|
||||
if (StartAddr == 0)
|
||||
{
|
||||
if (buffer[i] == 0x20
|
||||
&& buffer[i + 1] == 0x00
|
||||
&& buffer[i + 2] == 0x00
|
||||
&& buffer[i + 3] == 0x03
|
||||
&& buffer[i + 4] == 0xb4
|
||||
&& buffer[i + 5] == 0xc0
|
||||
&& buffer[i + 6] == 0xff
|
||||
&& buffer[i + 7] == 0xff)
|
||||
{
|
||||
StartAddr = (uint)i - 8;
|
||||
i = buffer.Length;
|
||||
}
|
||||
}
|
||||
|
||||
//NOT SUGGESTED
|
||||
/*if (buffer[i] == 0xff
|
||||
&& buffer[i + 1] == 0xff
|
||||
&& buffer[i + 2] == 0xff
|
||||
&& buffer[i + 3] == 0xff
|
||||
&& buffer[i + 4] == 0xff
|
||||
&& buffer[i + 5] == 0xff
|
||||
&& buffer[i + 6] == 0xff
|
||||
&& buffer[i + 7] != 0xff)
|
||||
{
|
||||
StartAddr = (uint)i + 15;
|
||||
i = buffer.Length;
|
||||
}*/
|
||||
}
|
||||
|
||||
if (StartAddr == 0)
|
||||
{
|
||||
ThisLocation += ExtractingSize;
|
||||
//ThisLocation += 1;
|
||||
}
|
||||
}
|
||||
|
||||
GForm_Main_0.ResetProgressBar();
|
||||
|
||||
if (StartAddr != 0)
|
||||
{
|
||||
Console.WriteLine("address: 0x" + (StartAddr + ThisLocation).ToString("X"));
|
||||
buffer = new byte[BINSize];
|
||||
ReadProcessMemory((int)processHandle, (StartAddr + ThisLocation), buffer, buffer.Length, ref bytesRead);
|
||||
|
||||
string ECUFilename = GForm_Main_0.Editortable_0.ExtractECUNameFromThisFile(buffer);
|
||||
if (ECUFilename != "")
|
||||
{
|
||||
string SavePathh = ThisEndPath + GForm_Main_0.Editortable_0.ExtractECUNameFromThisFile(buffer) + ".bin";
|
||||
File.Create(SavePathh).Dispose();
|
||||
File.WriteAllBytes(SavePathh, buffer);
|
||||
GForm_Main_0.method_1("Extracted Binary file created: " + Environment.NewLine + SavePathh);
|
||||
CurrentExtractedDumps++;
|
||||
}
|
||||
else
|
||||
{
|
||||
GForm_Main_0.method_1("Something went wrong while extracting .bin:" + Environment.NewLine + "Could not find 'ECU name' inside the extracted data");
|
||||
//string SavePathh = ThisEndPath + "DumpHex1";
|
||||
//File.Create(SavePathh).Dispose();
|
||||
//File.WriteAllBytes(SavePathh, buffer);
|
||||
}
|
||||
}
|
||||
/*else
|
||||
{
|
||||
string SavePathh = ThisEndPath + "DumpHex1";
|
||||
File.Create(SavePathh).Dispose();
|
||||
File.WriteAllBytes(SavePathh, buffer);
|
||||
}*/
|
||||
}
|
||||
|
||||
void ExtractMemoryBlock()
|
||||
{
|
||||
int bytesRead = 0;
|
||||
IntPtr processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_WM_READ, false, process.Id);
|
||||
MEMORY_BASIC_INFORMATION mem_basic_info = new MEMORY_BASIC_INFORMATION();
|
||||
//StreamWriter sw = new StreamWriter(ThisEndPath + "Dump" + ExtractedBlockDone + ".txt");
|
||||
StreamWriter sw2 = new StreamWriter(ThisEndPath + "DumpHex" + ExtractedBlockDone);
|
||||
|
||||
while (proc_min_address_l < proc_max_address_l)
|
||||
|
@ -1046,15 +1249,11 @@ public class Class_DefinitionMaker
|
|||
{
|
||||
byte[] buffer = new byte[mem_basic_info.RegionSize];
|
||||
|
||||
ReadProcessMemory((int)processHandle, mem_basic_info.BaseAddress, buffer, mem_basic_info.RegionSize, ref bytesRead);
|
||||
|
||||
//Console.WriteLine("adrr: " + mem_basic_info.BaseAddress.ToString("X"));
|
||||
//Console.WriteLine("size: " + mem_basic_info.RegionSize.ToString("X"));
|
||||
ReadProcessMemory((int)processHandle, (uint) mem_basic_info.BaseAddress, buffer, mem_basic_info.RegionSize, ref bytesRead);
|
||||
|
||||
for (int i = 0; i < mem_basic_info.RegionSize; i++)
|
||||
{
|
||||
if (ExtractMode == "Bin") sw2.Write(buffer[i].ToString("X2") + " ");
|
||||
else sw2.Write((char)buffer[i]);
|
||||
sw2.Write((char)buffer[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1062,25 +1261,21 @@ public class Class_DefinitionMaker
|
|||
proc_min_address = new IntPtr(proc_min_address_l);
|
||||
}
|
||||
|
||||
//sw.Close();
|
||||
sw2.Close();
|
||||
|
||||
if (ExtractMode == "Definition")
|
||||
byte[] AllBytes = File.ReadAllBytes(ThisEndPath + "DumpHex" + ExtractedBlockDone);
|
||||
List<byte> AllBytesList = new List<byte>();
|
||||
for (int i = 0; i < AllBytes.Length; i++)
|
||||
{
|
||||
byte[] AllBytes = File.ReadAllBytes(ThisEndPath + "DumpHex" + ExtractedBlockDone);
|
||||
List<byte> AllBytesList = new List<byte>();
|
||||
for (int i = 0; i < AllBytes.Length; i++)
|
||||
{
|
||||
if (AllBytes[i] >= 0x20 && AllBytes[i] <= 0x7E) AllBytesList.Add(AllBytes[i]);
|
||||
if (AllBytes[i] == 0x0D || AllBytes[i] == 0x0A) AllBytesList.Add(AllBytes[i]);
|
||||
}
|
||||
AllBytes = new byte[AllBytesList.Count];
|
||||
for (int i = 0; i < AllBytesList.Count; i++) AllBytes[i] = AllBytesList[i];
|
||||
|
||||
File.WriteAllBytes(ThisEndPath + "DumpHex" + ExtractedBlockDone, AllBytes);
|
||||
if (AllBytes[i] >= 0x20 && AllBytes[i] <= 0x7E) AllBytesList.Add(AllBytes[i]);
|
||||
if (AllBytes[i] == 0x0D || AllBytes[i] == 0x0A) AllBytesList.Add(AllBytes[i]);
|
||||
}
|
||||
AllBytes = new byte[AllBytesList.Count];
|
||||
for (int i = 0; i < AllBytesList.Count; i++) AllBytes[i] = AllBytesList[i];
|
||||
|
||||
if (ExtractMode == "Bin")
|
||||
File.WriteAllBytes(ThisEndPath + "DumpHex" + ExtractedBlockDone, AllBytes);
|
||||
|
||||
/*if (ExtractMode == "Bin")
|
||||
{
|
||||
byte[] AllBytesChar = File.ReadAllBytes(ThisEndPath + "DumpHex" + ExtractedBlockDone);
|
||||
byte[] AllReturnBytes = new byte[AllBytesChar.Length / 3];
|
||||
|
@ -1094,7 +1289,7 @@ public class Class_DefinitionMaker
|
|||
}
|
||||
|
||||
File.WriteAllBytes(ThisEndPath + "DumpHex" + ExtractedBlockDone, AllReturnBytes);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
//##########################################################################################################################
|
||||
|
|
|
@ -5,14 +5,14 @@ internal class Class_ECUS
|
|||
{
|
||||
internal Class_ECUS(string string_4, string string_5, byte byte_1, string string_6, int int_4, int int_6, string TrannyType)
|
||||
{
|
||||
this.RomSize_String = string_4;
|
||||
this.RomSize_String = string_4;//only for display
|
||||
this.ECU_Byte = byte_1;
|
||||
this.ECU_Byte_String = string_6;
|
||||
this.Processor = string_5;
|
||||
this.ECU_Byte_String = string_6;//only for display
|
||||
this.Processor = string_5; //only for display
|
||||
this.ReadingSize = int_4 - 1;
|
||||
this.FirmwareSize = int_6;
|
||||
this.FirmwareSize = int_6; //not used
|
||||
this.RomSize = int_4;
|
||||
this.TransmissionType = TrannyType;
|
||||
this.TransmissionType = TrannyType;//only for display
|
||||
}
|
||||
|
||||
public string RomSize_String { get; set; }
|
||||
|
|
52
Class_RWD.cs
52
Class_RWD.cs
|
@ -325,10 +325,21 @@ static class Class_RWD
|
|||
//Get CanAddress Infos
|
||||
CanAddress = "18DA" + headers2[0].ToString("X2") + "F1";
|
||||
string AdditionnalCanInfos = "";
|
||||
if (headers2[0] == 0x0e) AdditionnalCanInfos = " (CVT Transmission (maybe?))";
|
||||
if (headers2[0] == 0x10) AdditionnalCanInfos = " (Manual Transmission)";
|
||||
if (headers2[0] == 0x11) AdditionnalCanInfos = " (Automatics Transmission)";
|
||||
if (headers2[0] == 0x30) AdditionnalCanInfos = " (Electric Power Sterring)";
|
||||
if (headers2[0] == 0x0b) AdditionnalCanInfos = " (Shift by wire)"; //->54008-XXX-XXXX files
|
||||
if (headers2[0] == 0x0e) AdditionnalCanInfos = " (CVT Transmission (maybe?))"; //->
|
||||
if (headers2[0] == 0x10) AdditionnalCanInfos = " (ECM with Manual Transmission)"; //->37805-XXX-XXXX files
|
||||
if (headers2[0] == 0x11) AdditionnalCanInfos = " (ECM with Automatics Transmission)"; //->37805-XXX-XXXX files
|
||||
if (headers2[0] == 0x1e) AdditionnalCanInfos = " (TCM - Transmission Control Module)"; //->28101-XXX-XXXX files
|
||||
if (headers2[0] == 0x28) AdditionnalCanInfos = " (VSA Module)"; //->57114-XXX-XXXX files
|
||||
if (headers2[0] == 0x2b) AdditionnalCanInfos = " (Electric Brake Booster Module)"; //->39494-XXX-XXXX files
|
||||
if (headers2[0] == 0x30) AdditionnalCanInfos = " (Electric Power Sterring Module)"; //->39990-XXX-XXXX files
|
||||
if (headers2[0] == 0x3a) AdditionnalCanInfos = " (Unknown Module)"; //->39390-XXX-XXXX files
|
||||
if (headers2[0] == 0x53) AdditionnalCanInfos = " (SRS Module)"; //->77959-XXX-XXXX files
|
||||
if (headers2[0] == 0x60) AdditionnalCanInfos = " (Odometer Module)"; //->78109-XXX-XXXX files
|
||||
if (headers2[0] == 0x61) AdditionnalCanInfos = " (HUD Module)"; //->78209-XXX-XXXX files
|
||||
if (headers2[0] == 0xb0) AdditionnalCanInfos = " (FWD Radar Module)"; //->36802-XXX-XXXX files
|
||||
if (headers2[0] == 0xb5) AdditionnalCanInfos = " (FWD Camera Module)"; //->36161-XXX-XXXX files
|
||||
if (headers2[0] == 0xef) AdditionnalCanInfos = " (Gateway Module)"; //->38897-XXX-XXXX files
|
||||
|
||||
//Print/Log Informations
|
||||
GForm_Main_0.method_1("Firmware Start: 0x" + start.ToString("X"));
|
||||
|
@ -394,19 +405,29 @@ static class Class_RWD
|
|||
{
|
||||
int CheckLocation = 0;
|
||||
if (fc.Length - 1 == 0xF7FFF) CheckLocation = 0x400;
|
||||
if (fc.Length - 1 == 0x1EFFFF) CheckLocation = 0x12; //0x10012
|
||||
if (fc.Length - 1 == 0x26FFFF) CheckLocation = 0x1F03E6; //0x2003E6
|
||||
if (fc.Length - 1 == 0x1EFFFF) CheckLocation = 0x12; //CONFIRMED GOOD LOCATION FOR FIRMWARE, FULL BIN LOCATION: 0x10012
|
||||
if (fc.Length - 1 == 0x26FFFF) CheckLocation = 0x1F03E6; //0x2003E6 0x1EFFFA in firmware or 0x001FFFFA in full bin
|
||||
byte num = GetBootloaderSum(fc, CheckLocation);
|
||||
byte num2 = GetNegativeChecksumFWBin(fc, CheckLocation);
|
||||
byte ThisSum = num;
|
||||
ThisSum -= num2;
|
||||
int ThisSumInt = num;
|
||||
ThisSumInt -= num2;
|
||||
if (ThisSumInt < 0) ThisSumInt += 255;
|
||||
byte ThisSum = (byte)ThisSumInt;
|
||||
byte chk = fc[CheckLocation];
|
||||
/*Console.WriteLine("chk: " + chk.ToString("X2"));
|
||||
Console.WriteLine("num2: " + num2.ToString("X2"));
|
||||
Console.WriteLine("num: " + num.ToString("X2"));
|
||||
Console.WriteLine("ThisSum: " + ThisSum.ToString("X2"));*/
|
||||
if (chk == ThisSum)
|
||||
{
|
||||
GForm_Main_0.method_1("checksums good!");
|
||||
BootloaderSum = num;
|
||||
GForm_Main_0.method_1("Bootloader Sum are 0x" + BootloaderSum.ToString("X"));
|
||||
}
|
||||
else
|
||||
{
|
||||
GForm_Main_0.method_1("checksums bad, could not get bootloader sum!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -491,19 +512,24 @@ static class Class_RWD
|
|||
byte[] BufferBytes = FWFileBytes;
|
||||
byte num = BufferBytes[CheckLocation];
|
||||
byte num2 = GetNegativeChecksumFWBin(BufferBytes, CheckLocation);
|
||||
byte BTSum = num;
|
||||
int BTSum = num;
|
||||
BTSum += num2;
|
||||
return BTSum;
|
||||
if (BTSum > 255) BTSum -= 255;
|
||||
return (byte) BTSum;
|
||||
}
|
||||
|
||||
public static byte GetNegativeChecksumFWBin(byte[] byte_1, int CheckLocation)
|
||||
{
|
||||
byte b = 0;
|
||||
int b = 0;
|
||||
for (int i = 0; i < byte_1.Length; i++)
|
||||
{
|
||||
if (i != CheckLocation) b -= byte_1[i];
|
||||
if (i != CheckLocation)
|
||||
{
|
||||
b -= byte_1[i];
|
||||
if (b < 0) b += 255;
|
||||
}
|
||||
}
|
||||
return b;
|
||||
return (byte) b;
|
||||
}
|
||||
|
||||
public static byte[] Push(byte[] bArray, byte[] newBytes)
|
||||
|
|
132
Editortable.cs
132
Editortable.cs
|
@ -110,9 +110,9 @@ public class Editortable : DarkForm
|
|||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Editortable));
|
||||
this.treeView1 = new DarkUI.Controls.DarkTreeView();
|
||||
this.groupBox1 = new DarkUI.Controls.DarkGroupBox();
|
||||
|
@ -133,6 +133,9 @@ public class Editortable : DarkForm
|
|||
this.increaseSelectionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.decreaseSelectionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripDropDownButton3 = new System.Windows.Forms.ToolStripDropDownButton();
|
||||
this.openOBD2ScanToolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.convertrwdTobinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.convertbinTorwdToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.removeBootloaderInbinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.developpersToolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -147,9 +150,6 @@ public class Editortable : DarkForm
|
|||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.darkTextBox_0 = new DarkUI.Controls.DarkTextBox();
|
||||
this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
|
||||
this.convertrwdTobinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.convertbinTorwdToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openOBD2ScanToolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView_0)).BeginInit();
|
||||
this.darkToolStrip1.SuspendLayout();
|
||||
|
@ -203,37 +203,37 @@ public class Editortable : DarkForm
|
|||
this.dataGridView_0.AllowUserToDeleteRows = false;
|
||||
this.dataGridView_0.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
|
||||
this.dataGridView_0.BackgroundColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||
dataGridViewCellStyle7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.Window;
|
||||
dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_0.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7;
|
||||
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||
dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.Window;
|
||||
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_0.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dataGridView_0.ColumnHeadersHeight = 20;
|
||||
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.ControlLight;
|
||||
dataGridViewCellStyle8.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dataGridView_0.DefaultCellStyle = dataGridViewCellStyle8;
|
||||
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.ControlLight;
|
||||
dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dataGridView_0.DefaultCellStyle = dataGridViewCellStyle2;
|
||||
this.dataGridView_0.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.dataGridView_0.EnableHeadersVisualStyles = false;
|
||||
this.dataGridView_0.GridColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||
this.dataGridView_0.Location = new System.Drawing.Point(2, 15);
|
||||
this.dataGridView_0.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.dataGridView_0.Name = "dataGridView_0";
|
||||
dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||
dataGridViewCellStyle9.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.Window;
|
||||
dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_0.RowHeadersDefaultCellStyle = dataGridViewCellStyle9;
|
||||
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||
dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.Window;
|
||||
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_0.RowHeadersDefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.dataGridView_0.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
|
||||
this.dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.dataGridView_0.RowTemplate.Height = 31;
|
||||
|
@ -412,6 +412,33 @@ public class Editortable : DarkForm
|
|||
this.toolStripDropDownButton3.Size = new System.Drawing.Size(47, 25);
|
||||
this.toolStripDropDownButton3.Text = "Tools";
|
||||
//
|
||||
// openOBD2ScanToolToolStripMenuItem
|
||||
//
|
||||
this.openOBD2ScanToolToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||
this.openOBD2ScanToolToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||
this.openOBD2ScanToolToolStripMenuItem.Name = "openOBD2ScanToolToolStripMenuItem";
|
||||
this.openOBD2ScanToolToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
|
||||
this.openOBD2ScanToolToolStripMenuItem.Text = "Open OBD2 Scan Tool";
|
||||
this.openOBD2ScanToolToolStripMenuItem.Click += new System.EventHandler(this.openOBD2ScanToolToolStripMenuItem_Click);
|
||||
//
|
||||
// convertrwdTobinToolStripMenuItem
|
||||
//
|
||||
this.convertrwdTobinToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||
this.convertrwdTobinToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||
this.convertrwdTobinToolStripMenuItem.Name = "convertrwdTobinToolStripMenuItem";
|
||||
this.convertrwdTobinToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
|
||||
this.convertrwdTobinToolStripMenuItem.Text = "Convert .rwd to .bin";
|
||||
this.convertrwdTobinToolStripMenuItem.Click += new System.EventHandler(this.convertrwdTobinToolStripMenuItem_Click);
|
||||
//
|
||||
// convertbinTorwdToolStripMenuItem
|
||||
//
|
||||
this.convertbinTorwdToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||
this.convertbinTorwdToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||
this.convertbinTorwdToolStripMenuItem.Name = "convertbinTorwdToolStripMenuItem";
|
||||
this.convertbinTorwdToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
|
||||
this.convertbinTorwdToolStripMenuItem.Text = "Convert .bin to .rwd";
|
||||
this.convertbinTorwdToolStripMenuItem.Click += new System.EventHandler(this.convertbinTorwdToolStripMenuItem_Click);
|
||||
//
|
||||
// removeBootloaderInbinToolStripMenuItem
|
||||
//
|
||||
this.removeBootloaderInbinToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||
|
@ -549,37 +576,11 @@ public class Editortable : DarkForm
|
|||
this.darkTextBox_0.Location = new System.Drawing.Point(0, 0);
|
||||
this.darkTextBox_0.Multiline = true;
|
||||
this.darkTextBox_0.Name = "darkTextBox_0";
|
||||
this.darkTextBox_0.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.darkTextBox_0.Size = new System.Drawing.Size(799, 152);
|
||||
this.darkTextBox_0.TabIndex = 56;
|
||||
this.darkTextBox_0.Text = "Honda CANBUS Tools";
|
||||
//
|
||||
// convertrwdTobinToolStripMenuItem
|
||||
//
|
||||
this.convertrwdTobinToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||
this.convertrwdTobinToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||
this.convertrwdTobinToolStripMenuItem.Name = "convertrwdTobinToolStripMenuItem";
|
||||
this.convertrwdTobinToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
|
||||
this.convertrwdTobinToolStripMenuItem.Text = "Convert .rwd to .bin";
|
||||
this.convertrwdTobinToolStripMenuItem.Click += new System.EventHandler(this.convertrwdTobinToolStripMenuItem_Click);
|
||||
//
|
||||
// convertbinTorwdToolStripMenuItem
|
||||
//
|
||||
this.convertbinTorwdToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||
this.convertbinTorwdToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||
this.convertbinTorwdToolStripMenuItem.Name = "convertbinTorwdToolStripMenuItem";
|
||||
this.convertbinTorwdToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
|
||||
this.convertbinTorwdToolStripMenuItem.Text = "Convert .bin to .rwd";
|
||||
this.convertbinTorwdToolStripMenuItem.Click += new System.EventHandler(this.convertbinTorwdToolStripMenuItem_Click);
|
||||
//
|
||||
// openOBD2ScanToolToolStripMenuItem
|
||||
//
|
||||
this.openOBD2ScanToolToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||
this.openOBD2ScanToolToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||
this.openOBD2ScanToolToolStripMenuItem.Name = "openOBD2ScanToolToolStripMenuItem";
|
||||
this.openOBD2ScanToolToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
|
||||
this.openOBD2ScanToolToolStripMenuItem.Text = "Open OBD2 Scan Tool";
|
||||
this.openOBD2ScanToolToolStripMenuItem.Click += new System.EventHandler(this.openOBD2ScanToolToolStripMenuItem_Click);
|
||||
//
|
||||
// Editortable
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
@ -1037,7 +1038,7 @@ public class Editortable : DarkForm
|
|||
public string ExtractECUNameFromThisFile(byte[] ThisFileBytes)
|
||||
{
|
||||
string ECUName = "";
|
||||
for (int i = 0; i < ThisFileBytes.Length; i++)
|
||||
for (int i = 0; i < ThisFileBytes.Length - 12; i++)
|
||||
{
|
||||
//37805-
|
||||
if ((char) ThisFileBytes[i] == '3'
|
||||
|
@ -1045,8 +1046,10 @@ public class Editortable : DarkForm
|
|||
&& (char)ThisFileBytes[i + 2] == '8'
|
||||
&& (char)ThisFileBytes[i + 3] == '0'
|
||||
&& (char)ThisFileBytes[i + 4] == '5'
|
||||
&& (char)ThisFileBytes[i + 5] == '-')
|
||||
&& (char)ThisFileBytes[i + 5] == '-'
|
||||
&& (char)ThisFileBytes[i + 10] != 'Z')
|
||||
{
|
||||
ECUName = "";
|
||||
ECUName = ECUName + ((char)ThisFileBytes[i]).ToString(); //3
|
||||
ECUName = ECUName + ((char)ThisFileBytes[i + 1]).ToString(); //7
|
||||
ECUName = ECUName + ((char)ThisFileBytes[i + 2]).ToString(); //8
|
||||
|
@ -1398,8 +1401,15 @@ public class Editortable : DarkForm
|
|||
|
||||
private void extractbinFileFromFPMToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
//THIS FUNCTION DOES NOT WORK YET
|
||||
GForm_Main_0.Class_DefinitionMaker_0.Extract("Bin");
|
||||
GForm_ExtractSize GForm_ExtractSize_0 = new GForm_ExtractSize();
|
||||
DialogResult result = GForm_ExtractSize_0.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
if (GForm_ExtractSize_0.comboBox1.SelectedIndex == 0) GForm_Main_0.Class_DefinitionMaker_0.ExtractMemorySize = 0xF7FFF;
|
||||
if (GForm_ExtractSize_0.comboBox1.SelectedIndex == 1) GForm_Main_0.Class_DefinitionMaker_0.ExtractMemorySize = 0x1EFFFF;
|
||||
if (GForm_ExtractSize_0.comboBox1.SelectedIndex == 2) GForm_Main_0.Class_DefinitionMaker_0.ExtractMemorySize = 0x26FFFF;
|
||||
GForm_Main_0.Class_DefinitionMaker_0.Extract("Bin");
|
||||
}
|
||||
}
|
||||
|
||||
private void convertrwdTobinToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -78,6 +78,9 @@
|
|||
<Compile Include="GClass4.cs" />
|
||||
<Compile Include="GEnum0.cs" />
|
||||
<Compile Include="GEnum1.cs" />
|
||||
<Compile Include="GForm_ExtractSize.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GForm_Credits.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
@ -108,6 +111,9 @@
|
|||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="frmOBD2Scan.resx" />
|
||||
<EmbeddedResource Include="GForm_ExtractSize.resx">
|
||||
<DependentUpon>GForm_ExtractSize.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="GForm_Credits.resx">
|
||||
<DependentUpon>GForm_Credits.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
|
@ -45,7 +45,6 @@ public class GForm_Credits : DarkForm
|
|||
this.darkButton_0 = new DarkUI.Controls.DarkButton();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// darkButton_0
|
||||
|
@ -81,10 +80,6 @@ public class GForm_Credits : DarkForm
|
|||
this.label3.Text = "Credits from Honda community:";
|
||||
this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||
//
|
||||
// openFileDialog1
|
||||
//
|
||||
this.openFileDialog1.Title = "Select File";
|
||||
//
|
||||
// GForm_Credits
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
@ -111,5 +106,4 @@ public class GForm_Credits : DarkForm
|
|||
private DarkButton darkButton_0;
|
||||
private Label label1;
|
||||
private Label label3;
|
||||
private OpenFileDialog openFileDialog1;
|
||||
}
|
||||
|
|
|
@ -117,7 +117,4 @@
|
|||
<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>
|
|
@ -0,0 +1,114 @@
|
|||
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_ExtractSize : DarkForm
|
||||
{
|
||||
|
||||
public GForm_ExtractSize()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
comboBox1.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void method_0(object sender, EventArgs e)
|
||||
{
|
||||
base.DialogResult = DialogResult.OK;
|
||||
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.label3 = new System.Windows.Forms.Label();
|
||||
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
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(105, 68);
|
||||
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);
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
|
||||
this.label3.ForeColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.label3.Location = new System.Drawing.Point(31, 15);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(223, 13);
|
||||
this.label3.TabIndex = 10;
|
||||
this.label3.Text = "Select the size of memory you want to extract:";
|
||||
this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Items.AddRange(new object[] {
|
||||
"0xF7FFF (1Mb firmware .bin)",
|
||||
"0x1EFFFF (2Mb firmware .bin)",
|
||||
"0x26FFFF (4Mb firmware .bin)"});
|
||||
this.comboBox1.Location = new System.Drawing.Point(9, 38);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(272, 21);
|
||||
this.comboBox1.TabIndex = 11;
|
||||
//
|
||||
// GForm_ExtractSize
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(289, 101);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.comboBox1);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.darkButton_0);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "GForm_ExtractSize";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Memory Size for Extraction";
|
||||
this.Load += new System.EventHandler(this.method_1);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
private IContainer icontainer_0;
|
||||
private DarkButton darkButton_0;
|
||||
private Label label3;
|
||||
public ComboBox comboBox1;
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
<?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>
|
||||
</root>
|
141
GForm_Main.cs
141
GForm_Main.cs
|
@ -32,7 +32,7 @@ public class GForm_Main : DarkForm
|
|||
private DarkButton darkButton6;
|
||||
private DarkButton darkButton3;
|
||||
public Editortable Editortable_0;
|
||||
public string Version = "v1.1.3";
|
||||
public string Version = "v1.1.5";
|
||||
private DarkTextBox darkTextBoxJ2534Command;
|
||||
private DarkLabel darkLabel1;
|
||||
private DarkButton darkButtonJ2534Command;
|
||||
|
@ -101,6 +101,7 @@ public class GForm_Main : DarkForm
|
|||
|
||||
//Send to ROM Editor logs
|
||||
Editortable_0.method_1(string_3);
|
||||
Application.DoEvents();
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
@ -300,31 +301,25 @@ public class GForm_Main : DarkForm
|
|||
{
|
||||
if (this.byte_7 != null)
|
||||
{
|
||||
this.method_8(this.byte_7);
|
||||
SaveFileDialog saveFileDialog = new SaveFileDialog();
|
||||
saveFileDialog.RestoreDirectory = true;
|
||||
saveFileDialog.Filter = "Honda Rom Dump|*.Bin";
|
||||
saveFileDialog.FileName = this.darkTextBox_2.Text;
|
||||
if (saveFileDialog.ShowDialog() != DialogResult.OK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
File.WriteAllBytes(saveFileDialog.FileName, this.byte_7);
|
||||
this.method_1("File saved: " + saveFileDialog.FileName);
|
||||
DarkMessageBox.Show(this, "Successfully Saved File!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||
/*this.darkButton_DownloadROM.Enabled = false;
|
||||
this.darkButton_Unlock41.Enabled = false;
|
||||
this.darkButton_Unlock01.Enabled = false;
|
||||
this.darkButton_FlashRom.Enabled = false;
|
||||
this.darkButton_FlashFW.Enabled = false;*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void method_8(byte[] byte_12)
|
||||
{
|
||||
SaveFileDialog saveFileDialog = new SaveFileDialog();
|
||||
saveFileDialog.RestoreDirectory = true;
|
||||
saveFileDialog.Filter = "Honda Rom Dump|*.Bin";
|
||||
saveFileDialog.FileName = this.darkTextBox_2.Text;
|
||||
if (saveFileDialog.ShowDialog() != DialogResult.OK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
File.WriteAllBytes(saveFileDialog.FileName, byte_12);
|
||||
this.method_1("File saved: " + saveFileDialog.FileName);
|
||||
DarkMessageBox.Show(this, "Successfully Saved File!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
||||
/*this.darkButton_DownloadROM.Enabled = false;
|
||||
this.darkButton_Unlock41.Enabled = false;
|
||||
this.darkButton_Unlock01.Enabled = false;
|
||||
this.darkButton_FlashRom.Enabled = false;
|
||||
this.darkButton_FlashFW.Enabled = false;*/
|
||||
}
|
||||
|
||||
private void darkButton2_Click(object sender, EventArgs e)
|
||||
{
|
||||
/*if (GForm_Main.string_0.Length == 0)
|
||||
|
@ -499,7 +494,7 @@ public class GForm_Main : DarkForm
|
|||
{
|
||||
0x18,
|
||||
0xDA,
|
||||
GForm_Main.byte_3, //-> 0x10|0x11
|
||||
GForm_Main.ECU_Byte, //-> 0x10|0x11
|
||||
0xF1
|
||||
};
|
||||
|
||||
|
@ -587,6 +582,7 @@ public class GForm_Main : DarkForm
|
|||
{
|
||||
if (SendPendingResp)
|
||||
{
|
||||
//This may resolve the issue
|
||||
Thread.Sleep(5);
|
||||
RetryCount++;
|
||||
continue;
|
||||
|
@ -898,7 +894,7 @@ public class GForm_Main : DarkForm
|
|||
};
|
||||
byte[] byte_13 = new byte[]
|
||||
{
|
||||
GForm_Main.byte_3,
|
||||
GForm_Main.ECU_Byte,
|
||||
99
|
||||
};
|
||||
|
||||
|
@ -986,8 +982,8 @@ public class GForm_Main : DarkForm
|
|||
this.byte_7 = this.method_15(channel, this.backgroundWorker_1);
|
||||
stopwatch.Stop();
|
||||
TimeSpan.FromMilliseconds((double)stopwatch.ElapsedMilliseconds);
|
||||
DarkTextBox darkTextBox = this.darkTextBox_0;
|
||||
darkTextBox.Text = darkTextBox.Text + GForm_Main.smethod_1(this.byte_7) + Environment.NewLine;
|
||||
//DarkTextBox darkTextBox = this.darkTextBox_0;
|
||||
//darkTextBox.Text = darkTextBox.Text + GForm_Main.smethod_1(this.byte_7) + Environment.NewLine;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1239,13 +1235,13 @@ public class GForm_Main : DarkForm
|
|||
24, //0x18
|
||||
218, //0xDA
|
||||
241, //0xF1
|
||||
GForm_Main.byte_3 //0x00
|
||||
GForm_Main.ECU_Byte //0x00
|
||||
};
|
||||
messageFilter.FlowControl = new byte[]
|
||||
{
|
||||
24, //0x18
|
||||
218, //0xDA
|
||||
GForm_Main.byte_3, //0x00 -> 0x10|0x11
|
||||
GForm_Main.ECU_Byte, //0x00 -> 0x10|0x11
|
||||
241 //0xF1
|
||||
};
|
||||
MessageFilter filter = messageFilter;
|
||||
|
@ -1562,7 +1558,7 @@ public class GForm_Main : DarkForm
|
|||
public void method_13_Close(Channel channel_0)
|
||||
{
|
||||
byte[] arraySend1 = new byte[] {0x37};
|
||||
byte[] buffer2 = new byte[] { GForm_Main.byte_3, 0x77 };
|
||||
byte[] buffer2 = new byte[] { GForm_Main.ECU_Byte, 0x77 };
|
||||
|
||||
byte[] Received = SendJ2534Message(channel_0, arraySend1, 3);
|
||||
if (BadResponceReceived) return;
|
||||
|
@ -1589,7 +1585,7 @@ public class GForm_Main : DarkForm
|
|||
{
|
||||
0x18,
|
||||
0xDA,
|
||||
GForm_Main.byte_3,
|
||||
GForm_Main.ECU_Byte,
|
||||
0xF1,
|
||||
0x36,
|
||||
byte_6X
|
||||
|
@ -1598,7 +1594,7 @@ public class GForm_Main : DarkForm
|
|||
SAE.J2534.Message message = new SAE.J2534.Message(data, TxFlag.CAN_29BIT_ID | TxFlag.ISO15765_FRAME_PAD);
|
||||
channel_0.SendMessage(message);
|
||||
bool flag = false;
|
||||
byte[] buffer2 = new byte[] { GForm_Main.byte_3, 0x76, byte_6X };
|
||||
byte[] buffer2 = new byte[] { GForm_Main.ECU_Byte, 0x76, byte_6X };
|
||||
while (!flag)
|
||||
{
|
||||
GetMessageResults messages = channel_0.GetMessages(5);
|
||||
|
@ -1646,12 +1642,12 @@ public class GForm_Main : DarkForm
|
|||
return;
|
||||
}
|
||||
gform.Dispose();
|
||||
GForm_Main.byte_3 = GForm_Main.class9_0.ECU_Byte;
|
||||
GForm_Main.ECU_Byte = GForm_Main.class9_0.ECU_Byte;
|
||||
GForm_Main.byte_0[3] = GForm_Main.class9_0.ECU_Byte;
|
||||
GForm_Main.byte_1[3] = GForm_Main.class9_0.ECU_Byte;
|
||||
GForm_Main.byte_2[3] = GForm_Main.class9_0.ECU_Byte;
|
||||
this.byte_5[0] = GForm_Main.class9_0.ECU_Byte;
|
||||
Array.Resize<byte>(ref GForm_Main.byte_4, GForm_Main.class9_0.FirmwareSize);
|
||||
//Array.Resize<byte>(ref GForm_Main.byte_4, GForm_Main.class9_0.FirmwareSize);
|
||||
Array.Resize<byte>(ref this.byte_7, GForm_Main.class9_0.RomSize);
|
||||
this.byte_7 = Enumerable.Repeat<byte>(byte.MaxValue, GForm_Main.class9_0.RomSize).ToArray<byte>();
|
||||
this.darkButton_2.Enabled = true;
|
||||
|
@ -1719,6 +1715,7 @@ public class GForm_Main : DarkForm
|
|||
this.darkTextBox_0.Location = new System.Drawing.Point(218, 63);
|
||||
this.darkTextBox_0.Multiline = true;
|
||||
this.darkTextBox_0.Name = "darkTextBox_0";
|
||||
this.darkTextBox_0.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.darkTextBox_0.Size = new System.Drawing.Size(399, 408);
|
||||
this.darkTextBox_0.TabIndex = 55;
|
||||
this.darkTextBox_0.Text = "Honda CANBUS Tools";
|
||||
|
@ -2155,14 +2152,8 @@ public class GForm_Main : DarkForm
|
|||
|
||||
|
||||
public static string string_0 = string.Empty;
|
||||
|
||||
|
||||
public static string string_1 = "";
|
||||
|
||||
|
||||
private Dictionary<string, byte[]> dictionary_0 = new Dictionary<string, byte[]>();
|
||||
|
||||
|
||||
private List<string> list_0 = new List<string>();
|
||||
|
||||
|
||||
|
@ -2200,37 +2191,28 @@ public class GForm_Main : DarkForm
|
|||
};
|
||||
|
||||
|
||||
public static byte byte_3 = 16;
|
||||
|
||||
public static byte ECU_Byte = 16;
|
||||
public static byte[] byte_ToWrite = new byte[] { };
|
||||
|
||||
|
||||
public static byte[] byte_4 = new byte[2097152];
|
||||
//public static byte[] byte_4 = new byte[2097152];
|
||||
|
||||
|
||||
private byte[] byte_5 = new byte[]
|
||||
{
|
||||
GForm_Main.byte_3,
|
||||
GForm_Main.ECU_Byte,
|
||||
127
|
||||
};
|
||||
|
||||
|
||||
private byte[] byte_6 = new byte[2];
|
||||
|
||||
|
||||
private byte[] byte_7;
|
||||
|
||||
|
||||
private static byte[] byte_8 = new byte[]
|
||||
{
|
||||
GForm_Main.byte_3,
|
||||
GForm_Main.ECU_Byte,
|
||||
20
|
||||
};
|
||||
|
||||
|
||||
private string string_2 = string.Empty;
|
||||
|
||||
|
||||
internal static Class_ECUS class9_0;
|
||||
|
||||
|
||||
|
@ -2256,84 +2238,31 @@ public class GForm_Main : DarkForm
|
|||
|
||||
|
||||
private BackgroundWorker backgroundWorker_0;
|
||||
|
||||
private BackgroundWorker backgroundWorker_1;
|
||||
|
||||
|
||||
private DateTime dateTime_0;
|
||||
|
||||
|
||||
private long long_0;
|
||||
|
||||
|
||||
private IContainer icontainer_0;
|
||||
|
||||
|
||||
|
||||
private DarkButton darkButton_0;
|
||||
|
||||
|
||||
private DarkButton darkButton_DownloadROM;
|
||||
|
||||
|
||||
private DarkButton darkButton_2;
|
||||
|
||||
|
||||
private DarkButton darkButton_3;
|
||||
|
||||
|
||||
private DarkTextBox darkTextBox_0;
|
||||
|
||||
|
||||
private DarkGroupBox darkGroupBox_0;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_0;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_1;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_2;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_3;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_4;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_5;
|
||||
|
||||
|
||||
private DarkTextBox darkTextBox_1;
|
||||
|
||||
|
||||
private DarkTextBox darkTextBox_2;
|
||||
|
||||
|
||||
private DarkTextBox darkTextBox_3;
|
||||
|
||||
|
||||
private DarkTextBox darkTextBox_4;
|
||||
|
||||
|
||||
private DarkButton darkButton_4;
|
||||
|
||||
|
||||
|
||||
private DarkButton darkButton_FlashRom;
|
||||
|
||||
|
||||
private DarkButton darkButton_6;
|
||||
|
||||
|
||||
private DarkProgressBar darkProgressBar_0;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_7;
|
||||
|
||||
|
||||
private DarkLabel darkLabel_8;
|
||||
private DarkButton darkButton1;
|
||||
private DarkButton darkButton_Unlock41;
|
||||
|
|
|
@ -44,6 +44,25 @@ public class GForm_PlatformSelect : DarkForm
|
|||
|
||||
private void method_1()
|
||||
{
|
||||
//#################################################################################################################
|
||||
/*if (headers2[0] == 0x0b) AdditionnalCanInfos = " (Shift by wire)"; //->54008-XXX-XXXX files
|
||||
if (headers2[0] == 0x0e) AdditionnalCanInfos = " (CVT Transmission (maybe?))"; //->
|
||||
if (headers2[0] == 0x10) AdditionnalCanInfos = " (ECM with Manual Transmission)"; //->37805-XXX-XXXX files
|
||||
if (headers2[0] == 0x11) AdditionnalCanInfos = " (ECM with Automatics Transmission)"; //->37805-XXX-XXXX files
|
||||
if (headers2[0] == 0x1e) AdditionnalCanInfos = " (TCM - Transmission Control Module)"; //->28101-XXX-XXXX files
|
||||
if (headers2[0] == 0x28) AdditionnalCanInfos = " (VSA Module)"; //->57114-XXX-XXXX files
|
||||
if (headers2[0] == 0x2b) AdditionnalCanInfos = " (Electric Brake Booster Module)"; //->39494-XXX-XXXX files
|
||||
if (headers2[0] == 0x30) AdditionnalCanInfos = " (Electric Power Sterring Module)"; //->39990-XXX-XXXX files
|
||||
if (headers2[0] == 0x3a) AdditionnalCanInfos = " (Unknown Module)"; //->39390-XXX-XXXX files
|
||||
if (headers2[0] == 0x53) AdditionnalCanInfos = " (SRS Module)"; //->77959-XXX-XXXX files
|
||||
if (headers2[0] == 0x60) AdditionnalCanInfos = " (Odometer Module)"; //->78109-XXX-XXXX files
|
||||
if (headers2[0] == 0x61) AdditionnalCanInfos = " (HUD Module)"; //->78209-XXX-XXXX files
|
||||
if (headers2[0] == 0xb0) AdditionnalCanInfos = " (FWD Radar Module)"; //->36802-XXX-XXXX files
|
||||
if (headers2[0] == 0xb5) AdditionnalCanInfos = " (FWD Camera Module)"; //->36161-XXX-XXXX files
|
||||
if (headers2[0] == 0xef) AdditionnalCanInfos = " (Gateway Module)"; //->38897-XXX-XXXX files*/
|
||||
//#################################################################################################################
|
||||
|
||||
|
||||
//this.list_0.Add(new Class_ECUS("512k", "SH7055", 16, "0x10", 0x7FFFF, 1015808, "Manual"));
|
||||
//this.list_0.Add(new Class_ECUS("512k", "SH7055", 17, "0x11", 0x7FFFF, 1015808, "Automatic"));
|
||||
//this.list_0.Add(new Class_ECUS("512k", "SH7055", 14, "0x0E", 0x7FFFF, 1015808, "CVT(maybe?)"));
|
||||
|
|
Loading…
Reference in New Issue