AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi vergleichen von zwei librarys im speicher
Thema durchsuchen
Ansicht
Themen-Optionen

vergleichen von zwei librarys im speicher

Ein Thema von Arnulf · begonnen am 2. Jun 2005 · letzter Beitrag vom 10. Jul 2005
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#31

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jul 2005, 16:15
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
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#32

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jul 2005, 16:19
hmm um nen wallhack für OpenGL engines zu schreiben muss mans nicht SO verkomplizieren ^^
aber wers brauch </senf>
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#33

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jul 2005, 16:41
ntürlich sonst werden die ja von nem anti cheat tool erkannt
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#34

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jul 2005, 18:33
phuu .. das klingt nach 3 jahren arbeit .
Zitat:
(1) GetProcAdderss hooken und schaun ob eine andere dll eine opengl funktion importieren will -> cheat
Darüber hab ich schon nachgedacht - ist mit madcodehook oder uallhook einfach zu machen:
Zitat:
(2) GetAsyncKeyState / GetKeyboardState hooken, wirds benutzt -> Cheat (normal machen das die spiele über directX)
Daran hab ich noch nicht gedacht, aber ich hab ziemlich schlechte erfahrungen mit so allgemeinen checks - es gibt so viele programme die so viele dinge machen - ich denk nur an TSO oder Gamevoice, das hier sicherlich probleme macht:
Zitat:
(3) änderungen an der importtabelle von der spiel enigne schauen -> nicht in der opengl32.dll -> cheat
Ich hab schon probiert import tables zu checken (opengl32.dll) - den code hab ich im forum gepostet - weiß nicht ob das gestimmt hat.
Hab ja das erste mal in deiner source pe headers gesehen . Für das spiel dürfte das ähnlich gehen...
Zitat:
(4) schauen on eine dll später nachgeladen wird
Der Anticheat funktioniert ja schon und das ist eines der dinge die ich schon mache.
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:
(5) schaun ob die opengl funktionen überschrieben werden (sehen eigentlich immer gleich aus, gibt 3 arten)
Genau darum gehts in dem thread und in brechis source denk ich oder irr ich mich da?
Zitat:
(6) Privileg von OpenProcess wegnehmen -> dll kann nicht mehr extern geladen werden
Du meinst dem Spiel openprocess wegnehmen? - naja bei jedem mapchange wird im prinzip gleich ein vid_restart gemacht und damit auch gleich eine game dll entladen und neu geladen - damit würde es vermutlich stress geben - oder irr ich mich da?
Zitat:
(7) schauen ob 2 opengl32.dll im speicher -> wenn mehr als eine dann cheat
Das mach ich bereits - ist die einfachste art einen wrapper zu erkennen. Allerdings gibts probleme mit process hide programmen.
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:
(Cool schaun ob opengl32.dll im system ordner liegt -> wenn nicht cheat
Das wäre seltsam, wozu sollte man opengl32.dll aus dem win ordner rausgeben - wrapper haben ja meißtens den gleichen namen:
Zitat:
(9) schaun ob an der treiber funktion nen jmp gesetzt wurde
Also das ist was für spezialisten - noch nie gehört sowas ...
Zitat:
(10) schaun ob opengl32.dll funktionen benutzt werden die normal nicht benutzt werden
Das ist wieder für spezialisten - ich könnte höchstens schauen, welche ogl funktionen das spiel benutzt - aber ob ich dazu die zeit finde

@NicoDE
Zitat:
// check if opengl32!glBegin is outside of the code section...
Das ist interessant denk ich, aber brechi hat recht die meißten cheats setzen nach dem patchen einfach page execute wieder zurück.

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
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#35

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jul 2005, 22:18
Zitat von brechi:
wenn es schaffst den OGCi (treiber hack) bei HL zu erkennen dann bist schon ganz gut
Lokal ist es nicht schwer. Eine generische Erkennung (der Hack selbst ist alles andere als generisch) würde eine Menge Arbeit kosten.
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.
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#36

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jul 2005, 22:22
problem ist nur das der OGCi nen treiber patched und das polymorph.

alle die erkennugnen hat CD (cheatings-death, www.uniedadmins.com) schon
und ohen hook bzw dll injection bekommt man das meiste nicht sicher hin, da du gewungendermaßen auf ReadProcessMemory angewiesen bist
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#37

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jul 2005, 22:25
Bilde von beiden Dateien einen Hash z. B. MD5 und vergleiche beide miteinander.
(macht Punk Buster auch so)
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#38

Re: vergleichen von zwei librarys im speicher

  Alt 8. Jul 2005, 00:18
Zitat:
Bilde von beiden Dateien einen Hash z. B. MD5 und vergleiche beide miteinander. Wink
(macht Punk Buster auch so)
ja ich könnte statt brechis vergleich code natürlich mit readprocessmemory durchgehen und md5 machen.
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
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#39

Re: vergleichen von zwei librarys im speicher

  Alt 8. Jul 2005, 10:41
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:
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;
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

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)
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#40

Re: vergleichen von zwei librarys im speicher

  Alt 8. Jul 2005, 11:21
Zitat von brechi:
mov eax, fs:[18h]
jmp [eax+7cch]
Randnotiz: in einigen Versionen der OpenGL32.dll (Win9x) steht der Offset in einer Variablen:
Code:
mov    eax, large fs:[00000018h]
add    eax, [g_glTableOffset] ; set in DllInitialize on DLL_PROCESS_ATTACH
mov    eax, [eax]
jmp    dword ptr [__]
wobei es beim Jump drei Arten gibt
Code:
jmp    dword ptr [eax]
; oder
jmp    dword ptr [eax+__h]
; oder
jmp    dword ptr [eax+________h]
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz