Register for your free account! | Forgot your password?

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

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

Advertisement



KDMemory (AutoIt 32 & 64 Bit)

Discussion on KDMemory (AutoIt 32 & 64 Bit) within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
KDMemory (AutoIt 32 & 64 Bit)

Functions:
Quote:
Originally Posted by KDMemory.au3
  1. _KDMemory_OpenProcess ( $processId [, $inheritHandle [, $desiredAccess]] )
  2. _KDMemory_CloseHandles ( $handles )
  3. _KDMemory_ReadProcessMemory ( $handles, $baseAddress, $type [, $offsets] )
  4. _KDMemory_ReadProcessString( $handles, $baseAddress [, $offsets [, $unicode]] )
  5. _KDMemory_WriteProcessMemory ( $handles, $baseAddress, $type, $value [, $offsets] )
  6. _KDMemory_WriteProcessString ( $handles, $baseAddress, $string [, $offsets [, $unicode]] )
  7. _KDMemory_GetModuleBaseAddress ( $handles, $moduleName [, $caseSensitive [, $unicode]] )
  8. _KDMemory_FindAddress ( $handles, $pattern, $startAddress, $endAddress, ByRef $errors [, $getAll] )
Attached Files
File Type: zip KDMemory.zip (4.0 KB, 633 views)
File Type: zip KDMemory_Example.zip (5.7 KB, 515 views)
KDeluxe is offline  
Thanks
38 Users
Old 08/01/2013, 01:18   #2
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Vielen dank

Sowas brauchte ich noch .

aber könntest du mir mal das mit den pointern (offsets) erklären ? ich verstehe grade nicht wie ich die übergeben soll (als array)

edit : wenns in dem example ist sry das hab ich am handy net gesehen und kann es auch net öffnen
YatoDev is offline  
Old 08/01/2013, 01:37   #3
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
thx,
in der .au3 hast du einen kleinen tippfehler..

zeile 196
EndFuncspoiler]
omer36 is offline  
Thanks
1 User
Old 08/01/2013, 11:59   #4
 
SpieleHacksInfo's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 448
Received Thanks: 278
Nice 64bit FTW! xD
SpieleHacksInfo is offline  
Old 08/01/2013, 17:51   #5
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by »FlutterShy™ View Post
Vielen dank

Sowas brauchte ich noch .

aber könntest du mir mal das mit den pointern (offsets) erklären ? ich verstehe grade nicht wie ich die übergeben soll (als array)

edit : wenns in dem example ist sry das hab ich am handy net gesehen und kann es auch net öffnen
Die "Example" Datei beinhaltet ein Beispiel.

Quote:
Originally Posted by omer36 View Post
thx,
in der .au3 hast du einen kleinen tippfehler..

zeile 196
EndFuncspoiler]
Keine Ahnung wann und wie das da rein gerutscht ist. Ich habe den Fehler entfernt und die .au3 noch mal neu hochgeladen.
KDeluxe is offline  
Old 08/01/2013, 20:27   #6
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
komischerweise klappt bei mir die WriteProcessMemory funktion nicht, wenn ich einen pointer verwende (ohne pointer gehts). lesen klappt.

kommt auch keine fehlermeldung.

in deinem beispiel nur die stellen geändert:

$szProcessName = "Solitaire.exe"
Dim $pdwOffsets[2] = [0x50, 0x14]
$lpBaseAddress = _KDMemory_GetModuleBaseAddress($phHandles, $szProcessName) + Dec("BAFA8")

beim starten zeigt er mir die aktuellen punktzahlen des spiels an, ändert diese jedoch nicht in 5000, die vorgegeben waren.
omer36 is offline  
Old 08/01/2013, 21:12   #7
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Evtl. ist es wie beim CE Tutorial (siehe Beispielsscript). Der Wert wurde geändert, jedoch aktualisiert CE diesen Wert nicht, das Label zeigt also weiterhin den alten Wert an.
Klickst du allerdings auf den "Change Pointer" Button und führst anschließend das Script aus, so kannst du anschließend den "Next" Button betätigen.
Du siehst auch, dass es funktioniert, wenn du erst den Wert schreibst und diesen anschließend wieder ausließt. Das könntest du ja mal bei Solitär ausprobieren. Evtl. verwendest du ja auch einfach den falschen Pointer, wobei ich mal nicht davon ausgehe.
Der neue Wert wird übrigens auch bei Solitär nur angezeigt, sobald das Spiel einen Punktestandunterschied erkennt, zum Start wirst du also immer 0 sehen.
KDeluxe is offline  
Old 08/03/2013, 08:15   #8
 
