Jump to content

Problem with #UseX64=n and Memory Reading


Recommended Posts

Hello everybody!

This is my first post! Nice to meet you guys!

This week i was doing a script that reads some pointer + offset and it makes a msgbox() with the result of that pointer. Whats happening? The problem that if i put this lines

#AutoIt3Wrapper_UseX64=n

The script will not read the memory, it had not sense!!!! Without these lines, the script works great. But only in x64 windows 'u.u' :)

I summon your knowledge, masters of autoit!!!

Info about the problem:

Im using Windows 7 x64 PRO

The script reads memory of a program of 32 bits.

Edited by foreveralone00
Link to comment
Share on other sites

I don`t have to much idea of this but my opinion is this, maybe someone more experienced will have a better aproach.

#AutoIt3Wrapper_UseUpx=n

This don`t have any sense if you are running a script from SciTe, This is useful when you compile the script and it have no relationship with the issue.

#AutoIt3Wrapper_UseX64=n

I dont know what function you use to read memory, but maybe it is affected by the fact that the script is running in 32bits.
Link to comment
Share on other sites

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Actions-help-about.ico
#AutoIt3Wrapper_Compression=4
;~ #AutoIt3Wrapper_UseUpx=n
;~ #AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion;**** Directives created by AutoIt3Wrapper_GUI ****
#RequireAdmin

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#include <NomadMemory.au3>
#include <GUIConstants.au3>
#include <Misc.au3>


SetPrivilege("SeDebugPrivilege", 1)
Global $Offset1[2]
Global $Offset2[2]
Global $pid
Global $pid1
Global $openmen
Global $baseADDR
Global $openmen1
Global $baseADDR1
Global $hp_Address
Global $hp_Address1
Global $HPRead
Global $HPRead1
Global $opinion

Global $Offset1[2]
$Offset1[0] = 0; Is ALWAYS 0.
$Offset1[1] = Dec("CC5228"); Static Addr Oset.
$pid = ProcessExists("Data.exe")

$openmem = _MemoryOpen($pid)
$baseADDR = _MemoryGetBaseAddress($openmem,1)
$hp_Address = "0x" & Hex($baseADDR + Dec("8C5228")); Creates the final static address you read from.


;Open the EXE for Reading / Writing
$HPRead =  _MemoryPointerRead($hp_Address, $openmem, $Offset1)
MsgBox("", "Info", $baseADDR & "Result"& ($HPRead[1]))

Global $Offset2[2]
$Offset2[0] = 0; Is ALWAYS 0.
$Offset2[1] = Dec("CC5248"); Static Addr Oset.
$pid1 = ProcessExists("Data.exe")

$openmem1 = _MemoryOpen($pid1)
$baseADDR1 = _MemoryGetBaseAddress($openmem1,1)
$hp_Address1 = "0x" & Hex($baseADDR1 + Dec("8C5248")); Creates the final static address you read from.


;Open the EXE for Reading / Writing
$HPRead1 =  _MemoryPointerRead($hp_Address1, $openmem1, $Offset2)
MsgBox("", "Info", $baseADDR1 & "Result"& ($HPRead1[1]))

the script

Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

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