abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 21:55 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 0
    14.6. 12:11 | IT novinky

    Google Blog ČR informuje, že mobilní aplikaci Gemini a NotebookLM lze používat už také v Česku.

    Ladislav Hagara | Komentářů: 18
    14.6. 11:33 | Nová verze

    Byla vydána nová major verze 8 duálně licencovaného open source frameworku JUCE (Wikipedie, GitHub) pro vývoj multiplatformních audio aplikací.

    Ladislav Hagara | Komentářů: 0
    14.6. 11:11 | IT novinky

    Od 18. června bude možné předobjednat notebook DC-ROMA RISC-V LAPTOP II od společnosti DeepComputing s osmijádrovým 64-bit RISC-V AI CPU a s předinstalovaným Ubuntu.

    Ladislav Hagara | Komentářů: 2
    13.6. 23:55 | Nová verze

    Byla vydána verze 1.79.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    13.6. 14:33 | Zajímavý článek

    Byly zveřejněny výsledky průzkumu (infografika) mezi uživateli FreeBSD.

    Ladislav Hagara | Komentářů: 0
    13.6. 13:22 | IT novinky

    Na konferenci DevConf.CZ 2024 je na stánku Furi Labs prezentován linuxový telefon FuriPhone FLX1. Jeho cena 499 dolarů.

    Ladislav Hagara | Komentářů: 17
    13.6. 00:11 | Nová verze

    Bylo vydáno Eclipse IDE 2024-06 aneb Eclipse 4.32. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 1
    12.6. 22:00 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-2 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 0
    12.6. 15:44 | Nová verze

    Po roce od vydání verze 15.5 bylo vydáno openSUSE Leap 15.6. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Záhadné kódovanie

    26.1.2011 23:17 Martin Habovštiak
    Záhadné kódovanie
    Přečteno: 470×
    Příloha:
    • freq (15105 bytů)
    Čaute,

    vie niekto, čo za kód by to mhol byť, keď obsahuje iba veľké písmená anglickej abecedy (A-Z)?
    Kód je použitý v tzv. sadách českej hry Hafík (hafik.zde.cz - nájdete tam aj samotnú hru), napísanej vo Visual Basic 6
    Keďže som ako projekt do školy urobil veľmi podobnú hru, rád by som spravil konvertor aby sa dali použiť aj v nej...

    O súboroch som zistil toto:

    • file nieco.hf: ASCII text, with very long lines, with CRLF line terminators
    • Každý súbor má niekoľko riadkov (v závislosti od počtu tzv. komnát - "levelov")
    • Dĺžka každého riadka je deliteľná tromi - pravdepodobne je to zaznamenané nejako po trojiciach
    • Akákoľvek zmena môže teoreticky ovplyvniť celý súbor (t.j. ak v editore urobím malú úpravu - napr. pridám drahokam v nejakej komnate, spôsobí to, že sa skoro celý súbor zmení)
    • Pravdepodobne ide o samoopravný kód - náhodná zmena v súbore nespôsobila chybu, ani pád hry

    Keď som analyzoval text po trojiciach znakov, dospel som k týmto zisteniam:

    • Prvý znak každej trojice môže byť A-Z
    • Druhý znak každej trojice môže byť A-N
    • Tretí znak je najzvláštnejší: môže byť A-O okrem D H L (každé 4. písmeno chýba)
    • Teoreticky existuje 26*14*15=5460 kombinácií ale reálne ich je použitých iba 2111
    • Frekvenčnú analýzu trojíc nájdete v prílohe

    Tušíte, čo by to mohlo byť? Vopred vďaka za všetky užitočné informácie!
    Martin
    P.S.: pre tých, čo nechcú nič sťahovať, tu je prvý riadok jedného zo súborov:GFEFHJGKKFIMGLIGDEFNSFKF

    Computers are like air conditioning - both stop working properly, when you open windows...

    Řešení dotazu:


    Odpovědi

    27.1.2011 05:01 JS
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Jdes na to spatne. Vzdyt mas ten vnitrni editor, takze to znamena, ze musis zkouset vyrobit vlastni level, a pak se podivat, co se ulozilo do toho souboru. Jenom koukat do toho souboru ti da zbytecne zabrat.

    Zkus treba udelat level kde neni vubec nic, co ti to da. Nebo level ruznych rozmeru. A pak zmenit jen jedno misto, a porovnat.
    27.1.2011 12:21 Martin Habovštiak
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Takto som to skúšal: spravil som 2 levely, ktoré sa líšili v práve jednom mieste - výsledok: oba súbory boli skoro úplne odlišné (nezmenila sa iba ich veľkosť a veľkosť jednotlivých riadkov) - preto mi napadlo, že by to mohol byť samoopravný kód, čo sa potvrdilo... Level rôznych rozmerov mi nenapadol: to ešte skúsim...
    Computers are like air conditioning - both stop working properly, when you open windows...
    27.1.2011 20:55 JS
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Hm, tak to uz nevim. Ja jsem jeden cas zkousel rozlousknout levely z Pushoveru, a nepovedlo se mi to, protoze tam byl nejspis take samoopravny kod - hra detekovala pozmeneny level jako vadny. Ale zjevne nekdo napsal klon Pushoveru, ktery je dokaze precist, takze ten clovek, co to rozlustil, by asi zvladl i toto.

    (Mimochodem, to je dalsi vec, co muzes zkusit, zmenit primo soubor s levelem, popr. hledat nejake 2 levely, ktere jsou v zakodovane podobe co mozna nejpodobnejsi.)
    27.1.2011 20:59 JS
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    A jeste, co znamena, ze se soubor zmeni? Cim to porovnavas? Muze se stat, ze se maly kousek smaze, a pak binarni porovnani znaku na stejnych pozicich selze. Mozna by bylo dobre zkusit neco jako editacni vzdalenost. Nebo zkusit pocitat mnozstvi trojic a dvojic znaku a zjistovat, jak se to zmeni s tou zmenou.
    27.1.2011 21:11 JS
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Jeste me, pri pohledu na ty frekvence, napada jedna moznost. Autor proste kazde pole zakoduje nahodne do tripletu, a tim, ze se to znova ulozi, se ty triplety zmeni. Zjevne, triplety s frekvenci kolem 27-28 tisic, 14 tisic, 11 tisic a 7 tisic jsou nejcastejsi, takze bych prevedl kazdy z techto na stejny znak (a ostatni na jiny), a pak si ty znaky zkusil vykreslit podle velikosti hraci plochy nebo nejak podobne. Treba z toho vypadne neco uzitecneho.
    27.1.2011 21:16 JS
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Mimochodem, podobnou metodu - kodovani znaku na nahodne triplety tak, ze to lze dekodovat na ty znaky - jsem videl v jistem komercnim produktu (shodou okolnosti take napsany ve VB, hadam ze to budou mit ze stejneho zdroje) na obfuskaci hesla (pri posilani po siti, aby se nezobrazovalo v logu), coz je krajne odporne, bohuzel jsem s tim nemohl nic delat.
    27.1.2011 22:50 Martin Habovštiak
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Na toto môžem odpovedať iba jediným: ĎAKUJEM!!! Fakt, vyzerá to tak, všetko čo teraz potrebujem je už len zistiť ktorá trojica, čo kóduje. Verím, že časom to rozlúsknem celé. Takže moje výsledky:
    1. Prvý riadok obsahuje názov sady.
    2. Druhý riadok obsahuje popis sady a meno autora.
    3. Tretí riadok obsahuje e-mail autora.
    4. Všetky ďalšie riadky s výnimkou posledného obsahujú popisy jednotlivých komnát ("levelov") (vrátane názvu, popisu a vlastností)
    5. Posledný riadok má konštantnú dĺžku a pravdepodobne obsahuje nejaký checksum určený na opravu...
    Ešte raz ďakujem za všetky nápady!
    Computers are like air conditioning - both stop working properly, when you open windows...
    27.1.2011 06:37 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Je to proste proprietarny format tej hry. Aspon teda pochybujem, ze by to bolo cokolvek standardizovane. Takze odpoved najdes but v dokumentacii dodavatela hry, v jeho zdrojovych kodoch, alebo ak nic z toho nie je k dispozicii reverznym inzinierstvom, ako bolo naznacene vyssie. Mozno by stacilo opytat sa dodavatela hry - formaty "map" a podobnych datovych suborov zvycajne nie su tajne, skor naopak.
    27.1.2011 12:31 Martin Habovštiak
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    No jedine reverzným inžinierstvom, ale tu mi už nič moc nenapadá. Skúsim ešte napísať autorovi ale
    1. Stránku neaktualizoval už roky a tvorba novej verzie hry je mŕtva
    2. Asi by nebol veľmi nadšený, keby zistil, že mu to chcem reimplementovať a navyše ako open source :D (open source vraj nemá rád...)
    Computers are like air conditioning - both stop working properly, when you open windows...
    MaFy avatar 27.1.2011 07:08 MaFy | skóre: 24 | blog: kecy | Praha
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    "Našel jsem způsob, jak optimalizovat velikost záznamu. Doposud se zapisovalo každé náhodné číslo, které mohlo ovlivnit hru. Ve formátu záznamu pro Hafíka 2 (s koncovkou ".hf2r") se zapíše jen jedno číslo, které označuje celou potřebnou sekvenci dalších náhodných čísel. Tím se dosáhne úspory velikosti přes 90%. Bohužel se mi možná nepodaří udržet zpětnou kompatibilitu, takže asi nepůjdou přehrávat záznamy z předchozích verzí Hafíka. A převést je do nového formátu bude nemožné."
    Lidé se dělí do 10 skupin. Na ty, co rozumí binárnímu kódu a na ty ostatní...
    27.1.2011 12:26 Martin Habovštiak
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    To je úplne mimo: to sa týka záznamu z hrania (akoby video) a navyše jeho novej verzie, ktorá už niekoľko rokov nie je hotová. Záznam ma veľmi nezaujíma - chcem vedieť, ako fungujú "mapy".
    Computers are like air conditioning - both stop working properly, when you open windows...
    27.1.2011 23:03 chrono
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Celé to "kódovanie" funguje takto:

    zoberú sa tri písmená (spracováva sa to po riadkoch) a od každého sa odpočíta 0x41 (kvôli nasledujúcemu popisu si ich "uložíme" do premenných A, B a C)

    potom sa v celo číselnej aritmetike urobí ((C/4) + 10) * A + B

    Teda napr. pre FKG dostaneme:
    A = 0x46 - 0x41 = 5
    B = 0x4B - 0x41 = 10
    C = 0x47 - 0x41 = 6
    
    o = ((6 / 4) + 10) * 5 + 10 = 0x41 = 'A'
    PS: Po dekódovaní sú tam aj nejaké "riadiace" znaky, ale nechce sa mi zisťovať, čo znamenajú (pravdepodobne sú tam rozmery mapy a podobné veci, ale keď si vyrobíš pár máp, snáď na to prídeš aj sám).
    27.1.2011 23:11 chrono
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Inak to GFEFHJGKKFIMGLIGDEFNSFKF znamená GCRISESA.
    27.1.2011 23:23 Martin Habovštiak
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    WOW! Si dobrý! Vďaka!!!
    Computers are like air conditioning - both stop working properly, when you open windows...
    28.1.2011 07:21 JS
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Cool, jak jsi na to prisel?
    28.1.2011 10:07 chrono
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Spustil som Windows a OllyDbg. Nastavil som breakpointy na funkcie __vba??? (išlo o dve funkcie, ktorých názov si už nepamätám, ale jedna otvárala súbor a druhá z neho čítala riadok). Počkal som, kým sa otvorí nejaký súbor s mapami a potom to už bolo len krátke krokovanie a pochopenie, ako vo VB6 vyzerajú premenné v pamäti (integer má na začiatku 2 a potom samotné číslo, float64 zase 5). :)
    28.1.2011 10:50 JS
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Hm, diky, to OllyDbg se hodi vedet (od dob DOSu jsem se nikdy binarky reverzne inzenyrovat nepokousel). Zda se, ze to neni az tak tezke, jak jsem si myslel, ze to je.
    28.1.2011 11:21 Martin Habovštiak
    Rozbalit Rozbalit vše Re: Záhadné kódovanie
    Ďakujem vám obom! Keby ste mali záujem na launchpade mám zdrojáky mojej alternatívy. Je to v packale (lazarus), čo som si samozrejme nevybral dobrovoľne. Mám aj deb a aur balíčky ale tie nechcem šíriť verejne, lebo sa v nich nachádza grafika z Hafíka... (hmm chcelo by to niekoho, kto vie kresliť ;))
    Computers are like air conditioning - both stop working properly, when you open windows...

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.