Sign in to follow this  
Followers 0
ravand

Multi level pointer problem

9 posts in this topic

#1 ·  Posted (edited)

Hey there guys i have been trying for too long now to make Autoit read the pointer i have. I can't figure it out it always gives me some weird addresses or always the value 0

Here my pointer:

3lJc8.png

And here my attempt in Autoit:

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

$pid = ProcessExists("Tutorial.exe")

Global $Offset1[5]
$Offset1[0] = Dec("2b4") ; Static Addr Oset.
$Offset1[1] = Dec("7c")
$Offset1[2] = Dec("608")
$Offset1[3] = Dec("98")
$Offset1[4] = Dec("478")

$StaticOffset = Dec("6EBE1C")

$openmem = _MemoryOpen($pid) ; Open the memory
$baseADDR = _MemoryGetBaseAddress($openmem, 1)
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset) ; Creates the final static address you read from.
$Value = _MemoryPointerRead($finalADDR, $openmem, $Offset1)
_MemoryClose($openmem)
    ConsoleWrite ( "Address = " & $Value[0] & @CRLF & "Value = " & $Value[1] & @CRLF & "Base addr=" & $baseADDR & @CRLF & @CRLF & "Final addr=" & $finalADDR & @CRLF)

And here the Console output:

Address = 0x0000000000000478
Value = 0
Base addr=0

Final addr=0x006EBE

You can notice here that the base adress says "0" is that normal?

 

I hope you can help me here

Thanks in Advance

Edited by ravand

Share this post


Link to post
Share on other sites



#3 ·  Posted (edited)

Welcome to the forum - I see you are using a tool that is commonly used to hack games. The automation of games is not allowed to be discussed here in the forum. Please review the forum rules. Thanks.

I assume you are talking about CheatEngine.

I started this thread to understand the basics of reading and manipulating memory of processes. I have no intentions in creating a game bot and i don't know any other tool besides CheatEngine to find out pointers.

I find it unfair that you accuse me of searching for help to create a hack/bot/automation for games.

Edited by ravand

Share this post


Link to post
Share on other sites

ravand,

I find it unfair that you accuse me of searching for help to create a hack/bot/automation for games

When you post a script with "Client.exe" (now modified to "Tutorial.exe") as the target and are obviously using a tool which is most often used for reading the memory of games I think the accusation is perfectly fair. I let the thread run because there was no prima facie case for your script to be a gamebot - even though circumstantial evidence pointed that way. We do not act on mere suspicion here - history shows that down that road are just too many dark places. ;)

So, if you are just looking to learn how to work with memory and want help, why hide the app you are using? :huh:

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

ravand,

When you post a script with "Client.exe" (now modified to "Tutorial.exe") as the target and are obviously using a tool which is most often used for reading the memory of games I think the accusation is perfectly fair. I let the thread run because there was no prima facie case for your script to be a gamebot - even though circumstantial evidence pointed that way. We do not act on mere suspicion here - history shows that down that road are just too many dark places. ;)

So, if you are just looking to learn how to work with memory and want help, why hide the app you are using? :huh:

M23

Agreed.

I've been here since 2005 and I can only count on one hand (not counting my thumb, ring finger, or pinkie for that manner) the number of times I've seen a use for a memory reader that is legit. I've seen hundreds of instances where the user wanted to cheat at a game or do something underhanded. I've also seen many times the "I just want to learn" defense on memory readers which in my mind has a 99.99999% chance of being a bullshit lie and the real intent is to cheat on a game or be used in some dishonest manner.

I reviewing your "edited" post - You changed the name of the app to "tutorial.exe" - which if your not hiding anything or you "really just want to learn how to do it" makes what you are saying look like you want to hide what you really want to do.

Sorry, but everything your doing says quite loudly what I'm assuming you want to do.

Share this post


Link to post
Share on other sites

NutStomper said it all.

The algorithm should be following
1) Add offset to pointer
2) read memory at address you've got in step 1
3) that value you've got now is new pointer, where you need to add 2nd offset. So you basically go bck to pint 1 with new address you've got.

Repeat it for all offsets.

NomadMemory.au3 is from where you can lean how not to write code that operates with memory.


edited

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Very wise to both of you to help the OP when a mod asked a question not answered.

Anyway, not my business :)

Edited by FireFox

 

OS : Win XP SP2 (32 bits) / Win 7 SP1 (64 bits) / Win 8 (64 bits) | Autoit version: latest stable / beta.
Hardware : Intel(R) Core(TM) i5-2400 CPU @ 3.10Ghz / 8 GiB RAM DDR3.

My UDFs : Skype UDF | TrayIconEx UDF | GUI Panel UDF | Excel XML UDF | Is_Pressed_UDF

My Projects : YouTube Multi-downloader | FTP Easy-UP | Lock'n | WinKill | AVICapture | Skype TM | Tap Maker | ShellNew | Scriptner | Const Replacer | FT_Pocket | Chrome theme maker

My Examples : Capture toolIP Camera | Crosshair | Draw Captured Region | Picture Screensaver | Jscreenfix | Drivetemp | Picture viewer

My Snippets : Basic TCP | Systray_GetIconIndex | Intercept End task | Winpcap various | Advanced HotKeySet | Transparent Edit control

 

Share this post


Link to post
Share on other sites

The only tip I can give you is to take "NomadMemory.au3" and throw it in the garbage where it belongs. If you want to learn how to interact with a process' memory then learn to do it properly with the WinAPI functions.

_WinAPI_OpenProcess()

_WinAPI_ReadProcessMemory()

_WinAPI_WriteProcessMemory()

_WinAPI_CloseHandle()

Also, use _ProcessGetModuleBase() instead of _MemoryGetBaseAddress(). _ProcessGetModuleBase does need to be rewritten to use the proper WinAPI functions (and current AutoIt version) but at least it uses the correct method of getting the base address as opposed to _MemoryGetBaseAddress.

Thanks mate ill have a look into WinAPI

Share this post


Link to post
Share on other sites

ravand,

As you seem disinclined to answer the question I asked above, I feel I have no alternative then to assume that you are indeed, despite your protestations, trying to modify the memory of a game. So what comes nest will hardly be a surprise....thread locked. :naughty:

Next time a Mod asks you for clarification, might I suggest that you provide it. ;)

NutStomper, E1M1,

I expect people to use their brains when posting - you two most certainly have not. In future, when a Mod is involved in a thread and seeking answers, please do not post offering help to a question which is not yet determined to be permissible. Otherwise you become part of the problem and increase my workload and also my annoyance factor - neither of which is a good idea. So hold off next time until the thread is cleared - or, as in this case, locked. ;)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0