Antwort schreiben  Thema schreiben 
Seiten (4): « Erste < Vorherige 1 [2] 3 4 Nächste > Letzte »
Verfasser Nachricht
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #16
xPSP  RE: Homebrew vor Cheatern schützen

stehn :
Aber könnte man es nicht so machen das im Prüfcode mehrer Sicherheitsvariablen und wenn der Code dann umgangen (oder sonst was) wird, dann wird erst das Menü von Spiel geladen und da wird überprüft ob diese Sicherheitsvariablen den Wert haben den sie haben sollen aber da der Prüfcode umgangen wurden ist sind diese nicht stimmend und das Spiel beendet sich einfach. Wäre doch so möglich und da die "Sicherheitsvariablen" im Menü überprüft werden kann man diese Überprüfung auch nich so leicht umgehen oder ? Big Grin


Hier gibts sogar 2 Möglichkeiten (oder sogar mehr):
1. Das Überprüfen der Variablen überspringen (ist am einfachsten)
2. Den Variablen einfach vom Plugin aus nen anderen Wert geben Big Grin

03.06.2011 16:57
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Chaosduckman (Jun-8-2011)
Chaosduckman
Halbprofi
***


Beiträge: 170
Gruppe: User
Registriert seit: May 2010

Status: Offline
Danke erhalten: 43
Beitrag: #17
xPSP  RE: Homebrew vor Cheatern schützen

Ich denke, das Thema kann man abhaken.
Es wird ein Katz und Maus Spiel. Ein Wettrüsten der Entwickler und Cheater.
Ich habe gelesen das man ein Spiel zu 100% sicher machen kann, wenn alle Berechnungen auf einem Server stattfinden und der Client wirklich nur ein Ding ist, was die Daten darstellt und nur Daten empfängt.

Da uns allen dazu die Ressourcen fehlen würden, ist es eher unwarscheinlich ein Spiel zu 100% sicher zu machen. Besonders wenn das Betriebssystem derart offen ist wie am PC oder der PSP.
Also kann man Client-Side Antihacks schnell vergessen.

Was man aber in Multiplayer Spielen tun kann ist:
- Vote Kick Recht von Spielern
- Kick Recht ohne Vote vom Host/Admin
- Spieler nur in Spielpausen, z.B. wenn eine Map geändert wird oder so, auf den Server lassen
- Paketfilter
- Verschlüsselung des Netzwerkverkehrs**
- Account Ban, sprich Spieler verliert alle seine Errungenschaften.
- IP Bans*
- MAC Bans*
- GUID Bans*

*Wobei man alle Daten leicht fälschen/ändern kann.
**Angreifbar duch Man-In-The-Middle Angriffe.

Wenn ihr ein Beispiel zur einer effizienten Einsetzung eines Paketfilters haben wollte, empfehle ich die Flyff Private Server Szene mit "Toms Antihack".

Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2011 19:25 von Chaosduckman.

03.06.2011 18:33
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
ardi
Halbprofi
***


Beiträge: 114
Gruppe: User
Registriert seit: Feb 2011

Status: Abwesend
Danke erhalten: 244
Beitrag: #18
xPSP  RE: Homebrew vor Cheatern schützen

Wie hier schon öffters beschrieben wurde, ist ein 100%iger Schutz nicht möglich. Du kannst es den Cheatern allerdings schwer machen.

Eine Möglichkeit ist selbst modifizierender Code. Was ist das?

Teile des Codes (z.B. der Body einer Function) werden verschlüsselt. Bevor die Function aufgerufen wird, muss sie decodiert werden. Und am besten nach Nutzung gleich wieder codieren. Eine doppelte Stromchiffre ist nicht schlecht, weil jedes veränderte Bit Einfluß auf das gesamte Ergebnis hat. Das gleiche kannst du auch mit dem Datenbereich machen, in dem z.B. die Anzahl der Leben, Schilde o.ä. (halt die Sachen auf die es die Cheater abgesehen haben) machen.

Wie gesagt nicht 100%ig aber normale Cheating-Tool sind dafür meist überfordert.

ardi

Dieser Beitrag wurde zuletzt bearbeitet: 07.06.2011 09:27 von ardi.

07.06.2011 06:34
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Chaosduckman (Jun-7-2011), accounter79 (Jun-7-2011)
Fixie
Hungrig und Stur


Beiträge: 3.740
Gruppe: Banned
Registriert seit: Feb 2009