elite*gold: 11
Join Date: Jun 2012
Posts: 894
Received Thanks: 1,463
Cooles Ding Danke xD
KaT̅1muR̅ is offline  
Thanks
1 User
Old 08/05/2013, 11:01   #9
 
elite*gold: 0
Join Date: May 2013
Posts: 361
Received Thanks: 60
Bei mir kommt immer das hier, wenn ich deinen Script ausführe.
Angela_Merkel is offline  
Old 08/05/2013, 13:45   #10
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Falsche adresse oder #RequireAdmin vergessen
YatoDev is offline  
Old 08/05/2013, 15:53   #11
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Quote:
Originally Posted by KDeluxe View Post
Ich lade mal meine Memory UDF hoch. Diese kann sowohl mit 32 als auch 64 Bit Anwendungen verwendet werden.
Quote:
Originally Posted by KDeluxe View Post
Code:
If @CPUArch <> "X64" Or @AutoItX64 == 0 Then
    MsgBox(48, "Error", "Unsupported system")
    Exit
EndIf
Wieso prüfst du auf eine 32bit CPU, wenn es doch sowohl 64 als auch 32 Bit unterstützen soll?
Logtetsch is offline  
Old 08/05/2013, 18:43   #12
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by Angela_Merkel View Post
Bei mir kommt immer das hier, wenn ich deinen Script ausführe.
Du erstellst zwei Threads in der AutoIt Sektion und zusätzlich einen weiteren Thread im General Coding zu EINEM Thema und postest es auch noch in diesem Thread, obwohl der Fehler an dir liegt und nicht an der UDF.


Quote:
Originally Posted by Logtetsch View Post
Wieso prüfst du auf eine 32bit CPU, wenn es doch sowohl 64 als auch 32 Bit unterstützen soll?
Da hast du dich verguckt. Ich prüfe ob auf ein 64 Bit System verwendet wird und ob die Anwendung eine 64 Bit Anwendung ist.
Das hat einen einfachen Hintergrund:
  • eine 32 Bit Applikation kann nicht auf den Speicher einer 64 Bit Applikation zugreifen
  • auf einem 64 Bit Betriebssystem können 32 Bit Anwendungen ausgeführt werden

Bei dem Zielprozess handelt es sich um eine 64 Bit Anwendung, deshalb die Überprüfung. So kann die Funktionalität meiner UDF garantiert werden, was Beiträge wie "Funktioniert nicht" vermeiden soll (aber nicht kann).
KDeluxe is offline  
Thanks
2 Users
Old 08/05/2013, 20:18   #13
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by KDeluxe View Post
  • eine 32 Bit Applikation kann nicht auf den Speicher einer 64 Bit Applikation zugreifen
  • auf einem 64 Bit Betriebssystem können 32 Bit Anwendungen ausgeführt werden
kann denn eine 64 bit anwendung auf den speicher einer 32 bit anwendung zugreifen ?
YatoDev is offline  
Old 08/08/2013, 17:10   #14
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Mit deiner UDF hat das hier nicht funktioniert mit nomad aber schon . Ich habe nichts falsch eingegebn :

Code:
#include <NomadMemory.au3>

HotKeySet("{NUMPADADD}","_WriteAdd")
HotKeySet("{NUMPADSUB}","_WriteSub")

Global $adress = 0x059C0724
Global $processHandle = ProcessExists("iw5m.dat")
Global $hopen = _MemoryOpen($processHandle)

While 1
sleep(100)
WEnd

Func _Read()
	$read = _MemoryRead($adress,$hopen , "FLOAT")
EndFunc

Func _WriteSub()
$read = _MemoryRead($adress,$hopen , "FLOAT")
_MemoryWrite($adress,$hopen ,$read - 10, "FLOAT" )
EndFunc

Func _WriteAdd()
$read = _MemoryRead($adress,$hopen , "FLOAT")
_MemoryWrite($adress,$hopen ,$read + 10, "FLOAT" )
EndFunc
YatoDev is offline  
Old 08/09/2013, 00:55   #15
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Wenn du das Script hinzufügen würdest, wie du es mit meiner UDF gemacht hast, könnte ich dir helfen.

Hier mal ein Beispiel, wie es funktionieren sollte:
KDeluxe is offline  
Reply

Tags
baseaddress, kd, kdeluxe, memory, pointer




All times are GMT +1. The time now is 23:01.


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.