|
Verfasser |
Nachricht |
Chaosduckman
Halbprofi
Beiträge: 170
Gruppe: User
Registriert seit: May 2010
Status:
Offline
Danke erhalten: 43
|
Homebrew vor Cheatern schützen
Hallo Leute,
bald ist es so weit.
Die erste Beta Version meines kleinen Muntermachers geht an die Tester.
Doch davor muss ich noch ein entscheidenes Feature einbauen.
Der Antihack
Ich habe mir schon viele verschiedene Lösungen ausgedacht und alle sind mehr oder weniger leicht zu umgehen. Aber ich denke es ist ein guter Anfang die geladenen Module zu überprüfen und einen AntiHook zu installieren.
Mit den Modulen ist das kein großes Thema. Einfach alle Module beim Start und in regelmäßigen Abständen mit einer Blackliste abgleichen lassen.
Jetzt komme ich aber zum Hauptthema: Der AntiHook.
Viele bekannte Anti Cheat Softwares benutzen diese Methode auf dem PC.
Doch ich selber habe keine Ahnung wie ich so etwas Implementieren sollte.
HacKmaN hat mal folgendes zum Hooken geschrieben:
[...] du machst beim (exports-) hooken nichts anderes als eine Adresse im Entrytable des Moduls zu ändern [...]
Wie kann ich bei einem Modul auf die Entrytable zugreifen?
Denn die ModuleMgr Library ist da an Informationen sehr raw.
Ich hoffe ihr könnt mir helfen, und ich freue mich auf eure Antworten =)
|
|
02.06.2011 09:23 |
|
Folgende User bedanken sich: |
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Homebrew vor Cheatern schützen
Unmöglich zu realisieren. Das Einzige (was mir im Moment einfällt) was du machen kannst, ist sceKernelFindModuleBy****** und sctrlHENSetStartModuleHandler deaktivieren, aber das bringt auf Dauer auch nichts, denn man kann einfach manuell im RAM nach dem Modul suchen.
Zum Entrytable:
SceModule2 *mod = sceKernelFindModuleByName("BLA");
SceLibraryEntryTable *entry = (SceLibraryEntryTable *)mod->ent_top;
int i, j;
for(i = 0; i < mod->ent_size * 4; i++)
{
if(!strcmp(entry->libname, "BLAAAAAA"))
{
u32 *table = (u32 *)entry->entrytable;
int size = entry->stubcount + entry->vstubcount;
for(j = 0; j < size; j++)
{
table[j + size] = Zeiger_Zur_neuen_Funktion;
}
}
}
mfg
//EDIT: Wieso werden hier manche Zeichen im Code so seltsam angezeigt? >.<
Dieser Beitrag wurde zuletzt bearbeitet: 02.06.2011 16:14 von HacKmaN.
|
|
02.06.2011 16:12 |
|
Folgende User bedanken sich: |
|
Chaosduckman
Halbprofi
Beiträge: 170
Gruppe: User
Registriert seit: May 2010
Status:
Offline
Danke erhalten: 43
|
RE: Homebrew vor Cheatern schützen
Danke, für den Code
Zwar sind mache Zeichen echt komisch aber ich weiß worauf du hinaus willst xD
Mhh okay schade.
Naja aber das mit den Entry Tabels reicht schon
Ich könnte ja bei jedem Modul mit einer relevanten Funktion den Entry-Table auslesen und überprüfen ob die Funktion gehookt wurde und dementsprechend reagieren. Damit die Abfrage nicht an sich manipuliert werden kann, werde ich für die Suche wohl leider eine eigene nicht importierte Funktion schreiben müssen.
Naja werde mir mal die einschlägigen Funktionen ansehen.
Trozdem Danke HacKmaN!
Du hast mir, wieder mal, sehr geholfen.
Ich würde mich freuen wenn noch mehr "Pros" normalen Usern helfen würden.
Hast dir dein Thanks verdient ;D
|
|
02.06.2011 18:42 |
|
|
|
ToXXiN
King
Beiträge: 2.282
Gruppe: User
Registriert seit: Jan 2011
Status:
Offline
Danke erhalten: 1900
|
RE: Homebrew vor Cheatern schützen
Scheint ja ein größeres HB zu werden, wenn du schon an anticheat denkst.
Gibts iwo ein Vorstellungsthread/ANkündigungsthread. Denn es intressiert mich, was du gerade Codest
|
|
02.06.2011 19:29 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Homebrew vor Cheatern schützen
Danke, für den Code
Zwar sind mache Zeichen echt komisch aber ich weiß worauf du hinaus willst xD
Mhh okay schade.
Naja aber das mit den Entry Tabels reicht schon
Ich könnte ja bei jedem Modul mit einer relevanten Funktion den Entry-Table auslesen und überprüfen ob die Funktion gehookt wurde und dementsprechend reagieren. Damit die Abfrage nicht an sich manipuliert werden kann, werde ich für die Suche wohl leider eine eigene nicht importierte Funktion schreiben müssen.
Naja werde mir mal die einschlägigen Funktionen ansehen.
Trozdem Danke HacKmaN!
Du hast mir, wieder mal, sehr geholfen.
Ich würde mich freuen wenn noch mehr "Pros" normalen Usern helfen würden.
Hast dir dein Thanks verdient ;D
Bringt wiederum alles nichts... hab vorhin vergessen zu sagen, dass Plugins VOR Homebrews geladen werden. Das heißt, man kann einfach ein Plugin laufen lassen, welches deinen Code deaktiviert. Nichts einfacher als das. Dagegen kannst du leider nichts machen.
mfg
|
|
02.06.2011 19:29 |
|
Folgende User bedanken sich: |
|
Chaosduckman
Halbprofi
Beiträge: 170
Gruppe: User
Registriert seit: May 2010
Status:
Offline
Danke erhalten: 43
|
RE: Homebrew vor Cheatern schützen
Mhhhh also was schlägst du vor?
|
|
02.06.2011 22:44 |
|
|
|
PSP_Lord
Durchstarter
Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010
Status:
Abwesend
Danke erhalten: 133
|
RE: Homebrew vor Cheatern schützen
Wäre es nicht möglich, einfach die Modules der gängigen Cheat-devices (mkultra, nitePR, cwcheat,...) über
sceKernelStopModule (SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option)
zu stoppen und dann mit
sceKernelUnloadModule (SceUID modid)
diese modules dann aus dem Speicher entfernen?
Da dann ja die cheat modules nicht mehr geladen sind, kann man somit auch nicht mehr cheaten.
|
|
03.06.2011 13:33 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Homebrew vor Cheatern schützen
Wäre es nicht möglich, einfach die Modules der gängigen Cheat-devices (mkultra, nitePR, cwcheat,...) über
sceKernelStopModule (SceUID modid, SceSize argsize, void *argp, int *status, SceKernelSMOption *option)
zu stoppen und dann mit
sceKernelUnloadModule (SceUID modid)
diese modules dann aus dem Speicher entfernen?
Da dann ja die cheat modules nicht mehr geladen sind, kann man somit auch nicht mehr cheaten.
Plugins (auch Cheat Plugins, jaaaa) werden VOR dem Homebrew geladen. Damit kann man dann ganz leicht den Anti-Cheat-Code mit NOPs überschreiben.
|
|
03.06.2011 13:39 |
|
|
|
PSP_Lord
Durchstarter
Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010
Status:
Abwesend
Danke erhalten: 133
|
RE: Homebrew vor Cheatern schützen
Aber dafür müssten doch die Entwickler dieser Plugins ja erst einmal den Anti-Cheat-code finden (was ja evt. auch nicht so leicht ist). Und da viele dieser Plugins nicht mehr gewartet werden könnten solche Methoden ja funktionieren.
|
|
03.06.2011 14:12 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Homebrew vor Cheatern schützen
Aber dafür müssten doch die Entwickler dieser Plugins ja erst einmal den Anti-Cheat-code finden (was ja evt. auch nicht so leicht ist). Und da viele dieser Plugins nicht mehr gewartet werden könnten solche Methoden ja funktionieren.
Solche Codes sind zu Meist einfach zu finden. Ist wie bei Blockaden von Sony^^
|
|
03.06.2011 14:17 |
|
Folgende User bedanken sich: |
|
Arktos
Junior Mitglied
Beiträge: 47
Gruppe: User
Registriert seit: May 2011
Status:
Offline
Danke erhalten: 8
|
RE: Homebrew vor Cheatern schützen
Lass doch einfach dein HB überprüfen, ob im Game alles normal abläuft, wenn nicht geht das HB aus. Ganz grob gesehen würde ich es so machen.
|
|
03.06.2011 15:23 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Homebrew vor Cheatern schützen
Lass doch einfach dein HB überprüfen, ob im Game alles normal abläuft, wenn nicht geht das HB aus. Ganz grob gesehen würde ich es so machen.
Und wieder dasselbe... Plugins werden vor dem Homebrew gestartet, also kann man mit einfachen Plugins einfach deinen Prüfcode deaktivieren
|
|
03.06.2011 15:27 |
|
|
|
Arktos
Junior Mitglied
Beiträge: 47
Gruppe: User
Registriert seit: May 2011
Status:
Offline
Danke erhalten: 8
|
RE: Homebrew vor Cheatern schützen
Aber wie kann man den Prüfcode einfach so "herrausfiltern", wenn man den irgentwo "verstreut" findet man das doch nicht so leicht und das Cheat-Programm deaktiviert eventl. was anderes.
|
|
03.06.2011 15:38 |
|
|
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
RE: Homebrew vor Cheatern schützen
Aber wie kann man den Prüfcode einfach so "herrausfiltern", wenn man den irgentwo "verstreut" findet man das doch nicht so leicht und das Cheat-Programm deaktiviert eventl. was anderes.
Sowas zu finden ist absolut kein Problem... man muss nur wissen, wonach man sucht (ist wie bei den Sony Modulen^^).
PSPDecompiler + PRXTool FTW
Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2011 15:57 von HacKmaN.
|
|
03.06.2011 15:56 |
|
|
|
dark-awesome
stehn
Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010
Status:
Offline
Danke erhalten: 2192
|
RE: Homebrew vor Cheatern schützen
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 ?
Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2011 16:07 von dark-awesome.
|
|
03.06.2011 15:58 |
|
Folgende User bedanken sich: |
|
|