Status: Offline
Danke erhalten: 1558
Beitrag: #19
xPSP  RE: Homebrew vor Cheatern schützen

Dein Homebrew muss ja echt gut sein wenn du es so schützen willst..
Trotzdem ist deine Mühe umsonst die finden IMMER ein Weg..(siehe PS3 Jailbreak,PSP CFW,alle möglichen ONLINE GAMES)..
Aber wenn man wie bei CSPSP selbsternannter Admin vom eigenen Server ist,kann man sie ja verbannen Smile

07.06.2011 08:45
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #20
xPSP  RE: Homebrew vor Cheatern schützen

killabangzilla :
Trotzdem ist deine Mühe umsonst die finden IMMER ein Weg..



Das sieht aber anders aus, wenn sich der Code zur Laufzeit verändert. Sprich sich selbst erstellt.
Dann ist er zumindest vor dem decompilen sicher...

Wenn sich die Programme aber selber zur Laufzeit hin erstellen, ist es der Vorreiter zur künstlichen Intelligenz, und wer da Durchblick hat sollte lieber an eine Uni gehen und damit Geld verdienen, statt ein Homebrew zu "sichern".

MfG ferra


~~> Ist ein im Marktplatz verifizierter Verkäufer. <~~
Nulleinspeisung - openDTU Hoymiles SolarZero
07.06.2011 12:14
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
davdda (Jun-7-2011)
reggie gakil
Experte
****


Beiträge: 864
Gruppe: User
Registriert seit: Mar 2011

Status: Offline
Danke erhalten: 336
Beitrag: #21
RE: Homebrew vor Cheatern schützen

guck ma in ftb2 da wird man sofort gebannt bei bestimmten codes, was man natürlich auch umgehen kann aber noobs haben da keine chance

07.06.2011 12:21
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
accounter79
Profi
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 79
Beitrag: #22
RE: Homebrew vor Cheatern schützen

sorry bin unwissend weitgehends aber waere es aufwendig ne Code Engine zu schreiben die waehrend des betrieb ähnlich wie bei wpa2 staendig den Code neugeneriert
ginge das nicht ähnlich nachzumachen???





07.06.2011 12:28
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
accounter79
Profi
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 79
Beitrag: #23
xPSP  RE: Homebrew vor Cheatern schützen

reggie gakil :
guck ma in ftb2 da wird man sofort gebannt bei bestimmten codes, was man natürlich auch umgehen kann aber noobs haben da keine chance

aber ist das nicht bei ftb3 genauso möglich.
Oder ist das ein großer Unterschied weils nicht über den psn läuft.Was pssiert denn wenn man bei ftb3 Report statt vote drueckt.
Garnix???
Warum gibt's die Funktion denn überhaupt?!





Dieser Beitrag wurde zuletzt bearbeitet: 07.06.2011 12:34 von accounter79.

07.06.2011 12:32
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Chaosduckman
Halbprofi
***


Beiträge: 170
Gruppe: User
Registriert seit: May 2010

Status: Offline
Danke erhalten: 43
Beitrag: #24
xPSP  RE: Homebrew vor Cheatern schützen

@ardi: Das ist eine gute Idee. Aber wie willst du das Realisieren? Ich stehe zurzeit vor dem Problem, dass ich nicht weiß, wie groß die Funktion ist. Aber laut google ist das nicht zu 100% koscher... Big Grin

Edit:
Gegen PRO Hacker und Cheater habe ich nichts, denn die haben für ihre Fähigkeiten gearbeitet. Wobei jeder auf Download klicken kann und sich ein Plugin auf die PSP schieben kann...

Dieser Beitrag wurde zuletzt bearbeitet: 07.06.2011 18:49 von Chaosduckman.

07.06.2011 18:42
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
ardi
Halbprofi
***


Beiträge: 114
Gruppe: User
Registriert seit: Feb 2011

Status: Abwesend
Danke erhalten: 244
Beitrag: #25
xPSP  RE: Homebrew vor Cheatern schützen

Chaosduckman :
@ardi: Das ist eine gute Idee. Aber wie willst du das Realisieren? Ich stehe zurzeit vor dem Problem, dass ich nicht weiß, wie groß die Funktion ist.

Ich habe nicht gesagt, dass das einfach wird Smile

So. Habs jetzt nicht getestet, aber so könnte es funktionieren:

Code:
void decrypt(void *begin, void* end);
void encrypt(void *begin, void* end);

void geheim()
{
    decrypt(_begin, _end);
_begin:
    ...
    alles sehr geheim
    ...
_end:
    encrypt(_begin, _end);
    return;
}


