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

P49e53t25r 95N62o39v47e16k 6912502752376

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

0/−1
5.7.2018 1:38

J34i31ř91í 10J92u82ř90i83c52a 2468723351

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

J45i65ř90í 44H97a87n46d69l 8404499232

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

M87a77r41t93i30n 10Z42i61k23m93u63n10d 7645235434611

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

M16a37r24t27i13n 80B88e60r95a48n 6129175146131

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

+5/0
3.7.2018 13:50

K15a96t84e17ř13i31n60a 87D70r83a20h84o59k41o80u65p35i31l63o36v40á 9426251322193

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

M17a88r80t97i80n 96Z34i56k19m87u66n25d 7565195214101

Díky!

0/0
3.7.2018 16:42

J27a66n 40B16a27b31j56a79k 5405225799532

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

+11/0
3.7.2018 7:12

I76g72o72r 80G62o97t95t42w79a89l88d 6857858370491

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

Z52d24e50n78ě22k 51K35r22a74u84s 9256910852410

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

I11g67o68r 27G79o78t46t25w85a61l58d 6237788300371

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

O77n53d29ř88e80j 13S64e89k42e67r12a 1517606966949

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

I46g15o19r 11G78o32t29t68w16a57l13d 6377388870291

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

Z98d72e15n84ě96k 40K94r12a14u37s 9456760362580

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

M77a37r84i27a89n 25K52r13a77l 6504142574847

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

I23g41o77r 75G36o11t23t68w39a45l75d 6107638510131

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

M15a72r43t54i92n 19T37u29n27z19e47r 4723752942934

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

I63g79o48r 55G81o70t35t60w18a75l22d 6897488910191

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

L27i35b73o49r 96M14o17u59č64k74a 1848217605662

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

P87e38t46r 72S44o81k95o61l 8182681417781

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

M21i34l78o79š 29Z88a37v17ř91e22l 9981365973887

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

M55i29l82o79š 95Z59a74v93ř29e46l 9751275133207

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

I23g64o27r 14G17o27t92t82w80a84l55d 6947828530741

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

I75v39a20n 73K54o35h75o77u37t 1721813146274

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