Převod souboru HEX na ASM

:arrow_right: toto téma bylo rozděleno administrátorem a zde pokračuje:

Dobrý večer

Není nutné příliš hledat, stačí se zeptat ne tomto fóru :slight_smile:.

Převést zkompilovaný soubor (*.hex) na zdrojový kód (soubor *.asm) problém není. U Microchipu bych použil originální Microchip MPLAB.
Pro jaké mikropočítače chcete převádět?

Jak jsem již psal, problém to není. Horší je potom z výsledného souboru něco pochopit. Určitě je vám jasné, že komentář nenajdete. Někdy ale nenajdete téměř nic. Ty nejméně propracované programy na tuto konverzi vám to převedou tak, že například každá adresa je absolutní. A nejde jenom o adresy paměťových buněk, jde třeba i o adresy jednotlivých návěstí. Pokud máte chytřejší převaděč, tak vám vymyslí vlastní názvy návěstí a paměťových buněk. Ovšem nemyslete, že by to byli názvy jaké zamýšlel tvůrce programu. Samozřejmě to jsou nějak automaticky generované znaky a čísla, v jejichž záplavě se špatně orientuje.

Abych to shrnul. Pokud chcete pouze upravit nějakou konstantu v cizím programu, tak to půjde. Na nějaké složitější úpravy ale zapomeňte.

A proč by se neměli nezachovat názvy buněk a návěstí? Komentář pochopím, ale návěstí?

Postavil som si programator. Kedze mikroprocesor (PIC16F628) kupim najskôr v piatok, chcel som ho nejak vyskusat. Mam doma jednu stavebnicu kde bol uz naprogramovany PIC12C508A, tak som ho chcel aspon precitat. Data mi nacital, ale chcel som ich zobrazit v zdrojovom kode a nie v “.hex”. Da sa 12c508 vymazat a prepisat?

Stiahol som si program MPLAB IDE v6.61
Kde je to prelozenie z HEX na ASM? Lebo nikde to nevidim. Diki za odpoved.

Jestli můžu doporučit Disassembler tak potom: hagi-online.org/picmicro/picdisasm_en.html
Ale jak psal Admin na velké zázraky to není.
Procesor 12C508 se smazat a znovu zapsat nedá pokud nemáš verzi s okýnkem, která se maže UV zářením ( a to si myslím, že mít nebudeš).

Ahoj Gonzo

Do zkompilovaného souboru (do dat, které se nahrávají do mikropočítače) se nezapisuje název návěští, ale pouze adresa kam má třeba program přejít. Návěští, která si nadefinuješ, jsou pouze pomocníci pro tebe. Například když před návěští přidáš pár řádek programu, které si později dopsal, tak se název návěští nezmění. Změní se ale samozřejmě adresa, která se nahrává do mikropočítače. To ti ale může být samozřejmě úplně jedno.

Dnes už je programování v assembleru díky těmto návěštím, názvům buněk a třeba různým skriptům podstatně jednodušší. Když se začínalo programovat jednočipy, tak to bylo podstatně horší. Programy se psali přímo v kódu, který nebyl o moc rozdílný než kód, který vidíš v souboru HEX. Programátor musel mít na papíře napsány tuny informací „co je co“, která adresa znamená jaký skok apod. Ten kdo říká, že assembler je nepříjemný, by měl vidět jaké to dřív bylo :slight_smile:.

Řekl bych, že jednodušší než dnes to nebude, protože už pravděpodobně není co změnit k lepšímu. Samozřejmě připomínám, že mluvím o assembleru a ne o vyšších programovacích jazycích, kde každou chvíli vymyslí nějaké zpříjemnění.

V nabídce „File“ zvol „Import“ a najdi soubor *.hex. Mělo by to fungovat. Když tak dej vědět…

Ten import tam je. Ak som to dal a vybral hex subor ,tak nic to nerobi.
Ten procesor nema mazacie okienko :cry:
Nepozna niekto dobry navod ako prepojim PIC so znakovim LCD displayom?

Podívám se ještě na to…

Pro úplně jiné dotazy prosím nové vlákno! Jinak se v tom nikdo nevyzná…

