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

P61e11t12r 60N13o54v41e92k 6842172942856

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

0/−1
5.7.2018 1:38

J27i95ř13í 54J23u38ř70i33c92a 2128483381

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

J52i93ř15í 29H75a24n24d51l 8784679212

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

M23a50r22t93i58n 95Z38i53k66m37u58n64d 7405125814461

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

M12a40r39t25i33n 58B17e55r82a77n 6279785436381

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

+5/0
3.7.2018 13:50

K36a74t13e55ř89i59n64a 42D41r79a36h74o89k72o22u91p33i82l73o82v84á 9366541192133

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

M67a66r44t76i79n 62Z10i26k90m33u13n74d 7805465494141

Díky!

0/0
3.7.2018 16:42

J32a14n 64B35a59b46j25a31k 5105135439932

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

+11/0
3.7.2018 7:12

I16g82o27r 70G45o88t54t81w83a78l41d 6627448500851

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

Z97d40e54n82ě77k 50K77r30a10u94s 9726860452650

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

I40g43o85r 55G27o98t29t86w24a29l97d 6617698710691

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

O69n23d48ř60e15j 70S48e31k62e64r73a 1167876536839

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

I10g32o23r 48G97o32t24t63w24a62l70d 6787428910231

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

Z15d80e18n16ě60k 43K67r26a96u43s 9776780212490

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

M39a54r45i86a91n 15K59r62a46l 6574152544607

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

I76g81o72r 77G34o26t80t55w66a54l53d 6857678130871

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

M45a68r86t82i84n 18T77u75n78z72e81r 4383752572744

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

I63g55o82r 60G94o47t71t27w95a32l54d 6947848680771

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

L83i13b69o89r 75M63o72u96č75k83a 1978197895492

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

P58e68t16r 91S21o70k92o90l 8302401707481

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

M46i41l87o10š 49Z10a90v75ř12e90l 9611215833777

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

M86i70l84o50š 14Z96a22v58ř89e40l 9421335903777

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

I56g52o42r 30G53o43t75t72w57a74l91d 6327178970861

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

I46v83a37n 15K50o85h51o85u32t 1271213586164

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