Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Petr Valigura
Redaktor
Avatar
Petr Valigura:27.6.2016 14:28

Zdravím, předělávám si zdejší Arenu z tutoriálů do WPF a přidávám tam pár drobností, jedna z nich je ta, že tam dávám možnost vytvořit si vlastní postavu a přidělit ji určitý počet bodů do "schopností", to není problém. Postavu bych chtěl potom uložit, aby se mohla načíst při zapnutí a jelikož to chci ukládat na disk a ne do nějaké databáze, tak mě zajímá otázka, jak nejlépe zabránit tomu aby uživatel otevřel ten soubor a přepsal si ho podle toho jak chce? Co se proto nejlépe hodí? Či jak by jste to řešili vy, díky :)

Napadá mě to jen nějak "zašifrovat" či uložit jako binární soubor. Ale rád bych věděl, co jsou ještě za možnosti

Odpovědět 27.6.2016 14:28
Občas je to tady dobrá klauniáda...
Avatar
pocitac770
Redaktor
Avatar
pocitac770:27.6.2016 16:10

Teoreticky nejde nic 100% zabezpečit, co běží celé (nebo alespoň logika zpracovávání dat programu) na straně klienta. To šifrování/binární soubor je asi jediné řešení proti tomu, aby uživatel přepsal staty v uloženém souboru. Ale ono to jde obejít ještě jinak. Konkrétně myslím nástroje jako Cheat Engine, díky kterým ani nemusíš zasahovat do uložených souborů, hra ti je přepíše následně sama hra při ukládání :)

Editováno 27.6.2016 16:13
 
Nahoru Odpovědět  +2 27.6.2016 16:10
Avatar
pocitac770
Redaktor
Avatar
pocitac770:27.6.2016 16:16

*v tý poslendí větě jsem se nějak zamotal, ignoruj jazyk mého kmene :D

 
Nahoru Odpovědět 27.6.2016 16:16
Avatar
Petr Valigura
Redaktor
Avatar
Odpovídá na pocitac770
Petr Valigura:27.6.2016 23:00

Díky, na ten Cheat Engine se podívám, už jen kvůli zvědavosti :)

Nahoru Odpovědět 27.6.2016 23:00
Občas je to tady dobrá klauniáda...
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:27.6.2016 23:28

Osobně to řeším tak, že hodnoty nějak nesmyslně spatlam dohromady do jednoho stringu(ten si pak zase rozkrájim, to už je předem určený jak to bude vypadat) a pak to zašifruju(stačí nečim jednoduchym a ani nijak neřešim klíče, napevno jeden nastavim v kódu a je tam), výsledný soubor s daty připomíná kočku na klávesnici, uživatel je bez šance něco změnit, a i kdyby to rozšifroval, tak mu stejně data nedávají smysl.

Ale jak už bylo řečeno, pokud se napíchneš na proces a upravíš hodnoty za chodu, tak ti tohle nepomůže. Chce to třeba mít životy v jedné proměnné, ale pak i souběžně v další, ve které je hodnota životy*2, v další životy + náboje... Uživatel ti s CheatEngine odhalí proměnnou životy a změní ji, ale program si to pořád kontroluje a zjistí, že v těch dalších dvou to nesedí a např. vyhodí uživateli hlášku, nebo si to napozadí vyřeší (skutečné životy si dopočítá z toho ostatního). Tohle mi přijde jednodušší než nějak zařizovat, aby se proces programu nedal napíchnout a měnit v něm hodnoty.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +5 27.6.2016 23:28
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Petr Valigura
Redaktor
Avatar
Petr Valigura:28.6.2016 22:00

Děkuji oběma za rady a vysvětlení :)

Nahoru Odpovědět 28.6.2016 22:00
Občas je to tady dobrá klauniáda...
Avatar
Odpovídá na Petr Valigura
Josef Kuchař (Pepa489):28.6.2016 22:07

Taky záleží v čem je to napsané pokud je to například Java nebo C#, tak se s tím nebudu mazat a prostě ten program dekompiluju, v tom případě doporučuji obfuskovat ;)

Nahoru Odpovědět  +1 28.6.2016 22:07
2x piš, jednou debuguj
Avatar
Odpovídá na Adam Ježek
Josef Kuchař (Pepa489):28.6.2016 22:13

Pokud jsi velký master, tak změníš hodnotu, zamrazíš program, JMP do "ukládací sekvence" a hotovo

Editováno 28.6.2016 22:14
Nahoru Odpovědět 28.6.2016 22:13
2x piš, jednou debuguj
Avatar
Petr Stastny
Redaktor
Avatar
Odpovídá na Petr Valigura
Petr Stastny:29.6.2016 9:10

Ja to delam tak, ze zmenim posledni cas upravy souboru na rok treba 1986 (po kazdem zapisu do souboru). Tak zjistim, jestli se mi v tom nekdo hrabal. Uzivatele nenapadne si tohle overit. Jeste to zkombinuj s tim, co psal Adam Jezek a mas to.

 
Nahoru Odpovědět  +1 29.6.2016 9:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.