Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 00:39

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Frage] wie funktioniert ein res editor?

Discussion on [Frage] wie funktioniert ein res editor? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Gianotti's Avatar
 
elite*gold: 20
Join Date: Mar 2008
Posts: 1,455
Received Thanks: 140
[Frage] wie funktioniert ein res editor?

ich wollte gerne einen res entpacker in c# coden aber da ich keine ahnung habe wie ich dies bewältigen kann frage ich euch.

bei google habe ich nix gescheites gefunden
Gianotti is offline  
Old 08/01/2009, 19:43   #2
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Meinst du mit " res " Resource datein für das erstellen von Windows Oberflächen?

Wen ja dan willst du warscheinlich einen editor/entpacker für ".rc" datein erstellen. Den ".res"
datein sind ja bereits kompilierte ".rc" datein.
Akorn is offline  
Old 08/01/2009, 22:44   #3
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 451
In 'kompilierte' Resource Scripts kannst du alles mögliche an binären Daten reinpacken.
Sie werden auch nicht wirklich kompiliert, es werden halt alle Resourcen zusammen in eine Datei gemerged und mit Headern versehen, sodass man alles wieder auslesen kann.

Möchtest du einen RES-Datei Editor schreiben, oder einen, der innerhalb von Binärdateien die Resourcen verändert/entpackt?

[1.] Auslesen der Resourcen aus Executables:
Falls das Zweite zutrifft, müsstest du dir die PE-Dokumentation durchlesen.
Ungefähr so sollte es funktionieren:
Du liest den Data Directory Eintrag der Resource Table aus, um deren RVA zu erhalten.
Ab dieser liest du ab dem Offset 12 und 14 jeweils ein WORD aus, um die Anzahl an Resourcen zu bekommen (zusammen addiert; das erste WORD steht für die Anzahl der Resourcen, deren Typ über Strings angegeben werden, bei den anderen wird es über eine ID geregelt). Falls das erste WORD also ungleich 0 ist, erhältst du am Offset 16 eine RVA zum Typen der Resource als String, ansonsten stellt das DWORD eine ID dar.
Danach liest du noch einmal 4 Bytes aus und, falls das höchste Bit gesetzt ist, musst du eine Ebene tiefer gehen (die 4 Bytes enthalten eine RVA).
Du liest also erneut 4 Bytes aus RVA + 20 und testest wieder, ob das höchste Bit gesetzt ist.
Falls es wieder der Fall sein sollte, wiederholst du diesen Schritt.

Sollte das Bit nicht gesetzt sein, so gelangst du mit der RVA zur Resource Data.
Dann findest du in den nächsten 4 Bytes die RVA zur RAW Resource und dahinter, auch als DWORD, die Größe.

Danach gehst du wieder zurück zur RVA der Resource Table + 16, wo du die ID der ersten Resource bekommen hast, und noch 8 Bytes weiter, um einen neuen Resource-Eintrag vorzufinden. Dann wiederholst das Erlangen der ID und der RVA zur Resource Data, bis du die Anzahl der Resourcen durch bist (Dekrementieren dieser nicht vergessen, um unterscheiden zu können, ob der Typ über einen String oder eine ID abfragbar ist.

[2.] Auslesen der Resourcen aus kompilierten Resource Scripts:
Falls das Erste zutreffen sollte, findest du im allerersten DWORD die Größe der Resource Datei, darauffolgend die Größe des Headers, der je nachdem, ob ein UNICODE String oder eine ID (wie oben) den Typen enthält, in dieser variieren kann.
Falls du im fünften WORD (also am Offset 8) FFh vorfinden solltest, handelt es sich um eine gepaddete ID in der Größe eines WORDs. Dann folgen ein paar Flags und nach dem Header (wessen Größe man ja bereits ausgelesen hat), folgt die Resource, deren Größe man im ersten DWORD hatte.
Also weiß man, wo der nächste Header anfängt, wo man die Prozedur dann wiederholen muss :-)
Nähere Informationen zum Header findest du hier:


Hoffe, es hilft dir weiter.
link is offline  
Thanks
1 User
Old 08/02/2009, 11:39   #4
 
Gianotti's Avatar
 
elite*gold: 20
Join Date: Mar 2008
Posts: 1,455
Received Thanks: 140
wow link ich danke dir vielmals jetzt versteh ich erstmal wie so eine res datei aussieht der letzte link hat mir auch sehr geholfen dankeschön und nochwas:

du schreibst echt super. Man versteht sofort was man tun muss.
Gianotti is offline  
Reply


Similar Threads Similar Threads
[Frage]Metin2 Map Editor
05/21/2010 - Metin2 Private Server - 7 Replies
Hey erstmal! Also, ich bin seit kurzem im besitz eines voll funktionstüchtigen 3d map bearbeitungs bzw erstellung programm. Ich kann die maps auch speichern, dennoch leider nur als .fw2 file und das hilft mir nicht weiter.. Kann mir erstmal möglicehrweise jemand den pfad von filezilla für die metin2 maps schreiben und vielleicht sagen ob es ein programm gibt, mit welchem man die datei ändern kann. Danke schonmal im vorraus :D
[FRAGE]Waffen Editor?
04/03/2010 - Metin2 Private Server - 3 Replies
huhu Community, ich sehe schon öfters bei Youtube und hier bei Epvp das es von ganz neuen Waffen gesprochen wird, also die man SELBER gemacht hat damit meine ich nicht aber Client Modding z.b. Farbe ändern oder so sondern das man die SELBER erstellt gibt es nen guten Editor für sowas?^^ oder ein 3D programm womit man es machen kann und sehr zu empfehlen ist? wäre super geil wenn ihr mir weiterhelfen könnt^^ Mfg
Wieso funktioniert Pack Editor nicht mehr?
10/20/2009 - Metin2 - 11 Replies
Hallo! Ich wollte heute mal wieder mit Pack Edito zocken. Beim starten habe ich festgestellt das mir Wininject einen Fehler ausgibt von wegen "kann nicht injecten" Woran kann das liegen? Kann mir irgendjemand helfen? Sind die "Einstellungen"(zum Beispiel Drop wiederholen) von Dauer oder nur sowas wie Cheat Engine das man nur selber sehen kann. Vielen Dank im Vorraus MFG



All times are GMT +2. The time now is 00:39.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.