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 2 von 5     12 34     Letzte »    
brechi

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

Re: vergleichen von zwei librarys im speicher

  Alt 2. Jun 2005, 23:52
warum die IDE abstürzt ist mir ein rätsel
so viel mach ich gar net im speicher rum oO

jo hab nich false zurückgegeben, kannst ja schaun was deiner meinung nach nen cheat ist, alles was net funzt wird ja inner msg box ausgegeben
  Mit Zitat antworten Zitat
Arnulf

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

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jun 2005, 22:07
Hi
leider bin ich immer noch nicht dazu gekommen das wirklich durchzuschauen
aber ich denke dein code funktioniert ziemliche gut - du weißt was du tust .

die ide ist immer dann abgestürtzt, wenn ich den cheat ins spiel injiziert hab und danach wieder entfernt - wenn er dann nochmal überprüft hat ist mir das delphi abgekackt.
Hab nur leider noch nicht mehr herumprobieren können ...
Ansonsten denk ich ist das genial - ich werd schon dazu kommen dir zu berichten wo das problem lag..

Arnulf
  Mit Zitat antworten Zitat
Arnulf

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

Re: vergleichen von zwei librarys im speicher

  Alt 7. Jun 2005, 15:24
Also ich hab mich mal kurz durchgeschaut und ein bisschen herumprobiert.

Abstürtzen tut er hier:
Delphi-Quellcode:
    for i := 0 to size-1 do
      pbyte(integer(p2)+i)^ := pbyte(integer(p2)+i)^-pbyte(integer(p1)+i)^;
    err := 0;
und zwar mit range check error.
Allerdings nur, wenn ein cheat installiert ist.

Was ich allerdings seltsam finde ist, daß er wenn ich die ganze funktion in einem eigenen programm laufen hab eigentlich funktioniert.
Wenn ich es allerdings in mein Programm einbaue dann stürtzt er ab.
Der code ist aber garantiert der gleiche und ich hatte den absturtz auch schon im separaten programm allerdings momentan gehts seltsamer weise.

der code ist deshalb sicher der gleiche, weil ichs mit copy und paste eingefügt hab.

Ich hab mich auch schon versucht ein bisschen durchzuwurschteln durch den code.
Ist im prinzip recht verständlich - wusste ja nicht, daß man einfach so den handle einer lib in einem anderen prozess bekommen kann .

wo ich allerdings aussteige ist dann bei der funktion: compareExecuteSections
vor allem deshalb, weil ich den datentyp PImageDosHeader nicht kenne und mir auch nicht klar ist was letzten endes in der struktur steht auf den der pointer zeigt.

Hoffe damit ist dir klar warum das programm nicht mehr funktioniert mir nämlich nicht.

Danke
Arnulf

Edit: Ich hab mal ein bischen nachgeschlagen - jetzt verstehe ich die source ganz - gott sei dank - wusste ja nicht, daß solche header für .exe oder .dlls existieren - sag ja ich bin etwas ab vom schuß des programmierens...
Auch interessant für mich ist wohl IMAGE_EXPORT_DIRECTORY damit wäre es doch relativ einfach simple wrapper zu entdecken - ich müsste nur alle vom spiel geladene .dlls kontrollieren.
oder lieg ich damit falsch? - Das ist ein extrem interessantes kapitel.

Arnulf
  Mit Zitat antworten Zitat
Arnulf

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

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jul 2005, 21:29
Hallo nochmal.
Leider hab ich ziemlich viel stress mit dem check

Delphi-Quellcode:
for i := 0 to size-1 do
      pbyte(integer(p2)+i)^ := pbyte(integer(p2)+i)^-pbyte(integer(p1)+i)^;
       err := 0;
das stürtzt leider mit range check error ab .

funktionieren tut es so:
Delphi-Quellcode:
    while (k < size-1) do
    begin
         if pbyte(integer(p1)+k)^ <> pbyte(integer(p2)+k)^ then inc (err);
         inc(k);
    end;
ich hab es auch mit comparemem probiert, aber brechi hat vermutlich recht und es kommt vor, daß 4 bytes unterschiedlich sind manchmal ( bei mir hat comparemem gut funktioniert ).

Jedenfalls hab ich mit der 2. ten methode das problem, daß leute mit dem neuen nvidia treiber plötzlich eine seltsame Auflösung am Bildschirm angezeigt bekommen.
Bei einem Screenshot ist die das bild aber normal.

Kann mir hier irgendjemand helfen? - wäre nett, wenn du mir noch ein paar tips dazu geben könntest Brechi

Arnulf
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#15

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jul 2005, 22:46
Bei Pointern sollte immer mit Cardinal-Cast gearbeitet werden (nicht Integer).
  Mit Zitat antworten Zitat
Arnulf

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

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jul 2005, 23:16
hi
was meinst du mit cardinal-cast?
ich mein ich kann natürlich integer gegen cardinal austauschen was aber vermutlich nicht viel unterschied macht.
Wenn doch, dann würde es mich interessieren welchen .
Arnulf
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#17

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jul 2005, 23:17
Cardinal ist vorzeichenlos. Deswegen!
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#18

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jul 2005, 23:18
Pointer haben kein Vorzeichen. Deswegen kann es bei einem Cast auf Integer auch zu Range-Check-Fehlern kommen...
  Mit Zitat antworten Zitat
Arnulf

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

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jul 2005, 23:23
Ja das ergibt sinn.
allerdings in dem zusammenhang nicht wirklich.
Hier geh ich ja nur den ganzen speicherbereich durch und zähle nach oben - wie sollte ich da eine negative zahl rausbekommen.
so groß ist der bereich nicht.
integer ist ja signed 32 bit also –2147483648..2147483647.

ich will echt nicht blöd fragen aber ich versuche immer etwas zu verstehen bevor ich es abschreibe hehe

Arnulf
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#20

Re: vergleichen von zwei librarys im speicher

  Alt 5. Jul 2005, 23:28
Zitat von Arnulf:
pbyte(integer(p2)+i)^-pbyte(integer(p1)+i)^;
Das Byte in P1+i könnte größer sein als das in P2+i -> Range-Check.
Folgendes könnte trotz Range-Check funktionieren (habe gerade keine Delphi zur Hand):Byte(PByteArray(p2)[i] - PByteArray(p1)[i]);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 04:43 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