Das setzt voraus, dass du nach dem Compilieren den Code im Binary suchst und encryptest. Wichtig: an die relocatables denken.

Chaosduckman :
@ardi: Aber laut google ist das nicht zu 100% koscher... Big Grin

Wenn du nach der Codeänderung auch immer den Cache leerst ist das alles kein Problem und 100% koscher (zumindest auf der PSP).
Unter z.B. Linux ist das Problematisch, wenn z.B. ein Programm 2x läuft. Da können sich die 2 Instanzen das gleiche text-Segment teilen und haben nur unterschiedliche data- und bss-Segmente. Oder das text-Segment ist nur Readonly.

ardi

08.06.2011 06:22
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Chaosduckman (Jun-8-2011)
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #26
xPSP  RE: Homebrew vor Cheatern schützen

ardi :

Chaosduckman :
@ardi: Das ist eine gute Idee. Aber wie willst du das Realisieren? Ich stehe zurzeit vor dem Problem, dass ich nicht weiß, wie groß die Funktion ist.

Ich habe nicht gesagt, dass das einfach wird Smile

So. Habs jetzt nicht getestet, aber so könnte es funktionieren:

Code:
void decrypt(void *begin, void* end);
void encrypt(void *begin, void* end);

void geheim()
{
    decrypt(_begin, _end);
_begin:
    ...
    alles sehr geheim
    ...
_end:
    encrypt(_begin, _end);
    return;
}


Das setzt voraus, dass du nach dem Compilieren den Code im Binary suchst und encryptest. Wichtig: an die relocatables denken.

Chaosduckman :
@ardi: Aber laut google ist das nicht zu 100% koscher... Big Grin

Wenn du nach der Codeänderung auch immer den Cache leerst ist das alles kein Problem und 100% koscher (zumindest auf der PSP).
Unter z.B. Linux ist das Problematisch, wenn z.B. ein Programm 2x läuft. Da können sich die 2 Instanzen das gleiche text-Segment teilen und haben nur unterschiedliche data- und bss-Segmente. Oder das text-Segment ist nur Readonly.

ardi


Du vergisst eines. Man kann ohne Probleme decrypt hooken, um nach dem Entschlüsseln den entschlüsselten Code in eine Binärdatei zu speichern.
Verändern kann man dann den Code auch einfach: Decrypt hooken, Adressen in den Argumenten testen, falls es der gewünschte Abschnitt des Codes ist nach dem Decrypten den Code verändern und den encrypt und den decrypt Aufruf mit NOPs überschreiben.

Beispiel... sagen wir mal, die Geheim-Funktion ist sub_00000000 und schaut so aus (natürlich nicht in echt so):

Code:
0x00000000: addiu $sp, $sp, -4
0x00000004: sw $ra, 0($sp)
0x00000008: li $a0, 0x14
0x0000000C: jal decrypt
0x00000010: li $a1, 0x24
0x00000014 - 0x000000024: ; Geheim
0x00000028: li $a0, 0x14
0x0000002C: jal encrypt
0x00000030: li $a1, 0x24
0x00000034: lw $ra, 0($sp)
0x00000038: addiu $sp, $sp, 4
0x00000040: ; hier beginnt decrypt


Man könnte jetzt folgendes machen:

Code:
u32 text_addr;
void (* decrypt) (void *begin, void *end);

void decrypt_Patched(void *begin, void *end)
{
    /* Argumente überprüfen */
    if((begin == text_addr + 0x14) &amp;&amp; (end == text_addr + 0x24))
    {
        /* Funktion decrypten */
        decrypt(begin, end);
        
        /* Datei zum dumpen öffnen, dies braucht man natürlich nur einmal machen */
        SceUID fd = sceIoOpen("ms0:/dump.dmp", PSP_O_RDWR | PSP_O_CREAT | PSP_O_TRUNC, 0777);
        if(fd &gt;= 0)
        {
            /* Entschlüsselte Funktion in die Datei schreiben */
            sceIoWrite(fd, begin, (end - begin));
            sceIoClose(fd);
        }
        
        /* Hier die Funktion beliebig modifizieren (den geheimen Code kann man ja in der dump.dmp einsehen) */
        
        /* Decrypt-Aufruf deaktivieren, wir wollen den Code ja nicht doppelt entschlüsseln */
        _sw(0, text_addr + 0x0x000C);
        
        /* Caches lehren */
        ClearCaches();
    }
    
    return;
}

