Hallo,
gibt es eine Möglichkeit den Hexcode eines Programmes auszulesen?
Ich denke einige kennen einen HexEditor dieser Hex Code würde ich gerne haben und in eine TXT schreiben.
Warum?
Ich möchte mir einen Cheat bauen... Nein Spaß
Ich möchte mir ein AV basteln welches Trojaner überprüft und im HexCode gleiche Daten vergleicht.
Ich denke es gäbe zwar auch andere möglichkeiten aber die scheint mir am Einfachsten
Hex Code eines Programmes auslesen
-
- [ gelöst ]
-
ProblemUser -
15. April 2011 um 17:03 -
Geschlossen -
Erledigt
-
-
FileOpen mit 2.Parameter = 16 öffnet Dateien im Binärmodus. Dann musst du nur noch FileRead anwenden und hast deine Hexadezimaldaten ;).
-
Hey,
vielen Dank für die Schnelle Antwort klappt super! -
Das geht einfacher, lade deine Datei einfach mit fileread() (nicht binär)
Dort kannst du dann mit StringInstr() schnell nach Übereinstimmungen suchen.
Stringinstr() verarbeitet wie die meisten anderen Stringfunktionen auch Steuerzeichen und Nullbytes.
Vorteil: doppelt so schnell, da nur halb so viele Daten wie bei HEX verglichen werden müssen.... -
Bei einem AV, ist das aber schlecht, da man hier dann Doppeltsolange braucht übereinstimmungen zu finden, da man nur halb so viele Daten hat. Ich bin soweit schon zu Frieden. Vlt. werde ich mal auf dein Vorhaben eingehen!
Trotzdem danke! -
Zitat
da man hier dann Doppeltsolange braucht übereinstimmungen zu finden
Dann nochmal langsam,
BINÄR=HEX=2 ZEICHEN PRO BYTE=LANGSAMBYTE=1 ZEICHEN= HALBE GRÖSSE= SCHNELL
Oder willst du mir erzählen, dass man 100 MB Daten schneller durchsuchen kann als 50 MB?
Weiterhin ist zumindest bei kurzen Suchstrings die Fehlermöglichkeit doppelt so hoch!
Gesetzt den Fall, ich suche die 4 Bytes 0xAABBCCDD in einem (Binär)String mit 24 Bytes, also in 0x1A2B3C4D5AABBCCDD1234567, dann wird eine falsche Fundstelle gefunden!
In dem String 0x1A 2B 3C 4D 5A AB BC CD D1 23 45 67 sind nämlich mitnichten die 4 Bytes AA BB CC DD enthalten!Lädt man aber die Bytes, dann erhält man den 12Byte langen String +<MZ«¼ÍÑ#Eg (entspricht 0x1A2B3C4D5AABBCCDD1234567)
und in diesem werden die 4 Bytes ª»ÌÝ (entspricht 0xAABBCCDD) eben NICHT gefunden...
Mal abgesehen davon, dass die Suche aufgrund "halber" Größe doppelt so schnell abläuft....