![]() |
Re: vergleichen von zwei librarys im speicher
generell würd ich mir überlegen wie du am besten einen opengl cheat erkennst.
hier mal nen paar tips dazu was eigentlich ziemlich gut ist (1) GetProcAdderss hooken und schaun ob eine andere dll eine opengl funktion importieren will -> cheat (2) GetAsyncKeyState / GetKeyboardState hooken, wirds benutzt -> Cheat (normal machen das die spiele über directX) (3) änderungen an der importtabelle von der spiel enigne schauen -> nicht in der opengl32.dll -> cheat (4) schauen on eine dll später nachgeladen wird (5) schaun ob die opengl funktionen überschrieben werden (sehen eigentlich immer gleich aus, gibt 3 arten) (6) Privileg von OpenProcess wegnehmen -> dll kann nicht mehr extern geladen werden (7) schauen ob 2 opengl32.dll im speicher -> wenn mehr als eine dann cheat (8) schaun ob opengl32.dll im system ordner liegt -> wenn nicht cheat (9) schaun ob an der treiber funktion nen jmp gesetzt wurde (10) schaun ob opengl32.dll funktionen benutzt werden die normal nicht benutzt werden das sind erstmal die wichtigsten, obwohl ich selber jede davon schon umgangen habe wenn es schaffst den OGCi (treiber hack) bei HL zu erkennen dann bist schon ganz gut :) |
Re: vergleichen von zwei librarys im speicher
hmm um nen wallhack für OpenGL engines zu schreiben muss mans nicht SO verkomplizieren ^^
aber wers brauch </senf> |
Re: vergleichen von zwei librarys im speicher
ntürlich sonst werden die ja von nem anti cheat tool erkannt :)
|
Re: vergleichen von zwei librarys im speicher
phuu .. das klingt nach 3 jahren arbeit :).
Zitat:
Zitat:
Zitat:
Hab ja das erste mal in deiner source pe headers gesehen :). Für das spiel dürfte das ähnlich gehen... Zitat:
Allerdings muß man hier etwas aufpassen, weil es ziemlich viele programme gibt die .dlls nachladen - Norton, TSO, Incredimail (die Spyware sachen), logitec maus treiber usw... - wie gesagt hab ich damit erfahrung :) Zitat:
Zitat:
Zitat:
Hier brauch ich denk ich noch eine bessere methode um .dlls zu listen. findnext und enum sind ja meißtens gehookt bei diesen process hide programmen. Zitat:
Zitat:
Zitat:
@NicoDE Zitat:
Also ich hab jetzt 20 fragen da oben stehen und bei den meißten keine ahnung wie ich das machen soll :) Die warheit ist, das Projekt ist mir schon lange über den Kopf gewachsen aber ich kann einfach nicht mehr aufhören. Wenn jemand mitarbeiten will, dann gerne - Die Basis funktioniert ja schon und es wird auch benutzt in einigen ligen. Ich hab mir auch schon überlegt das open source zu machen :) - aber das wär dann auch wieder idiotisch für einen Anticheat der vielleicht doch ernst genommen werden will lol. Naja würde mich freuen wenn jemand mitmachen will bzw. mir weiterhin hilft ... fragen gibts ja genug! Arnulf |
Re: vergleichen von zwei librarys im speicher
Zitat:
Wenn ich zuviel Zeit hätte... deine Vorschläge sind gut, aber sprengen meinen Zeitrahmen fürs Forum *g* Mir gefallen die vielen Hooks nicht wirklich, vieles würde man auch ohne erkennen können. |
Re: vergleichen von zwei librarys im speicher
problem ist nur das der OGCi nen treiber patched und das polymorph.
alle die erkennugnen hat CD (cheatings-death, ![]() und ohen hook bzw dll injection bekommt man das meiste nicht sicher hin, da du gewungendermaßen auf ReadProcessMemory angewiesen bist |
Re: vergleichen von zwei librarys im speicher
Bilde von beiden Dateien einen Hash z. B. MD5 und vergleiche beide miteinander. ;)
(macht Punk Buster auch so) |
Re: vergleichen von zwei librarys im speicher
Zitat:
ob das allerdings besser geht ist fraglich. mir stürtzt das ding ja leider immer ab - und ich weiß nicht warum. Ausserdem hat brechi ja beim posten der source schon erwähnt, das in der code section 4 bytes oftmals unterschiedlich sind. Ich kann das nicht bestätigen oder dementieren aber ich weiß, daß einige leute probleme hatten als ich einfach comparemem verwendet hab. Die meißten haben hald irgendwelche win xp skins oder teamspeak overlay verwendet und damit sind sie dann auch schon gekickt worden. Arnulf |
Re: vergleichen von zwei librarys im speicher
du musst aj gar nicht die ganze codesection der opegl32.dll prüfen, es reicht ja wenn du die für den cheat benutzen export (glBegin / glDrawElements etc) auf richtigkeit prüfst (20 bytes);
wenn du die dll aus dem speiche von dem game in deinen geladen hast geht das ja einfach über:
Delphi-Quellcode:
bei den opengl funktionen musst du dir da noch ent mal wegen der relcation tabelle sorgen machen -> die ersten 20 bytes müssen gleich sein da diese nur nen wrapper sind zum treiber in der art
h2 := //memory von der opengl32 aus dem spiel die in deine speicher geladne wurde
h1 := LoadLibrary('opengl32.dll'); p := GetProcAddress(h,'glBegin'); if CompareMem(p,cardinal(h1)-h1+h2,20) then begin end; mov eax, fs:[18h] jmp [eax+7cch] davon gibt es 3 verschiedene arten, keine braucht dafür die relocation tabelle, demnachmüssten die die gleichen sein (im spiel und selbst geladen) |
Re: vergleichen von zwei librarys im speicher
Zitat:
Code:
wobei es beim Jump drei Arten gibt
mov eax, large fs:[00000018h]
add eax, [g_glTableOffset] ; set in DllInitialize on DLL_PROCESS_ATTACH mov eax, [eax] jmp dword ptr [__]
Code:
Um zu überprüfen ob der Funktionszeiger umgeleitet wurde (wie im Dll-Beispiel von brechi), müsste man den Wrapper-Code analysieren um die Adresse zu berechnen...
jmp dword ptr [eax]
; oder jmp dword ptr [eax+__h] ; oder jmp dword ptr [eax+________h] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz