win32asm Ram auslesen

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Beitragvon Milliways » Sonntag 8. August 2004, 20:06

Hi Jungs

Ich bin ganz dummer noob und ich brauche eine funktion die folgendes tut:
Das ganze bitte in win32asm code:

lese eine bestimmte speicheradresse die ersten 4 byts (DWORD) aus. Merke dir was da steht. (was da stehz ist ja ein zahlenwert, fals ihr das wissen müsst)
Schreibe in eine andere Speicheradress was du dir gemerkt hast!

Ich hoffe nicht das das ein problem ist. Für mich schon und ich währe euch echt dankbar wenn ihr das für mich hin bekommt!
Milliways
Newbie
 
Beiträge: 4
Registriert: Sonntag 8. August 2004, 20:01

Beitragvon Marwin » Montag 9. August 2004, 16:49

Hallo Milliways,

wenn ich dich richtig verstanden habe, dann sollte es der folgende Code sein, den du suchst:

Code: Alles auswählen
mov eax, [esi]       ;-- EAX enthält nun den Wert von der Adresse, welche in ESI gespeichert ist
mov [edi], eax       ;-- die Speicherstellen an der Adresse, welche in EDI gespeichert ist, enthält nun den Wert aus EAX


Grüße, Marwin
Benutzeravatar
Marwin
Moderator
 
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland

Beitragvon Milliways » Montag 9. August 2004, 17:14

od wie sag ich ihm dass er die 4byts nimmt und nicht mehr?? oder ist das schon damit gesagt??

Code: Alles auswählen
<CODE> mov eax, [90F790]
<CODE> mov [9AED60], eax


funktioniert leider nicht so wie ich mir gedacht habe! auch ohne coede vorweg nicht
Milliways
Newbie
 
Beiträge: 4
Registriert: Sonntag 8. August 2004, 20:01

Beitragvon Marwin » Montag 9. August 2004, 19:45

Hallo Milliways,

poste doch einmal bitte etwas mehr von dem Code den du verwendest.
Es werden automatisch 4 Byte eingelesen, da das Register EAX 4 Byte breit ist. Nimm mir das jetzt bitte nicht übel, aber ich glaube, dass du dich noch nicht sehr mit Assembler beschäftigt hast. Ich würde dir dringend empfehlen ein Tutorial zu lesen. Egal ob du dich in der Freizeit oder in der Schule mit Assembler beschäftigst/beschäftigen musst.

Grüße, Marwin
Benutzeravatar
Marwin
Moderator
 
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland

Beitragvon Milliways » Montag 9. August 2004, 20:29

also ich möchte in Game Trainer Studio (falls es wer kennt) eine funktion basteln die ein speicher segment ausließt und in ein anderes schreibt!

Ich bin absoluter NOOB hab ich doch gesagt sorrey ;)

