# Programmas / Software >  Checksum korekcija AUTO ECU

## Kernel

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!

----------


## Kodolskiltava

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.

----------

