AutoHotkey Community

It is currently May 27th, 2012, 12:12 am

All times are UTC [ DST ]




Post new topic Reply to topic  [ 59 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
 Post subject:
PostPosted: February 1st, 2009, 5:20 am 
Offline

Joined: January 12th, 2008, 7:45 pm
Posts: 131
David Andersen wrote:
Hi Guest,

A funny example you gave me there. Kind of interesting, but not useful to read string from the memory of other running processes.

Regards,

David

(AHK stores variables in Char[arrays] afaik)
Yes it does help, The only difference is that u'll have to define the length of the string, or simply search for the NULL terminator.

A simple way is reading the address 2byte by 2byte. and simply run Chr(Returned Value) and build a sentence out of that. if you're searching for strings in ahk, simply parse through each character (2byte) 1by1 until you find Char(0), it is best to detect it by searching for Asc(0) (The initial return value).

If you need help you could prolly contact me but that may be hard as I have my mind set on other stuff atm...

_________________
Image


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: February 4th, 2009, 5:09 pm 
Offline

Joined: July 15th, 2005, 3:19 pm
Posts: 140
Location: Denmark
Hi,

As I mentioned...
Quote:
I attempted to incrementally retrieve one megabyte, though it is very inefficient and took more than two seconds (this was to retrieve the same 10 chars 100000 times, not searching or anything), which is too much for me.


Thanks for trying to help, though.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: October 13th, 2009, 10:59 am 
I am trying to read the memory from warcraft 3, all I get is zero. Why would this happen? Please help.


Report this post
Top
  
Reply with quote  
 Post subject:
PostPosted: October 13th, 2009, 11:02 am 
Offline

Joined: July 15th, 2005, 3:19 pm
Posts: 140
Location: Denmark
I think you need to describe the problem with more details, to get a good answer, though you can try using WinHex(.com) to see what you should have gotten.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: October 13th, 2009, 11:25 am 
David Andersen wrote:
I think you need to describe the problem with more details, to get a good answer, though you can try using WinHex(.com) to see what you should have gotten.


Well, I am trying to read the value of 0045CB8C in warcraft III, I can and have done it with WinHex and Cheat Engine, but I just can't do it with AHK, I get null all the time.


Report this post
Top
  
Reply with quote  
 Post subject:
PostPosted: October 13th, 2009, 9:48 pm 
Offline

Joined: July 15th, 2005, 3:19 pm
Posts: 140
Location: Denmark
Please post your program.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: October 13th, 2009, 10:06 pm 
Offline

Joined: April 8th, 2009, 8:23 pm
Posts: 3036
Location: Rio de Janeiro - RJ - Brasil
You probably need a offset.

_________________
"Read the manual. Read it again. Search the forum.
Try something before asking. Show what you've tried.
"
Image
Antonio França
My stuff: Google Profile


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: November 14th, 2009, 5:09 pm 
Offline

Joined: June 12th, 2007, 1:37 am
Posts: 37
So using this, i get a handle closed error. Here is my code that i am using.
Also using the read memory function that VxE posted

Code:
WinActivate, AION Client
WinGet, active_id, ID, A

SetFormat, IntegerFast, hex
PlayerXOffset = 0x8E6940
PlayerXCoord := PlayerXOffset + active_id

value:=ReadMemory(%PlayerXCoord%, %active_id%)

MsgBox, Player Coord is %PlayerXCoord% and PlayerXOffset is %PlayerXOffset% and active id is %active_id% the value is %value%


I know that the actual values that i want is in the game.dll not the aion client. So maybe that is my issue? But again i dont know how to point the read memory function to a specific DLL just yet either.

Any help is appreciated.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: May 6th, 2010, 12:51 am 
Offline

Joined: March 1st, 2010, 7:02 am
Posts: 43
Hello
As posted http://www.autohotkey.com/forum/viewtopic.php?t=57070 here, I also want to change the value of a address in a application.
When I search for the value that I want to change with Cheat Engine, it returns ~ 13 addresses. They will change next time I restart the application.
I tried to find the pointer so that ReadMemory will access the same address, with no success.
- Is there a function that can be called to search for a value from a specific application, and change that value into a desired value in all returning addresses at once?
- Is there a function that can find a pointer of a address?
Any help is appreciated as well.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: May 9th, 2010, 10:59 am 
Offline

Joined: January 30th, 2010, 5:50 am
Posts: 166
I have a multi-level pointer that i need to keep track of while my script is running, is there any way to do this with ReadMemory?


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: May 9th, 2010, 6:15 pm 
Offline

Joined: April 8th, 2009, 8:23 pm
Posts: 3036
Location: Rio de Janeiro - RJ - Brasil
Yes. You'd need to have one or more offsets.

_________________
"Read the manual. Read it again. Search the forum.
Try something before asking. Show what you've tried.
"
Image
Antonio França
My stuff: Google Profile


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: May 9th, 2010, 6:37 pm 
Offline

Joined: January 30th, 2010, 5:50 am
Posts: 166
Can you explain how to do that please?


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: May 9th, 2010, 7:38 pm 
Offline

Joined: April 8th, 2009, 8:23 pm
Posts: 3036
Location: Rio de Janeiro - RJ - Brasil
Something like this:
Code:
Program := "program.exe"
Address := 0xDE78B5
Offset := 0x518
Value := ReadMemory( Address+Offset , Program )

; Repeat the following 3 lines as necessary
Address := Value
Offset := 0x162 ; this will probably change
Value := ReadMemory( Address+Offset , Program )

Don't forget to debug your code so you can see if you'll have to use SetFormat.

_________________
"Read the manual. Read it again. Search the forum.
Try something before asking. Show what you've tried.
"
Image
Antonio França
My stuff: Google Profile


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: May 9th, 2010, 7:55 pm 
In the German Forum is a Libary from the User RaptorOne,
in that libary is the Read-WriteProcessMemory in different kinds.

http://de.autohotkey.com/forum/viewtopic.php?t=6903
take a look

sry for my google translate english


Report this post
Top
  
Reply with quote  
 Post subject:
PostPosted: May 9th, 2010, 8:11 pm 
Offline

Joined: January 30th, 2010, 5:50 am
Posts: 166
Thanks, I think I could use ReadProcessMemoryBigOffset but I don't know how.

Can someone help me?

The pointer looks like this in CheatEngine:
Image

The box that is cut off says this inside: MapleStory.exe+004955C8

I'm also not sure how i'm supposed to deal with trying to find the base address of MapleStory.exe with my script.

I hope you guys can help.


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 59 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC [ DST ]


Who is online

Users browsing this forum: Apollo, Rajat and 57 guests


You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group