Code: Alles auswählen
<Name=Button - Width 2><Data>1650</Data>
<Name=Button - Height 2><Data>300</Data>
<Name=Button - Top 2><Data>3015</Data>
<Name=Button - Left 2><Data>120</Data>
<Name=Button - Exists 2><Data>Yes</Data>
<Name=Button - Caption 2><Data>New Button</Data>
<Name=Button - Function Type 2><Data>Poke</Data>
<Name=Button - HotKeyMain 2><Data></Data>
<Name=Button - HotKeyControl 2><Data></Data>
<Name=Button - HotKeyAlt 2><Data></Data>
<Name=Button - HotKeyShift 2><Data></Data>
<Name=Button - Constants 2><Data></Data>
<Name=Button - ASM 2><Data></Data>
<Name=Button - Message Caption 2><Data>New Trainer</Data>
<Name=Button - Message Text 2><Data></Data>
<Name=Button - Message Icon 2><Data>MB_ICONINFORMATION</Data>
<Name=Button - Pokes 2><Data>mov eax, [90F790]</Data>
<Data>mov [9AED60], eax </Data>
<Name=Button - Freeze Enabled 2><Data>0</Data>
<Name=Button - Freeze Caption 2><Data></Data>
<Name=Button - Freeze Stay 2><Data>0</Data>
<Name=Button - BitMap Enabled 2><Data>False</Data>
<Name=EditBox - Width 2><Data>1650</Data>
<Name=EditBox - Height 2><Data>285</Data>
<Name=EditBox - Top 2><Data>570</Data>
<Name=EditBox - Left 2><Data>150</Data>
<Name=EditBox - Exists 2><Data>Yes</Data>
<Name=EditBox - Constants 2><Data></Data>
<Name=EditBox - Function 2><Data>EditBox 90F790 DWORD</Data>
<Name=EditBox - Width 3><Data>1650</Data>
<Name=EditBox - Height 3><Data>285</Data>
<Name=EditBox - Top 3><Data>2175</Data>
<Name=EditBox - Left 3><Data>105</Data>
<Name=EditBox - Exists 3><Data>Yes</Data>
<Name=EditBox - Constants 3><Data></Data>
<Name=EditBox - Function 3><Data>EditBox 9AED60 DWORD</Data>
<Name=Label - Width 2><Data>615</Data>
<Name=Label - Height 2><Data>255</Data>
<Name=Label - Top 2><Data>210</Data>
<Name=Label - Left 2><Data>150</Data>
<Name=Label - Exists 2><Data>Yes</Data>
<Name=Label - Caption 2><Data>Startxray</Data>
<Name=Label - Width 3><Data>480</Data>
<Name=Label - Height 3><Data>255</Data>
<Name=Label - Top 3><Data>1845</Data>
<Name=Label - Left 3><Data>135</Data>
<Name=Label - Exists 3><Data>Yes</Data>
<Name=Label - Caption 3><Data>Aktuell</Data>
<Name=WM_CREATE Variale><Data></Data>
<Name=DataSection><Data></Data>
<Name=Quit Message - Enabled><Data>1</Data>
<Name=Quit Message - Caption><Data>Quit</Data>
<Name=Quit Message - Message><Data>Are you sure you wish to exit?</Data>
<Name=Quit Message - Icon><Data>MB_ICONEXCLAMATION</Data>
<Name=Instances Message - Enabled><Data>1</Data>
<Name=Instances Message - Caption><Data>Error</Data>
<Name=Instances Message - Message><Data>You cant have more than one instance of this trainer running at the same time</Data>
<Data>This trainer will now terminate</Data>
<Name=Instances Message - Icon><Data>MB_ICONEXCLAMATION</Data>
<Name=Instances Message - Continue><Data>0</Data>
<Name=Main Dialog - Caption><Data>New Trainer</Data>
<Name=Main Dialog - Width><Data>3045</Data>
<Name=Main Dialog - Height><Data>4755</Data>
<Name=Main Dialog - Top><Data>90</Data>
<Name=Main Dialog - Left><Data>60</Data>
<Name=Settings - BitMap Name><Data></Data>
<Name=Settings - Icon Name><Data>icon.ico</Data>


So schaut ein teil aus und ich denke das das ne abgewandelte form von win32asm ist! naja
Milliways
Newbie
 
Beiträge: 4
Registriert: Sonntag 8. August 2004, 20:01

Beitragvon Marwin » Dienstag 10. August 2004, 08:25

Milliways,

das sieht in meinen Augen gar nicht wie Assembler aus. Es ist vielleicht eher eine Liste von Dialog-Elementen mit ihren entsprechenden Eigenschaften.

Grüße, Marwin
Benutzeravatar
Marwin
Moderator
 
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland

Beitragvon Milliways » Dienstag 10. August 2004, 19:54

achso nochmal sicher das das nicht
Code: Alles auswählen
movi eax, [esi]    
movi [edi], eax


sein kann? wo ist der unterschied??
Milliways
Newbie
 
Beiträge: 4
Registriert: Sonntag 8. August 2004, 20:01

Beitragvon CDW » Freitag 13. August 2004, 22:23

hm, du willst mit
Code: Alles auswählen
mov eax, [90F790]
 mov [9AED60], eax
den RAM auslesen und es geht nicht, lass mich raten - es kommt ein speicherzugriffsfehler.
Das ist "normal" weil ein multitasking os wie Win einem Programm 32-bit Ram "ungeteilt" zur verfügung stellt - sonst würden sich ja die Programme überschneiden und es würde zu Fehlern führen. Wie dem auch sei, ich denke dass ein paar winapis wie:
OpenProcess, ReadProcessMemory/WriteProcessMemory
dir hier mehr helfen.
CDW
Alter Hase
 
Beiträge: 62
Registriert: Donnerstag 2. Oktober 2003, 17:17


Zurück zu Assembler

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron