Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 13:13

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

Advertisement



AutoIt Problem mit Memory...

Discussion on AutoIt Problem mit Memory... within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Aaron3569's Avatar
 
elite*gold: 0
Join Date: Jan 2011
Posts: 18
Received Thanks: 1
AutoIt Problem mit Memory...

Hey leute ich habe ein Problem mit der Memory Open funktion...
Hier ist das Script:


#include <NomadMemory.au3>
#include <Pointer.au3>
SetPrivilege("SeDebugPrivilege", 1)

$pid = WinGetProcess("METIN2")
$openmem = _MemoryOpen($pid)
$baseadress = _MemoryModuleGetBaseAddress($pid,"METIN2.exe")

$testoffset1 = "324"
$testoffset2 = "5B6"
$testoffset3 = "59DEE9AE"
Global $AOffset[3]
$AOffset[0] = 0
$AOffset[1] = Dec($testoffset1)
$AOffset[2] = Dec($testoffset2)
$Aaddress = "0x" & Hex($baseadress + Dec($testoffset3))



$Amemread = _MemoryPointerRead($Aaddress, $openmem, $AOffset, "byte[2]")
$Awert = _ReturnMemoryValue($Amemread[1])
$Awert = Dec($Awert)

Func _ReturnMemoryValue($sAdresse)
$sNewAdresse = ""
$sAdresse = StringTrimLeft($sAdresse, 2)
For $i = StringLen($sAdresse) - 1 To 0 Step -2
$sNewAdresse &= StringMid($sAdresse, $i, 2)
Next
Return $sNewAdresse
EndFunc

while 1
_MemoryPointerWrite($Aaddress, $openmem, $AOffset, "16556", "dword")
wend





Wisst ihr was falsch ist? hab folgende fehler meldung:

C:\Program Files (x86)\AutoIt3\Include\Pointer.au3 (40) : ==> Duplicate function name.:
Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $if_InheritHandle = 1)
Aaron3569 is offline  
Old 10/27/2013, 19:18   #2
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Die Funktion kommt in der NomadMemory.au3 und in der Pointer.au3 vor, lösch das
Code:
#include <NomadMemory.au3>
alpines is offline  
Thanks
1 User
Old 10/27/2013, 20:43   #3
 
elite*gold: 15
Join Date: Aug 2012
Posts: 3,041
Received Thanks: 6,397
Remove the Pointer.au3 import..
also, it's SetPrivilege("SetDebugPrivilege", 1)
berkay2578 is offline  
Old 10/27/2013, 20:52   #4
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Actually thats partially wrong because Pointer.au3 contains the function _MemoryPointerRead and NomadMemory.au3 does not contain it.
It would be smarter delete the #include <NomadMemory.au3> than deleting the other UDF which contains the function which is not in the other UDF.
alpines is offline  
Old 10/27/2013, 23:02   #5
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by berkay2578 View Post
Remove the Pointer.au3 import..
also, it's SetPrivilege("SetDebugPrivilege", 1)
  1. He should remove the NomadMemory include instead of the Pointer.au3 include.
  2. It's 'SeDebugPrivilege' and not 'SetDebugPrivilege' ().


Jetzt noch was zum eigentlichen Thema. Wie alpines schon richtig gesagt hat musst du eigentlich nur die Zeile mit dem NomadMemory.au3 Include entfernen.
"SeDebugPrivilege" wird nicht benötigt. Dafür aber Adminrechte. Deshalb solltest du #RequireAdmin in deinem Script hinzufügen (am einfachsten in die 1. Zeile).
Zeile 10 bis 16 ist Blödsinn. Das hätte man zum einen in einer Zeile lösen können und zum anderen performanter. Du speicherst deine Offsets in einem String und lässt diesen in eine Dezimalzahl umrechnen. Das kostet Performance. Du kannst du Offsets einfach gleich als Hexadezimalzahl angeben, dann wird auch keine Rechenoperation gebraucht.
Code:
$offsets[3] = [0, 0x324, 0x5B6]
Selbiges gilt für Zeile 7 und 16.
Code:
$baseadress = _MemoryModuleGetBaseAddress($pid,"METIN2.exe")
$Aaddress = $baseadress + 0x59DEE9AE
Zeile 20 bis 31 sind komplett sinnlos. Angefangen dabei, dass du der Funktion _ReturnMemoryValue() nicht die Adresse sondern den Wert der Adresse übergibst. Hier gibt es nur lesenden Zugriff, da du mit dem resultierenden Wert ($Awert) nicht weiterarbeitest ist es aber wie schon geschrieben komplett sinnlos. Was die Funktion letzten Endes macht sieht auch unsinnig aus, aber darüber möchte ich nicht Urteilen.
Außerdem solltest du dich daran gewöhnen, dass die Funktionen auch einen Fehlercode zurückgeben. Diese Fehler solltest du auch behandeln. In deinem aktuellen Script gibt es für die Anzahl an Zeilen viele theoretischer Stellen, an der deine Anwendung einfach "abschmieren" kann.
Bei Metin2 wird die Verwendung der NomadMemory.au3/Pointer.au3 dir zwar nicht das Genick brechen, ich empfehle dir dennoch mal . Einer der netten Herren hier wird wahrscheinlich etwas "negatives" über meine UDF schreiben, lass dich davon aber nicht beirren. Du wirst außerdem nicht so viel für C&P finden. Deinem aktuellen Script nach zu urteilen war das nämlich bisher deine größte Aufgabe. Ich könnte dein Script aber entsprechend anpassen.
KDeluxe is offline  
Thanks
1 User
Old 10/28/2013, 13:37   #6
 