int OnModuleStart(SceModule2 *mod)
{
    if(strcmp(mod-&gt;modname, "der_Modulname") == 0)
    {
        /* Text_addr speichern, damit wir nachher die Argumente testen können */
        text_addr = mod-&gt;text_addr;
        
        /* Originaladresse von decrypt speichern, brauchen wir ja nachher */
        decrypt = (void *)text_addr + 0x0040;
        
        /* Den decrypt-Aufruf auf decrypt_Patched umlenken */
        MAKE_CALL(text_addr + 0x000C, decrypt_Patched);
        
        /* Den encrypt-Aufruf deaktivieren */
        _sw(0, text_addr + 0x002C);
        
        /* Caches lehren */
        ClearCaches();
    }
    
    return (prev ? prev(mod) : 0);
}

int module_start(int args, void *argp)
{
    prev = sctrlHENSetStartModuleHandler(OnModuleStart);
    return 0;
}


Diese Blockade ist also (wenn ich deine Idee richtig verstanden habe) ebenso leicht umgänglich wie alle anderen.

Geht auf zitieren und schaut euch den Code da an (kopiert in nen Editor)... im Forum werden einize Zeichen nicht korrekt angezeigt.

mfg

Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2011 13:54 von HacKmaN.

08.06.2011 13:49
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Chaosduckman (Jun-8-2011), ~ferra~ (Jun-8-2011)
ardi
Halbprofi
***


Beiträge: 114
Gruppe: User
Registriert seit: Feb 2011

Status: Abwesend
Danke erhalten: 244
Beitrag: #27
xPSP  RE: Homebrew vor Cheatern schützen

HacKmaN :
Diese Blockade ist also (wenn ich deine Idee richtig verstanden habe) ebenso leicht umgänglich wie alle anderen.


100% gibt es nicht. Das weiß ich schon. Es ging darum den Cheatern die Sache zu erschweren. Ein Standard-Cheating-Tool ist damit (denke ich) schon überfordert.
Und wenn die Sache noch geschachtelt wird, also im decryptetem Block liegt wieder ein encrypteter usw. wirds noch schwieriger.

Man kann auch noch mehr Aufwand betreiben ...


... muß das ein wahnsinniges Hombrew sein --- ich kann es kaum aushalten. Wan wird released??? Haulol

ardi

08.06.2011 14:01
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Chaosduckman (Jun-8-2011), HacKmaN (Jun-8-2011)
Jonny0815
King
*


Beiträge: 2.906
Gruppe: User
Registriert seit: Mar 2010

Status: Offline
Danke erhalten: 1320
Beitrag: #28
RE: Homebrew vor Cheatern schützen

also ein votekick/ban ist am aller effektivsten

und wieso sollte der mac-ban umgangen werden können ?

falls du meinst spoofer ? ... nene der ändert nur das was angezeigt wird wirklich ändern kann man die mac-adresse nicht die ist in der netzwerkkarte eingetragen (oder ? Ò_ó)

Jonny0815

08.06.2011 14:02
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #29
xPSP  RE: Homebrew vor Cheatern schützen

ardi :

HacKmaN :
Diese Blockade ist also (wenn ich deine Idee richtig verstanden habe) ebenso leicht umgänglich wie alle anderen.


100% gibt es nicht. Das weiß ich schon. Es ging darum den Cheatern die Sache zu erschweren. Ein Standard-Cheating-Tool ist damit (denke ich) schon überfordert.
Und wenn die Sache noch geschachtelt wird, also im decryptetem Block liegt wieder ein encrypteter usw. wirds noch schwieriger.


Dann führt man hier eben dasselbe durch... wiederum den Decrypt-Aufruf im entschlüsselten Block hooken und hier dasselbe machen. Mit Cheaten hab ich mich nie beschäftigt (Sony-Module sind m.M.n wesentlich interessanter xD), deshalb kann nicht nachvollziehen, wie kraftfvoll diese Cheating-Tools sind.
Aber normale Cheater, welche sich nicht wirklich mit der Materie auskennen und nur ein paar Tutorials auf Youtube angeschaut haben sind damit auf jedenfall überfordert, soviel ist klar Wink
Insgesamt eine sehr gute Idee.

mfg

Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2011 14:09 von HacKmaN.

08.06.2011 14:07
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Chaosduckman (Jun-8-2011)
Chaosduckman
Halbprofi
***


Beiträge: 170
Gruppe: User
Registriert seit: May 2010

