Jump to content

Recommended Posts

Posted

Hi guys,

I am sorry for my bad english but I hope you can get what I mean.

I wrote a application which is reading/writing stuff from/to memory.

All works fine on Win7 32bit. Today I compiled my script as 64bit application on my new Win7 64bit.

Now the functions _MemoryRead/_MemoryWrite doesn´t work when I try to read something from

a memoryaddress which size is bigger than 32bit addressspace.

here is an example script that will not work cause of this:

#include <Pointer.au3>
SetPrivilege("SeDebugPrivilege", 1)
$addy = '7fef9a47a80'
$process = "MineSweeper.exe"
$pid = ProcessExists($process)
$MemOpen = _MemoryOpen($pid)
$Readout = _MemoryRead("0x"&$addy, $MemOpen, "byte[10]")
MsgBox(0,"result", $Readout)

I hope you can help me. thanx in advance!

PS: Pointer.au3 ueses the same functions as nomadmemory.au3

Posted

Please read the AutoIt Forum rules.

UDF List:

  Reveal hidden contents

Updated: 22/04/2018

Posted

its just an example to describe my problem and not the code of my program.

and not a bot / cheat like request... I cant imagine that its against the

rules to request a addressspace solution for _memoryread() on 64bit - is it ?

Posted

Don't format your addresses as hex strings, iirc autoits conversion only works on 32 bit integers. Also, in nomadmemory or w/e its called be sure to replace types in dllcalls with some, that works on both platforms. Example: "ptr" is both 32 and 64 bit, depending on version, while "int" is considered to be 32 bit, unless __int64 is used.

Ever wanted to call functions in another process? ProcessCall UDFConsole stuff: Console UDFC Preprocessor for AutoIt OMG

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...