Stránka 1 z 1

Zpětné čtení HEX

Napsal: 13 dub 2010, 08:40
od michalino
Dobrý den, prosím Vás o radu ze zajímavosti..

Lze přečíst zpětně HEX soubor?
Pokud program dělám třeba v bascomu a převedu ho do HEX formátu, můžu ho z toho HEX formátu převést zpět do čitelné podoby?

Dá se kód v mikroprocesoru nějak ochránit proti přečtení nebo dělá se to vůbec?

Děkuji,
Všem přeji hezký den!

Napsal: 13 dub 2010, 09:01
od forbidden
Proti přečtení obsahu se dá chránit úplně jednoduše, alespoň u PICu, u Atmelu nevím. Nastavíš si konfigurační bit, který chrání programovou paměť, nebo jiný i EEPROM.
Na převedení z HEXu do ASM existují tzv. disassemblery, ale nikdy jsem to nezkoušel. Nebude to asi moc spolehlivý a hlavně tam samozřejmě nebudou poznámky, takže vyznat se v cizím programu bude obtížný. To ho radši napíšu sám znova.

Napsal: 13 dub 2010, 09:04
od michalino
Děkuji za odpověď a máte někdo zkušenosti s Atmelem a Bascomem?

Napsal: 13 dub 2010, 09:23
od Hill
Pokud ti disassembler dovolí přiřadit konkrétním adresám subrutin a skoků, které najde ve strojovém kódu, i jejich názvy (ty si zvolíš vlastní), může se to čtení zjednodušit. Zvlášť, když jsi schopen určit význam a funkci alespoň několika z pojmenovávaných rutin (volání portů, matematické operace, čtení vstupů a pod.) a přiřadit jim na základě toho symbolickou adresu se jménem, které tuto funkci třeba nepopíše, ale řekne, že se tady provádí.
Ale jednotky hodin ani tak stačit nebudou, počítej, že začneš na desítkách až stovkách, a není vyloučené, že to pak stejně zahodíš a raději napíšeš vlastní program.

Napsal: 13 dub 2010, 11:30
od ccode
Disassemblerem to , ale nedostane zpět do podoby zdrojového kódu pro compiler BASICu (BASCOM) .

Napsal: 13 dub 2010, 11:37
od forbidden
ccode píše:Disassemblerem to , ale nedostane zpět do podoby zdrojového kódu pro compiler BASICu (BASCOM) .
To ne, ale reverse engineering do vyššího programovacího jazyka bude ještě obtížnější, než do ASM. Osobně si myslím, že do BASIcu to nedostane nikdy, ale možná se pletu.

Napsal: 13 dub 2010, 19:32
od popopepe
No, půjde to velmi složitě. Hex nebo Bin už jsou vlastně jenom jedničky a nuly, které píšeš do procesoru. Vždyť si to zkus sám. Napiš triviální program v Bascom, vygeneruj HEX, a pak to z toho HEX zkus přeložit zpátky. I když jsi autorem toho programu a víš přesně co to dělá, budeš mít velké problémy :-)
Ona ta ochrana proti přečtení z procesoru není ani tak kvůli zpětnému louskání programu, jako spíš ochrana proti kopírování a následnému šíření naprogramovaných procesorů.
I když všechno asi jde, otázka jestli to stojí za to.

Napsal: 14 dub 2010, 09:06
od procesor
V minulom storočí sa to dalo (v počiatkoch PC). Disassembler som mal v hlave. Dnes je svet rýchlejší a rôznych procesorov veľa.
Aj vlastný rozsiahlejší ASM program po desiatich rokoch dá zabrať- a to pritom tuším, čo to má robiť :wink:

Napsal: 14 dub 2010, 09:22
od procesor
BASIC, ktorého základ pochádza z interpreteru, máva za "jadrom" štruktúru dat odpovedajúcu zápisu programu (jednotlivých príkazov s aj parametrami). Stačí nájsť túto štruktúru a dešifrovať kódy jednotlivých príkazov s príslušnými parametrami. Jadro si netreba všímať. Buď je fixne veľké, alebo po preklade obsahuje moduly iba pre použité príkazy.

Napsal: 14 dub 2010, 13:01
od michalino
Tak taková HACKEŘINA to je...
hmm...

Děkuji všem za příspěvky...

Zní to už velmi pokročile a vědecky...jak píšete, zkusím se zabývat teď pouze tím, jak ochránit procesor proti přečtení, potažmo zamezení kopírování paměti procesoru....

Děkuji všem a hezký den taky všem!!!