Položka Import funguje. Když naimportuješ HEX soubor, tak stačí dát VIEW/PROGRAM MEMORY a vidíš disassemblovaný zdrojový kód. Uložit ho můžeš pravým tlačítkem myši OUTPUT TO FILE. Máš také možnost předtím vypustit třeba čísla řádků, abys je nemusel odstraňovat ručně.
To uděláš pravým tlačitkem na šedé horní liště LINE, ADRESS, OPCODE…
Co pak s tím? To už je “vyšší dívčí” a je to vždycky mravenčí práce. Problém je i v tom, že hodně programů je vytvořeno kompilátory BASICu nebo jiného vyššího jazyka. To pak zpětně luštit je někdy nadlidský výkon.

diky funguje to perfektne…import > view > program memory a pak output to file… :wink:
u malych PIC to neni zase tolik prace ale u vetsich s vice instrukcema bohuzel jo :unamused:

Mám MPLAB X IDE v4.01 a nemůžu to najít, poradil by mi někdo prosím?

Poradím ti, ale nevím jestli se ti ta rada bude líbit:

  1. Dekompilace (disassemblování) je vždy nelegální. Buď ji nepotřebuješ protože autor dal zdrojové kódy veřejně k dispozici a nebo ji nemůžeš provádět, protože bys tím narušil autorova práva a jeho podmínky k užívání, když tedy ten zdrojový kód nezveřejnil.

  2. Od doby kdy se to tu v tom vlákně řešilo uplynul už nějaký čas a Microchip mezitím původní řadu vývojových prostředků uložil k ledu a začal vyvíjet úplně jinou (včetně HW) - takže se domnívám že v tomto ohledu máš po žížalkách.

  3. Jako člověk, který respektuje licence a také sám vyvíjí (je autorem) k tomu můžu říci jen to, že mi tvé jednání přijde mimořádně nechutné, pobuřující a amorální. Nejde přitom jen “o nějaké zákony”, ale hlavně o to že nerespektuješ podmínky, které stanovil autor pro užívání svého díla. Jak to pak dopadá si můžeš přečíst například na S-O webu - jen proto že nejsi ochoten se dotázat autora tvého programu na svolení a respektovat podmínky, tak kvůli své pochybné krátkodobé nelegální výhodě trvale poškodíš všechny ostatní. Příklad z té stránky - na onom webu byla zveřejněna konstrukce skvělého VU metru pro nekomerční použití zdarma vč. zdrojového kódu. Pitomci z Augustica Technologies to bez svolení ukradli, začali prodávat a dokonce si na to drze zaregistrovali ochrannou známku, což vše autor zjistil a následně musel konstrukci stáhnout - důsledek je ten, že si VU metr už nikdo nepostaví a nic se na něm nenaučí, protože někdo cizí byl bezohledný sobec a vlastní zisk mu byl přednější než veřejné zájmy. Hnus. Autor S-O webu od té doby nezveřejňuje zdrojové kódy ke svým konstrukcím, což je věčná a nenahraditelná škoda protože zrovna on je měl velmi propracované, a i ty již zveřejněné zpětně stáhnul a je třeba ho žádat s nejistým výsledkem (a navíc zřejmě moc nechybělo aby přestal tvořit úplně). Takové jsou důsledky a nedozírná škoda pro všechny, protože nikdo neví a už se nikdy nedozví kolik nových talentů se na těch kódech mohlo učit nebo inspirovat (pokud by tam stále ještě byly) a kolik novýck konstrukcí mohlo vzniknout, kdyby autora nikdo takto podlým způsobem nepřipravil o entuziasmus.

Hm,
jedná se o program ze stránek pro řízení PLL home.deds.nl/~radio102/freddos/default.htm
kde na konci autor zveřejnil program převedený z assembleru do JAL s tím, že neposkytuje žádnou podporu.
Chtěl jsem v tom upravit 2 konstanty pro jiný rozsah kmitočtů a zpátky zkompilovat, ale to už jsi komentoval v jiném vlákně.
V JAL v2 to hází tolik chyb, že s tím nejsem schopný nic udělat. Když jsem .hex otevřel v disassembleru, tak jsem konstanty našel, ale neumím to upravit a zkompilovat zpátky.
To je vše, nejde o žádné reverzibilní inženýrství. Chtěl jsem si to opravit pro jednorázové použití.
Pokud je to proti pravidlům nebo dobrým zvykům, ať to admin smaže a omlouvám se.

