Et määritä sirua, seuraava on enimmäkseen suunnattu 8-bittisille atmega-laitteille, mutta se on yleistä tietoa. Lue tarkemmat tiedot kohdasta Muistin ohjelmointi tietyn sirun tietolomakkeesta!
Sanottiin, ja kuten sanoitte, kaikki AVR-laitteet sisältävät kaksi lukobittiä nimeltä LB1 ja LB2. Näiden ohjelmointi (arvoon 0, matala) lisää suojaa Flash- ja EEPROM-muistiin kirjoitettuihin sisältöihin alla olevan taulukon mukaisesti. Suojaustaso on jaettu kolmeen tilaan, joissa tila 1 ei tarjoa suojaa ja tila 3 tarjoaa maksimaalisen suojan. On mahdollista siirtyä korkeammalle suojaustilalle yksinkertaisesti ohjelmoimalla uudelleen lukitusbitit.
AVR sallii korkean bitin vaihtamisen matalaksi, mutta ei päinvastoin. "Matalaa" lukitusbittiä ei ole mahdollista muuttaa "korkeaksi", joten suojaustason alentaminen ei ole mahdollista. Lukitusbittien tyhjentämiseksi tarvitaan täydellinen sirun poisto, joka tyhjentää Flash-muistin.
Nämä kaksi lukitusbittiä yksin (LB1 ja LB2) kun alhainen estää 99,9% ihmisistä varastamasta firmwareasi! Todennäköisesti yli 99,9%. Koodisi suunnittelu on melkein aina helpompaa.
Joten ei ole mitään tapaa antaa käyttäjän päivittää laiteohjelmistoa mukautetulla käynnistyslataimella ja suojata salamaa samanaikaiselta lukemiselta?
Parhaan tietoni mukaan (voisin erehtyä, mutta mielestäni minulla olisi ollut ongelmia tämän kanssa aiemmin) laitteissa, joissa on käynnistyslataimen suojavarokkeet (BLB12 ja BLB11), voit lukita mukautetun käynnistyslataimen osiosta, poista SPI käytöstä ja ole suojattu 97-98% ihmisiltä.
Kuitenkin, kun mitään lukitusbitistä ei ole ohjelmoitu, muistilukko-ominaisuuksia ei ole otettu käyttöön !!! ISP-käytöstä poistaminen riittää vain 70%: n ihmisten estämiseen.
Joidenkin lisätietojen vuoksi lukitusbitit ja sulakkeet eivät ole tavallisessa salaman tai EEPROM-tilassa, eivätkä ne ole käytettävissä ohjelmistosta lukuun ottamatta Käynnistyslataajaan liittyviä lukobittejä laitteissa, joissa on itseohjelmointi. Tämän sovelluksen huomautuksen taulukko 2 auttaa sinua tunnistamaan, mitä voit tehdä omalle laitteellesi!
Atmelin AVR-linja ei ole korkean turvallisuuden laite (ellei sitä nimenomaisesti mainita!) ja sellaisenaan heillä ei ehdottomasti ole mitään kooditurvatakuuta, eikä heidän pitäisi! Kuten kaikki suojaamattomat laitteet (ja valitettavasti jopa jotkut suojatut laitteet), he ovat alttiita tavallisille hyökkäyksille!
Muokkaa
Aion laittaa HV-ohjelmointirajapinnan otsikon. Mutta voiko joku käyttää HV-ohjelmoijaa lukemaan salaman? Tiedän, että HV-ohjelmoija voi tehdä sirun poiston, vaikka ISP / Jtag on pois käytöstä.
En usko, että sinun pitäisi sisällyttää HV-ohjelmoijaa piirilevysi suunnitteluun, ellei se ole ehdottoman välttämätöntä ja tiedät varma, että se ei aiheuta ongelmia mihinkään. HV-ohjelmoijan ohjelmat (12 voltin signaalit) ovat käytettävissä vain turvatoimenpiteenä lukittujen (virhelukitettujen, enimmäkseen) sirujen ohjelmoimiseksi. Teoriassa tämä on vain tarkoitettu ohjelmoimaan laite lukemaan mitään. Enkä ole koskaan kuullut hyödyntämisestä, joka mahdollistaisi lukemisen.
Käynnistysohjelman päivittämiseen (joskus) laitan HV-ohjelmointirajapinnan otsikon. Mutta voiko joku käyttää HV-ohjelmoijaa lukemaan salaman? Tiedän, että HV-ohjelmoija voi tehdä sirun poiston, vaikka ISP / Jtag on pois käytöstä.
Luulen, että voi olla tapa päivittää lukittu salama käynnistyslataimen kautta (jotain tekemistä sisäisen kirjoituslipun ja / tai ISR: n kanssa ehkä ???) Mutta minun on etsittävä muistiinpanoni ja ehkä täytyy testata se. En voi tehdä tätä ~ 20 tuntia; joten suosittelen erittäin uuden kysymyksen esittämistä , joka keskittyi vain tähän ja mainitsemallesi prosessorille. Se on erittäin hyvä kysymys !