Status: Offline
Danke erhalten: 43
Beitrag: #30
xPSP  RE: Homebrew vor Cheatern schützen

Oh, ob das Homebrew wirklich so gut ist weiß ich nicht :D
Ich arbeite nur schon 1 Jahr daran, und ich habe keine Lust, das es schon nach einem Tag den Bach runter geht ;-)
Ein Release Termin steht noch nicht fest, da meine Tester erhebliche Lücken gefunden haben *schäm* :D

Außerdem habe ich gerade eine super Seite fürs Anti-Cheating gefunden. Ihr könnt ja mal reinschauen ;-) Klick


@Jonny0815: Beim TCP/IP Protokoll kann man mit Hilfe einer "Man-In-The-Middle" Attacke und einem Raw Socket ohne Probleme die MAC-Adresse spoofen und für den Socket auf der anderen Seite ändern.
Natürlich könnte ich auch die MAC Adresse bei meinem Homebrew auslesen, aber wer schützt mich dort vor einem Hook mit falschen Informationen? :D

Also ich habe schon ein Votekick System in Arbeit. Trozdem sollte es nur eine Notlösung sein, da es echt nervt alle 5 Minuten, bei einem Mapchange oder so, die neuen Cheater zu kicken. Dann will das Gewinnerteam auch nicht den Cheater kicken usw. Vielleicht kennst du das Game Crossfire? :D Dort ist alles voller Hacker und es ist selbst mit Votekick nicht mehr schön ;-)

@ardi/HacKmaN: Wow, ihr macht euch ja richtig Gedanken =)
Finde ich super von euch, verteile gleich mal Thanks :D

Ich fand den Ansatz von ardi garnicht so schlecht. Das würde No0b Cheater abhalten mit ihren Memory Editoren in meinem Programm rumzupfuschen :D

PS: Was haltet ihr von Checksummen, die auf dem GameServer ausgewertet werden?
Man könnte dazu einfach in regelmäßigen Abständen eine Checksummen wichtiger Teile meines Programms erstellen und diese zum Server senden. Um das ganze für Cracker ein bisschen schwieriger zu machen könnte man vor jeder neuen Checksumme einen zufälligen Salt vom Server empfangen und damit dann die neue Checksumme bilden. Der Server erstellt synchron eine eigene Checksumme und gleicht dann beide ab. Sollten sie nicht übereinstimmen fliegt der Spieler vom Server.

Edit: Ich fasse mal zusammen was wir so haben, verliere nämlich langsam den Überblick :D

- Module Blackliste; Durch vergleichen aller geladenen Module mit einer Blackliste; Post & Post
- AntiHook; Durch überprüfen der Entry Tables des exportierenden Modules; Post
- "Verstreuen" des Codes; Programmcode an bestimmte Orte legen; Post
- Sicherheitsvariablen; Durch Überprüfen von bestimmten Werten; Post
- Vote Kick Recht von Spielern; Post
& Post
- Kick Recht ohne Vote vom Host/Admin; Post
- Spieler nur in Spielpausen, z.B. wenn eine Map geändert wird oder so, auf den Server lassen; Post
- Paketfilter; Post
- Verschlüsselung des Netzwerkverkehrs**; Post
- Account Ban, sprich Spieler verliert alle seine Errungenschaften; Post
- IP Bans*; Post
- MAC Bans*; Post
- GUID Bans*; Post
- Verschlüsselung von Teilen des Codes; Durch einen doppelte Stromchiffre; Post



*Wobei man alle Daten leicht fälschen/ändern kann.
**Angreifbar duch Man-In-The-Middle Angriffe.

Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2011 15:07 von Chaosduckman.

08.06.2011 14:31
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
HacKmaN (Jun-8-2011)
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP Homebrew für die Vita entwickeln Nome 2 2.119 28.09.2012 18:38
Letzter Beitrag: pspzocka
xPSP Yu-Gi-Oh Vita Homebrew Pläne KICKinYaFACE 15 6.418 19.08.2012 22:55
Letzter Beitrag: BLOOD_ANGEL
Exclamation Pokemon Homebrew ? shaplayer 4 2.582 02.07.2012 13:36
Letzter Beitrag: DaRkRaPiD
xPSP Homebrew laggt! SIM sk 16 4.852 20.06.2012 19:54
Letzter Beitrag: SIM sk
xPSP PSP Trophäen Homebrew .Kenan. 18 5.585 07.09.2011 14:20
Letzter Beitrag: .Kenan.

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang