Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Diskuse k článku

Fanoušek strávil 1 200 hodin analýzou zdrojového kódu, aby uchoval Diablo

Pomocí metod reverzního inženýrství zrestauroval amatérský nadšenec zdrojový kód Diabla 1 tak, aby toto legendární akční RPG nikdy neupadlo v zapomnění.

Upozornění

Litujeme, ale tato diskuse byla uzavřena a již do ní nelze vkládat nové příspěvky.
Děkujeme za pochopení.

Zobrazit příspěvky: Všechny podle vláken Všechny podle času

P63e70t11r 36N10o58v43e91k 6102922932306

není tohle typický úkol pro umělou inteligenci ?

0/−1
5.7.2018 1:38

J23i30ř48í 62J57u72ř23i78c93a 2298413651

přečetl jsem si článek a nainstaloval jsem si diablo 2 i s datadiskem. To byla noc. :-)

+3/0
4.7.2018 16:20

J30i60ř85í 31H24a84n16d52l 8914199882

Nepohybuje se v "šedé legislativní zóně", protože legislativní znamená zákonodárný. To vyznívá, jak kdyby byl bezskrupulózní poslanec přijímající zákony pochybnou cestou. Pohybuje se v možná tak v šedé zóně práva, tedy v šedé zóně legality. Když novinář neumí používat cizí slova (na úrovni znalostí středoškoláka), ať je nepoužívá. Nebo použije slovník cizích slov.

+3/−2
4.7.2018 5:02

M16a75r42t95i23n 52Z87i32k88m97u14n10d 7475325244921

Ví někdo, v čem ta analýza, reverzní inženýrství a "uchování" spočívá? To jako že obnoví stav před kompilací? Vůbec se v tom nevyznám. Předem díky.

0/0
3.7.2018 12:41

M47a31r69t61i44n 39B45e16r49a72n 6219775246851

Prostě nemá originální zdrojáky, tak je vytvoří podle finálního produktu.

+5/0
3.7.2018 13:50

K50a37t14e41ř41i85n25a 75D10r35a16h95o51k67o25u60p47i97l10o91v68á 9306321562543

Existují softwary, které umí dekompilovat strojový kód (potažmo assembler) z "exe" do C či C++. Ale není to samozřejmě 1:1 a musí to pak pochopit, doslova dát znovu dohromady a některé části přepsat či dopsat. Tím vzniknou nové chyby či nepřesnosti, které musí ladit dokud to není stejné jako referenční aplikace.

+17/0
3.7.2018 16:41

M76a40r35t56i50n 41Z19i18k13m57u76n94d 7165905374761

Díky!

0/0
3.7.2018 16:42

J70a31n 43B55a47b86j77a89k 5875345229772

Kdyby to Blizzard nějak zvlášť podporoval, tak mu ty zdrojáky dá sám, ne?

+11/0
3.7.2018 7:12

I31g27o29r 15G56o85t64t55w88a29l58d 6937958870481

Tak tak, navíc hrabat se po někom v kódu, navíc na úrovní assembleru, to je slušnej masochismus. Zřejmě nějaký teenager, protože dospělák už má dost rozumu i jiných povinností, než aby mohl tahle zabíjet čas. Na druhou stranu je to řádově lepší zábava, než koukání do mobilu a lajkování příspěvků nebo fotek. Tímhle se možná naučí i pár zajímavých fíglů.

+13/−13
3.7.2018 7:33

Z19d47e64n41ě17k 71K24r96a97u87s 9106160882610

to si zrovna nemylsim kdyz se podivas kolik dospelaku vyhazuje penize za sbirani ruznych hovadin od karet pres plechovky, pivni tacky, pulitry po ruzny stary auta atd...

+9/0
3.7.2018 8:21

I45g67o26r 28G40o85t84t37w71a48l29d 6357808870511