elite*gold: 15
Join Date: Aug 2012
Posts: 3,041
Received Thanks: 6,397
Quote:
Originally Posted by KDeluxe View Post
  1. He should remove the NomadMemory include instead of the Pointer.au3 include.
I don't have the Pointer.au3 by def. fellas. I'm just going to assume it's an external lib like the NomadMEM.
Quote:
Originally Posted by KDeluxe View Post
  1. It's 'SeDebugPrivilege' and not 'SetDebugPrivilege' ()
oh ok.
Quote:
Originally Posted by KDeluxe View Post
Jetzt noch was zum eigentlichen Thema. Wie alpines schon richtig gesagt hat musst du eigentlich nur die Zeile mit dem NomadMemory.au3 Include entfernen.
"SeDebugPrivilege" wird nicht benötigt. Dafür aber Adminrechte. Deshalb solltest du #RequireAdmin in deinem Script hinzufügen (am einfachsten in die 1. Zeile).
Zeile 10 bis 16 ist Blödsinn. Das hätte man zum einen in einer Zeile lösen können und zum anderen performanter. Du speicherst deine Offsets in einem String und lässt diesen in eine Dezimalzahl umrechnen. Das kostet Performance. Du kannst du Offsets einfach gleich als Hexadezimalzahl angeben, dann wird auch keine Rechenoperation gebraucht.
Code:
$offsets[3] = [0, 0x324, 0x5B6]
Selbiges gilt für Zeile 7 und 16.
Code:
$baseadress = _MemoryModuleGetBaseAddress($pid,"METIN2.exe")
$Aaddress = $baseadress + 0x59DEE9AE
Zeile 20 bis 31 sind komplett sinnlos. Angefangen dabei, dass du der Funktion _ReturnMemoryValue() nicht die Adresse sondern den Wert der Adresse übergibst. Hier gibt es nur lesenden Zugriff, da du mit dem resultierenden Wert ($Awert) nicht weiterarbeitest ist es aber wie schon geschrieben komplett sinnlos. Was die Funktion letzten Endes macht sieht auch unsinnig aus, aber darüber möchte ich nicht Urteilen.
Außerdem solltest du dich daran gewöhnen, dass die Funktionen auch einen Fehlercode zurückgeben. Diese Fehler solltest du auch behandeln. In deinem aktuellen Script gibt es für die Anzahl an Zeilen viele theoretischer Stellen, an der deine Anwendung einfach "abschmieren" kann.
Bei Metin2 wird die Verwendung der NomadMemory.au3/Pointer.au3 dir zwar nicht das Genick brechen, ich empfehle dir dennoch mal . Einer der netten Herren hier wird wahrscheinlich etwas "negatives" über meine UDF schreiben, lass dich davon aber nicht beirren. Du wirst außerdem nicht so viel für C&P finden. Deinem aktuellen Script nach zu urteilen war das nämlich bisher deine größte Aufgabe. Ich könnte dein Script aber entsprechend anpassen.
I just love how you called me a gentleman. There is a reason why you won't find a C&P source using your base.. it's because no one uses it

Quote:
Originally Posted by alpines View Post
Actually thats partially wrong because Pointer.au3 contains the function _MemoryPointerRead and NomadMemory.au3 does not contain it.
It would be smarter delete the #include <NomadMemory.au3> than deleting the other UDF which contains the function which is not in the other UDF.
it actually does

berkay2578 is offline  
Old 10/28/2013, 16:23   #7
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
NomadMemory.au3 doesn't have _MemoryPointerRead included because else Pointer.au3 wouldn't exist.
alpines is offline  
Old 10/28/2013, 17:06   #8
 
Aaron3569's Avatar
 
elite*gold: 0
Join Date: Jan 2011
Posts: 18
Received Thanks: 1
Quote:
Originally Posted by KDeluxe View Post
  1. He should remove the NomadMemory include instead of the Pointer.au3 include.
  2. It's 'SeDebugPrivilege' and not 'SetDebugPrivilege' ().


