![]() |
Chat messages aus dem speicher eines programms auslesen?
Hallo :)
ich hab schon die "spiele trainer" topics durchgesehen, aber was ich möchte ist nicht wirklich dabei. Zu meinem Projekt/Problem : Dem Spiel "Freelancer" liegt eine "FLserver.exe" bei mit der jeder seinen eigenen server betreiben kann. Dieser wird dann von meinem PC aus gehosted. Ich möchte nun ein programm schreiben welches alle Chatnachrichten loggt (und in eine txt speichert), daher alles was auf meinem server von spielern geschrieben wird. Ich hab mir schon Tsearch, MemHack und Co. angesehen, was mich aber nicht viel weiterbringt da ich dort nur den speicher den der Freelancer server benutzt nach bestimmten werten durchsehen kann. Ein solches programm (zum Chat logging) existiert bereits, ich möchte allerdings mein eigenes schreiben bzw. wissen wie die es gemacht haben, des lern effekts wegen :) was ich bis jetzt weiss ist der memory start: $00400000, und das ende: $02968000 Hab den speicher schon mal in the txt gespeichert, dann ingame auf dem server was geschrieben und wieder den speicher des Servers gespeichert, die beiden files verglichen, aber es hat sich nix geändert :| Im prinzip soll also aus dem Speicher des Servers nur die nachrichten gelesen werden und gespeichert werden in einer txt, es soll ja nix verändert werden. Wie kann ich rausbekommen wo die nachrichten im speicher sind/erscheinen und diese stelle ständig überwachen/loggen ? Dies ist das erste mal das ich mit dem speicher eines programms arbeite, sorry für (eventuelle) nooby fragen, hab mich wirklich schon umgesehen, konnte aber nix finden was mir hilft. ach und...chats loggen könnte ich natürlich nur auf meinem server, in meinem speicher, nicht auf anderen Servern :wink: Für eventuelle Hilfe bin ich im voraus dankbar, Grüße aus Hamburg, Rhodan |
Re: Chat messages aus dem speicher eines programms auslesen?
hmm, ich hab jetzt soweit die addressen der nachrichten im speicher gefunden wie es aussieht.
Wüsste vielleicht jemand wie ich die in ein memo z.B bekomme so das ich sie dann als txt speichern kann? ich bin schon über
Delphi-Quellcode:
und
ReadProcessMemory
Delphi-Quellcode:
gestolpert wo ich mir dachte das die vielleicht nützlich sein können. aber wie ich die adressen (nachrichten) in einem stream bekomme, bzw. diesen dann ins memo ist mir ein rätsel :oops:
TMemoryStream.Create
hat jemand einen tip? thx |
Re: Chat messages aus dem speicher eines programms auslesen?
Moin Rhodan,
mit ReadProcessMemory wird es schon gehen. Wie hast Du denn die Adresse ermittel? |
Re: Chat messages aus dem speicher eines programms auslesen?
naja.....
wenn ich ganz ehrlich bin hab ich das andere programm mit dem chat logging auch möglich ist disassembliert. :oops: die adressen sind immer gleich. zumindest HOFFE ich das die stimmen, bzw das ich damit arbeiten kann...hier ein bsp:
Delphi-Quellcode:
naja, das ist das was vom code bzw. der adresse noch übrig ist :-/ das ist ein beispiel für den Privat (pri) und Group (grp) Chanel in dem man in Freelancer messages schicken kann.
br.s loc_0_148D4
loc_0_14888: ldarg.0 ldfld class [mscorlib]System.IO.StreamWriter FLAntiCheat.MainForm::chatStream call value class [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() stloc.s 0x27 ldloca.s 0x27 call class System.String [mscorlib]System.DateTime::ToString() ldstr ":pri" call class System.String [mscorlib]System.String::Concat(class System.String, class System.String) callvirt void [mscorlib]System.IO.TextWriter::Write(class System.String) br.s loc_0_148D4 loc_0_148AD: ldarg.0 ldfld class [mscorlib]System.IO.StreamWriter FLAntiCheat.MainForm::chatStream call value class [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() stloc.s 0x27 ldloca.s 0x27 call class System.String [mscorlib]System.DateTime::ToString() ldstr ":grp" call class System.String [mscorlib]System.String::Concat(class System.String, class System.String) callvirt void [mscorlib]System.IO.TextWriter::Write(class System.String) br.s loc_0_148D4 loc_0_148D2: ldc.i4.0 stloc.2 loc_0_148D4: ldloc.2 brfalse unk_0_15392 ldarg.2 sieht für mich nach assembler oder ähnlichem hier aus. "loc_0_148D4" könnte ne position darstellen oder? :) zumindest dachte ich mir das. gruß rhodan PS: sry, als delphi code habe ich das nur der übersichtlichkeit halber dargestellt. :wink: |
Re: Chat messages aus dem speicher eines programms auslesen?
hmm, ok die addressen haben sich als falsch herausgestellt. ich hab die nachrichten jetzt selbst gefunden.
ich hab im spiel etwas geschrieben, dies mit dem UTF converter ( ![]() Aber wie kann ich sicherstellen das mein programm die richtigen addressen finded um sie auszulesen? :) |
Re: Chat messages aus dem speicher eines programms auslesen?
Moin Rhodan,
das Problem wird sein, dass Du die Stelle herausbekommen musst, an der die Adresse des jeweiligen Strings gespeichert wird. Im Gegensatz, z.B., zu einem Integerwert der, aller Voraussicht nach, wohl immer an der gleichen Stelle zu finden sein dürfte, wird bei einem String der Speicher, u.U., immer wieder neu zugewiesen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 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