Warning: Illegal string offset 'name' in [path]/includes/functions.php on line 6439
Checksum korekcija AUTO ECU
+

thread: Checksum korekcija AUTO ECU

  1. #1
    Member
    Oct 2010
    59

    Checksum korekcija AUTO ECU

    Labdien!<br> Esmu sācis vākt info par to kā pieslēgties motora vadības blokam, nolasīt FLASH, rediģēt kartes,tā kā man vajag un ierakstīt atpakaļ- t.i. nočipot auto. <br>To kāpēc man to vajag un ka var nodot profesionālam čipotājam,kurš to izdarīs kvalitātīvi un bez galvassāpēm,neapspriežam. <br> Principā jau visas lietas (bezmaksas), kuras ir vajadzīgas, lai visu izdarītu, jau esmu atradis, atliek tikai viena- rediģēto failu cheksum korekcija, lai tas ECU vispār ietu un nepārvērstos par ķieģeli pēc rediģēto karšu iepūšanas atpakaļ. Un te, cik nu es pa pēdējām dienām saguuglēju situācija sekojoša:<br>1) var dabūt pa maksu, jau gatavu izsrādājumu dažādiem vadības blokiem(principā pat nav dārgi,ja to man vajag tikai vienam auto), citi piedāvā aizsūtīt viņiem rediģētās kartes un tie atsūta atpakaļ failus ar korektu cheksum.<br>2) dažiem populāriem tūneru motoriem/vadībām, forumos var atrast jau gatavu cehksum korektoru, kur kādi lietotāji programmētāji ir atkoduši un brīvi dalās ar to.<br>3) darīt pašam vai uzticēt kādam, kas to var izdarīt? <br><br>Bet vairāk jau mani interesē apgaismība šajā virzienā, kā to dabū gatavu. Lasot dažādus čipotāju forumus, sapratu, ka tiek taisīta ROM atmiņas disassembly, attiecīgi tiek dabūti sākotnējie ASM kodi, un tad jau var sazīmēt tās cheksum, kautā tā (neesmu programmētājs, tikai esmu mēģinājis uztvert domu no tā visa)<br>Vai šeit ir kāds, kurš varētu pastāstīt pa soļiem, kā tas notiek, kādas sistēmas, programmas tiek lietotas, algoritmi, lai to dabūtu gatavu?<br>Vai arī dot kādus noderīgus linkus utt., paldies!

  2. #2
    Senior Member
    Mar 2011
    720

    Ir vēl netīrāka versija, ka disasemblējot kodu Tu atrodi, kur tā summa tiek startējoties pārbaudīta un šo pārbaudi nafig izmet ārā. Jā, protams, tā nevajadzētu darīt, jo tā bloka darbība tomēr ir saistīta ar drošību, bet nu tīri lai pamēģinātu tas tomēr ir variants. Es te viena arhaiska aparāta kodu esmu disasemblējis un lēnām skatu cauri, un lai simulējot nebūtu jāgaida kamēr pārbauda RAMu un pārbauda kontrolsummu, šobrīd tie man stāv nokomentēti. Par disasemblēšanu ir daudzi jautājumi, piemēram, uz kādas arhitektūras Tev tas ECU ir būvēts? Vai tai jau ir pieejami disasembleri? Vai visa programma ir ROMā vai vēl ir kāda atmiņa, piemēram, proča iebūvētā? Disasemblēšana ir diezgan riebīgi ķēpīga, daudz jāveic pieraksti, rindiņu nosaukumi ir bez kādas nozīmes, komentāru nav. Plus, ja tas kods bijis rakstīts C un bijis lasāms, tad ASMā var būt jāiespringst lai saprastu ko dara kura apakšprogramma. Plus ROMā var glabāties ne tikai programma, bet arī dati, kurus disasemblers mēģinās pārvērst par neloģiskām komandām un tad tikai Tev cenšoties saprast būs jāizdomā vai tie ir dati vai komandas. Jo programma ir garāka, jo čakarīgāk to ir darīt. Ja gribi mainīt nolasītos mašīnkodus programmā neievietojot papildus datus tad Tev šādas problēmas nav, bet ja gribi programmu disassemblēt, labot asemblera programmu un tad assemblēt atpakaļ uz atmiņas saturu tad ir vēl tāda problēma kā programmas lēcieni izmantojo PC (Program Counter) mainīšanu. Ja Tavā programmā tādi ir izmantoti un ja Tu maini programmas garumu baitos tad šie lēcieni var vairs nestrādāt korekti un radīt negaidītas problēmas.
    Tieši par kontrolsummām - tās parasti glabājas atmiņas pēdējos baitos un tiek pārbaudītas pie startēšanās. Pats, pats vienkāršākais ir pie 0xFF vai pie 0xFFFF skaitīt klāt visu atmiņas saturu, bet diez vai tik vienkārši būs.
    Par softiem - man priekš manām retro izvirtībām ir piemēroti tādi OshonSoft produkti, kuri ir leitojami kā dažādi procesoru asembleri, disasembleri un simulatori. Nav pa brīvu, bet cena irpieņemama. Ir pa kādam bugam, bet nu pasūdzoties tie tiek laboti.

+