Jetzt noch was zum eigentlichen Thema. Wie alpines schon richtig gesagt hat musst du eigentlich nur die Zeile mit dem NomadMemory.au3 Include entfernen.
"SeDebugPrivilege" wird nicht benötigt. Dafür aber Adminrechte. Deshalb solltest du #RequireAdmin in deinem Script hinzufügen (am einfachsten in die 1. Zeile).
Zeile 10 bis 16 ist Blödsinn. Das hätte man zum einen in einer Zeile lösen können und zum anderen performanter. Du speicherst deine Offsets in einem String und lässt diesen in eine Dezimalzahl umrechnen. Das kostet Performance. Du kannst du Offsets einfach gleich als Hexadezimalzahl angeben, dann wird auch keine Rechenoperation gebraucht.
Code:
$offsets[3] = [0, 0x324, 0x5B6]
Selbiges gilt für Zeile 7 und 16.
Code:
$baseadress = _MemoryModuleGetBaseAddress($pid,"METIN2.exe")
$Aaddress = $baseadress + 0x59DEE9AE
Zeile 20 bis 31 sind komplett sinnlos. Angefangen dabei, dass du der Funktion _ReturnMemoryValue() nicht die Adresse sondern den Wert der Adresse übergibst. Hier gibt es nur lesenden Zugriff, da du mit dem resultierenden Wert ($Awert) nicht weiterarbeitest ist es aber wie schon geschrieben komplett sinnlos. Was die Funktion letzten Endes macht sieht auch unsinnig aus, aber darüber möchte ich nicht Urteilen.
Außerdem solltest du dich daran gewöhnen, dass die Funktionen auch einen Fehlercode zurückgeben. Diese Fehler solltest du auch behandeln. In deinem aktuellen Script gibt es für die Anzahl an Zeilen viele theoretischer Stellen, an der deine Anwendung einfach "abschmieren" kann.
Bei Metin2 wird die Verwendung der NomadMemory.au3/Pointer.au3 dir zwar nicht das Genick brechen, ich empfehle dir dennoch mal . Einer der netten Herren hier wird wahrscheinlich etwas "negatives" über meine UDF schreiben, lass dich davon aber nicht beirren. Du wirst außerdem nicht so viel für C&P finden. Deinem aktuellen Script nach zu urteilen war das nämlich bisher deine größte Aufgabe. Ich könnte dein Script aber entsprechend anpassen.
danke für die Antwort , könntest du mir eventuell zeigen, wie das ganze aussehen muss wenn ich es mache wie du es beschrieben hast? bin mir nicht sicher ob es richtig ist
Aaron3569 is offline  
Old 10/28/2013, 17:14   #9
 
elite*gold: 15
Join Date: Aug 2012
Posts: 3,041
Received Thanks: 6,397
Quote:
Originally Posted by alpines View Post
NomadMemory.au3 doesn't have _MemoryPointerRead included because else Pointer.au3 wouldn't exist.
open the spoiler I posted.. or;
Attached Files
File Type: rar NomadMemory.rar (4.0 KB, 31 views)
berkay2578 is offline  
Old 10/28/2013, 17:25   #10
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Maybe you can modify it but it was first posted without Pointer functions otherwise Pointer.au3 wouldn't exist...
alpines is offline  
Old 10/28/2013, 17:45   #11
 
elite*gold: 15
Join Date: Aug 2012
Posts: 3,041
Received Thanks: 6,397
lol, I didn't modify it just go to autoit forums & check the release thread, he updated it long ago..
berkay2578 is offline  
Old 10/28/2013, 18:13   #12
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
See? You also say that it was updated. The first UDF didn't contain that.
alpines is offline  
Reply

Tags
autoit, fehler, memory, metin, pointer


Similar Threads Similar Threads
AutoIT Memory 2
04/23/2012 - AutoIt - 2 Replies
Kann mir wer die Memory 2 schicken also ihr wisst schon # include Memory 2 das ding =)
AutoIT Bot über Memory?
12/30/2010 - AutoIt - 15 Replies
Morgen =3, Ich hab gehört, dass es eine Möglichkeit geben soll, Bots über die Memory zu schreiben. Leider hab ich keeinen Dunzt wie das gehen soll. Googel hat mir auch nicht viel dazu gesagt. Bitte klärt mich auf! u_failed
Memory Bot Rom in Autoit Problem
01/26/2009 - General Gaming Discussion - 3 Replies
Hi, ich arbeite gerade an einem neuen Bot. Leider bekomme ich keine richtige Ausgabe wenn ich das Offset addiere, oder ich mache etwas falsch. $hp ist der aktuelle Wert in der Umgebung ohne Pointer Wenn ich diesen auslese kommt mein richtiges Leben auch raus. $pointer ist der pointer und $offset dazu war 31C habe ich mal zu 0x gemacht damit Autoit nicht meckert. wenn ich $pointer + $offset mache dann gibts in der Msgbox eine 0.
Memory Read in autoit
01/02/2009 - CO2 Programming - 2 Replies
Something is wrong when I use this macro. AutoIt alwais get a positive answer for every memory read, even if the answer is negative. #include <NomadMemory.au3> $paused1 = 1 While $paused1 = 1 $pos2 = MouseGetPos() $sleep = 350 $Mem_Answer1 = 0x0168DFBC $Mem_Answer2 = 0x0168E0F4 $Mem_Answer3 = 0x0168E22C $Mem_Answer4 = 0x0168E364 $Process1 = WinGetProcess("")



All times are GMT +1. The time now is 13:14.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.