Já bych to tak nedramatizoval. Bod 1. nemá žádnou oporu v legislativě, pokud zveřejněný HEX není doplněn o licenční podmínky. (GNU, GPL, LGPL, proprietar,…) Samozřejmě nejčistčí řešení je napsat autorovi, zda by neposkytnul zdroják, nebo to neupravil sám. Pokud si tyto možnosti vyčerpal bez výsledku, klidně si to hackni pro vlastní potřebu. Budeš si muset někde poshánět adekvátní “stará” vývojová prostředí a ono to pak půjde.

Autor S-O webu by si měl doplnit licenční podmínky pod svoje konstrukce a měl by klid. Co se týče hajzlíků z Kanady, ty bych na jeho místě neřešil. Pochybuju, že by měli koule na nějaký soudní proces. Soudě podle jejich web stránek jsou to pěkný mastiči :wink: Ale chápu, že to otráví.

Autor se mi neozval, zkoušel jsem to třikrát. Při mých znalostech bych radši, kdyby to udělal on, nabízel jsem i úplatu.

Pokud Mahoney považuje moje jednání za “mimořádně nechutné, pobuřující a amorální”, tak by to měl nahlásit adminovi (potažmo na ČTU).

Kromě toho Microchip uložil MPLAB IDE k ledu, jak píše, ale na jeho stránkách jsou všechny verze, i ty co toto umí, volně ke stažení.

To, že disasseblování není úplně košer je jedna věc, ale sám naznačuješ, že Tvé znalosti nejsou zrovna na nejvyšší úrovni. Nevím, jestli tím myslíš, že bys nedal dohromady algoritmus nebo jestli máš problémy s programováním jako takovým, ale to není úplně důležité. Pokud Microchip nabízí program, který i disassemblování umí, tak si ho stahni a použij, ale myslím, že ani náznakem netušíš, co disassemblování vlastně obnáší. Píšeš, že hledáš 2 konstanty - dobrá, ale víš, kolikrát jsou obě v programu použité ? Když budeš vědět, že jedna konstanta je například 25, tak budeš hledat v programu použití hodnoty 25. Ale kde máš jistotu, že každá 25-ka je ta tvoje konstanta a ne nějaká jiná, která je zrovna shodná s tou, kterou hledáš ? Věř tomu, že disassemblování je mnohem náročnější práce, než to napsat celé znovu od nuly a podle svého. Musíš nejenom rozebrat strojový kód na assembler, ale je třeba i pochopit, co ten program vlastně dělá, abys věděl, co kde měníš. A to je jenom případ, že je program psaný v assembleru a jednoduše. Pokud je použité Cčko nebo jiný vyšší programovací jazyk, bude tam ještě spousta balastu navíc.

Do příspěvku jsi dal odkaz na jakousi homepage nějakýho bastlíře (možná jenom studentské stránky), ale ten web už 11 let nebyl aktualizovaný a doslova tam píše, že originál web je offline a na tomto webu nejsou žádné nové projekty, žádná podpora a žádné updaty. Těžko si dokážu představit, že takovýhle člověk by mi odpověděl, pokud bych mu napsal.

Nejjednodušší bude, když si vezmeš datasheet od SAA1057 a naprogramuješ si to podle vlastních potřeb sám.

Nechci se hádat ani tu řešit autorský zákon, ale jen tak na okraj pro informaci - Radius v tomto nemá tak úplně pravdu, AZ praví něco trochu jiného. Ale nechme to být, ono je víceméně na každém jednom člověku jak se bude chovat a zodpovědnost má taky každý svoji vlastní, takže nějak tak. Pro mě osobně je důležitější morálka a až pak zákony a šlo mě spíš o to, aby se přemýšlelo nad činy a všemi důsledky dříve než se něco udělá, ne až pak.

Pokud je autor nekontaktní (3x) tak jsi asi udělal co jsi mohl. Co se týče zpětného překladu, nemusíš shánět hned celá stará IDE, když je to pro (dnes obsolete) 16F84(A) tak poslouží i IC-prog s doinstalovanou knihovnou.

ic-prog.com/download.html

AZ je natolik komplexní soubor pravidel, že pochybuju, že to tady někdo z nás může rozhodnout. O reverzním iženýrství je tam hodně napsáno a taky, že to není výhradně nelegální proces. Tím bych to uzavřel. Peace no flame. A jak píšeš, morálka a důsledky, víc netřeba.

Tak snad mu to niekto napise zase taky zlozity program to nieje.