Ale to jo, koníčky jsou fajn, ale zkoušel jste někdy diassemblovat kód? To zpravidla není žádná obohacující činnost, ledaže jste začátečník v assembleru a chcete se přiučit, jak k nějakému problému přistupil někdo jiný, případně kompilátor. Většinou se používá k odhalování chyb, které nedávají smysl (zdrojový kód je logicky OK, ale metoda nefunguje - vzácně se stane, že je chyba v nějakém kompilátoru, za moji praxi jsem se s tím setkal asi 5x) nebo pro ověření, zda kompilátor provedl správné optimalizace. Anebo když chce člověk upravit nebo zjistit něco, kde nemá co dělat :-)

+5/−1
3.7.2018 10:59

O72n49d58ř59e47j 67S51e33k91e15r15a 1177296316269

Znáte Cheat Engine? Hacknout ve hře supermegazabezpečené struktury, obsahující zajímavá data (typicky HP/SP, peníze, inventář...) pomocí vlastního mikrokódu je docela sranda a rozhodně zábava... Jen k tomu masochismu.;-)

0/0
3.7.2018 18:23

I55g79o75r 92G52o60t42t75w65a11l62d 6817758260221

No ale tohle není masochismus, něčím podobným jsem se jako kluk bavil taky :-) - akorát tenkrát jsem se musel skutečně naučit assembler. Masochismus je snaha obnovit zdrojáky celé komplexní aplikace, navíc staré 20 let, která navíc slouží jen k zábavě. Ale samozřejmě fanouškům dané hry to přijde určitě jako skvělá zábava.

+3/0
3.7.2018 22:21

Z81d90e35n55ě35k 48K51r56a50u93s 9926430332220

tj ale obcas ani cheat engine moc nefunguje jak by clovek chtel a musis ustoupit zas o krok dal do hex editoru:-)

0/0
4.7.2018 8:07

M34a78r65i15a54n 91K49r59a86l 6444892404727

Dospelej nebo ne, je to jedno. Ale rozhodne to je vetsi machr nez vetsina z nas tady, protoze to je opravdu velkej projekt. Jen *velmi* malo lidi ma inteligenci a vnitrni disciplinu aby neco takoveho dokazalo.

+8/0
3.7.2018 9:54

I92g57o83r 84G75o17t79t33w24a80l72d 6957768140331

Uznávám, že naprostá většina diskutujících pravděpodobně nemá ani znalosti, ani schopnosti něco takového zvládnout, natož povědomí o složitosti. Ale ona to zas taková dřina není. Rozhodující je kvalita výsledného kódu. Pokud to jen přepisuje do assembleru, což by těm hodinám odpovídalo, tak to zase takovej borec nebude. Jestli si ale dal práci a analyzuje a převádí metody do některého vyššího jazyka, pak je to už řádově složitější úkol, na jehož výsledcích lze stavět. Ale ruku na srdce, 1200 hodin je nějakých 30 pracovních týdnů, u fanouška bych to tipoval nejvýš na 20 (sedí u toho déle jak 8 hodin denně). Za tak krátký čas jeden člověk žádné veledílo nenaprogramuje. Tím myslím komplexní program typu rozsáhlé počítačové hry. Má to sice zjednodušené o to, že nemusí vyrábět grafiku, nemusí vymýšlet a testovat herní mechanismy apod., ale stejně mi to přijde spíš jako výkřik do tmy typu “hele, co jsem dokázal”, než něco, co by mohlo ohromit. Nejvíc “cool” na tom je pro většinu lidí asi slutečnost, že vůbec netuší, jak se taková věc dělá.

+5/−1
3.7.2018 11:13

M34a98r59t26i18n 62T40u32n96z75e30r 4333722312144

Neexistují nástroje, které trochu pomůžou? Trochu jsem googlil a vypadá to, že se něco takového dá najít.

0/0
3.7.2018 13:41

I90g65o93r 74G58o97t66t18w26a36l52d 6887208970921

Existují, byť nikdy to není dokonalé. Existují i specializované nástroje pro konkrétní kompilátory, které umožňují rekonstrukci původního kódu. Využívají charakteristiky specifického překladu konstrukcí konkrétního programovacího jazyka do assembleru. Případně není příliš složité, pokud je strojového kódu hodně, si trošku sám pomoct. Já osobně bych na to šel spíš touto cestou, pokud byl kód napsán např. v některé verzi jazyka C, což skoro určitě byl. Ale výsledek je stejně jen slabým odrazem původního komentovaného kódu se srozumitelně pojmenovanými metodami, typy, třídami a proměnnými. Mnoho různých konstrukcí může vést k identickému kódu, a přitom srozumitelnost zápisu může být dramaticky odlišná. Takže ať už si pomůžete čímkoliv, vždy čeká ohromné množství manuální práce.

0/0
3.7.2018 16:25

L19i76b87o25r 35M87o84u72č31k19a 1618357865182

tak pod pojmem zdrojovy kod ocekavam alespon C , assembler je jen vyssi forma strojovyho kodu pro konkretni instrukcni sadu.

+1/0
3.7.2018 16:55

P54e82t17r 11S20o89k16o11l 8122551347671

Dissasemblovat 1200hodin a nechat to v assembleru by mohl leda blb. Každý průměrně zdatný programátor si to převede hned do něčeho vyššího, tady určitě do c++. gró práce je v tom převodu kódu do srozumitelné sémantiky.

0/0
3.7.2018 22:52

M89i43l89o64š 73Z30a34v14ř66e52l 9451565953267

U vas je videt furt snaha znevazovat jeho praci a schopnosti :) A fakt si na tom davate zalezet. Se na ten github podivejte v cem to pise ;) nekdo tech 1200 hodin stravi u serialu a nekdo u pocitace kde olravdu i pri reverznim inzenyrstvi rozviji svoje schopnosti.

+1/0
3.7.2018 22:55

M16i92l72o64š 95Z72a78v98ř70e53l 9451865983177

mimochodem má to v C++ a v komentech si někdy psal assemblerovské instrukce. Nevím jestli neexistují nějaké utilitky, které převádějí asm do c++, ale pochopit význam kódu, poslepovat ho a hlavně zfunkčnit nebude vůbec žádná sranda. Obecně automatické konvertory dokáží čitelnost kódu dost zauzlovat samy :)

0/0
3.7.2018 23:05

I85g17o74r 41G89o67t96t50w81a65l45d 6407108820511

Tak on mě k dispozici jednak verzi s ladícími instrukcemi, odkud vysosal většinu použitelných identifikátorů a umístění funkcí, (nejen) díky assertations získal názvy většiny unit, jinak velká část projektu je ve stavu progress = 0 nebo méně než 20%. Ale o to nejde. Mě spíš přijde minimální hodnota článku samotného, který opěvuje něco, co není zas takový zázrak. Alespoň z pohledu lidí, kteří se programováním profesionálně zabývají. Je to asi takový zázrak, jako byste napsal, že MaLTaCiHLa postavil úplně sám dům za 50 hodin. Zbývá dodělat strěchu, okna, dveře, elektroinstalaci, rozvody vody, kanalizaci, jo a chybí základová deska. Ve stejném stavu je ten projekt. Určitě si na tom máknul, ale jsem přesvědčený, že to nikdy nedotáhne do konce. Tím myslím do stavu, že by mohl vzít kompilátor a vyrobit z těch kódů funkční EXE a knihovny. Což třeba ani není cílem a možná to pár jiných fanoušků k něčemu použije, ale když se mrknete na ten kód, tak zpracovaný je skutečně jen zlomek (myslím zlomek výrazně menší než 1 :-))

+1/0
4.7.2018 6:58

I12v46a59n 15K93o83h23o38u46t 1581613876894

Mám takovej dojem, že ty zdrojáky jsou ztracené. Někde se o tom psalo, ale jistý si tím nejsem.

+10/0
3.7.2018 11:24



Najdete na iDNES.cz