Sign in to follow this  
Followers 0
killerofsix

_MemoryWrite Help

20 posts in this topic

ok I'm sure it has something to do with my syntax or something, but i just can't seem to be able to get _MemoryWrite to work! I've done @error checks and it returns no error but when i check with cheat engine to see if the value has changed, it hasn't! I've been going through the forums looking for an answer for about 4 hours now and still nothing.

Here's what i have written in my script:

_MemoryWrite( 0x008C8398, $processhandle, 0.1, 'float')

Here's a pic of the addres in cheat engine

Posted Image

I think the problem is with the address, in _Memorywrite all i did was take the address from cheat engine and put '0x' in front of it which i assume is correct. I'd appreciate it if someone could tell me what I'm doing wrong and guide me in the correct direction. And don't send me to some other thread saying the answer is there cause I've seen just about every thread there is with the words _Memorywrite in it so either I've seen the answer, but it just went over my head, or I haven't seen the answer and I need help! I need a direct and simple answer please. Thank you to anyone who helps.


"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites



Well, I don't use _MemoryWrite in my scripts since I found NamadMemory.

However, at a glance, I would suggest sending the value as hex instead of dec.

Share this post


Link to post
Share on other sites

nope that doesn't work. even in all the examples i've seen they've always been in decimal or char format. hex does nothing, just some extra errors :P

thank you danwilli for the suggestion. can anyone else help please.


"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

bump for help please


"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

thats what im using


"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

I always just send one byte at a time, sending hex for the value like this from a working script of mine:

_MemoryWrite( 0x0453701, $M_open, "0x90", 'byte[1]' )

hope this helps... if not I will keep looking into it.

Share this post


Link to post
Share on other sites

ok how do i send 0.1 as a hex value and i need to send it as a float value, not a byte.


"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

when you send a float, you are just sending several bytes, so you could simply use the information from cheat engine to see what bytes are changed when you change the float value and then make those changes via nomadsmem. Just look at the asm view or hex and see what changes when the float is changed.

Again I hope this helps, sorry I am only offering a workaround and not a solution, but I didn't see anybody else replying to this topic... figured I would toss in my thoughts

Share this post


Link to post
Share on other sites

ah i see, thank you very much for the help. just to clarify something, since a float is 4 bytes, would that mean when i i would have to write the value 4 times or in the type i would put 'byte[4]'

And I really appreciate your help with this stuff.


"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

I think you should be able to use 'byte[4]', but I always just do it one at a time (byte[1]) just because I ran into some issues doing it other ways. It may not be an issue with the udf, it may just be me doing it wrong, but I never had any problems doing it one byte at a time.

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

ok i have no idea why but none of Nomad's functions work for me! I've tried them on vista and xp both using the same version of autoit, and nothing works! I even tested with this memory_gui thing i found while searching other topics, but these function dont work for me. i'm gonna try it with an older version of autoit. :P

EDIT: I tried with autoit 3.2 and the functions still wont work for me. i've tried just writing single 4 byte values and nothing works :P

Memory_GUI.au3

Edited by killerofsix

"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

ok how do u write ur address? For example, in cheat engine the address i would write is: 0084A3F7

Now in _MemoryWrite, how would you write that?

_MemoryWrite(0x0084A3F7,.......etc.)

is correct, no? :P


"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

That is correct... what game/app are you trying to do this on?

Share this post


Link to post
Share on other sites

#15 ·  Posted (edited)

I'm trying to use it on WoW. I know it can be done, I've seen the topic made by Malu05.

EDIT: Do these nomads functions still work for you? response from anyone would be nice. :P

Edited by killerofsix

"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

I'm trying to use it on WoW. I know it can be done, I've seen the topic made by Malu05.

EDIT: Do these nomads functions still work for you? response from anyone would be nice. :P

This is kind of off topic, but i'm pretty sure warden will detect this?

Is it worth getting banned??

anyway, sorry for the off-topicness!

free bump!


tolle indicium

Share this post


Link to post
Share on other sites

#17 ·  Posted (edited)

Lol this is funny. I ran into your problem, but the resolution is gonna make you unhappy lol. Cause you did all the syntax stuff above, and it took so long just for 1 resolution. (Dont worry i feel your pain, it happened to me too)

Hmmm... To share... or not to share.. That is the question.. :o

I decided I'll share. :P

What your looking for, is called PageFile protection. In C++ it's easy as hell to fix this, just 2 simple commands will remove and re-apply protection to the page files.

What I've found to work with WoW is you need DebugPriveleges in autoit. Getting this to work is one hell of a trick, and I have yet to figure it out completely, but I do have it working using the attached UDF.

Just use that instead of NomadMemory udf,

and additionally, before you access the memory, do the following:

$Priv=SetPrivilege("SeDebugPrivilege",1)
$Priv=0x38

And BELIEVE ME!! If you change the above two lines in ANY way, it will not work. Ill stake my life on that. Aside from changing the variable name of course. :D

Then call C_MemRead($mem,$addy,$ScanSize)

or C_MemWrite

wherever it is needed.

I also attached my modified version of NomadMemory, and it works great in conjunction with the "CustomMem.au3" include file. Although, it does not work for Wow.exe because of memory pagefile protection. So it's kinda useless, aside from the functions I wrote, which aren't that awesome anyway.

I got into this cause I was making an autoit program that would edit Gliders keys.xml file by reading the hotbar buttons in game, and synchronizing their item id's converted to decimal from the 1st octect of hexidecimal in memory with wow.allakhazam.com using INetGet(). Worked great, but ran out of time(and interest =/ ) to finish it. =/

God knows why I'm sharing this file.... It took me so... SO very long to get this working.(Like almost an entire week) I gave up for a while and went to C++ even. What can I say, I love how easy it is to make a GUI w/ autoit...

Just make sure you leave the credits intact. The UDF functions were originally written by someone @ http://edgeofnowhere.cc (Bah, another piece of information I really didn't wanna give out. lol This site has alot of cool stuff in it) .

I would really like to ask you to credit me some for this, but I didn't write the code - just did the research and put it all together; and in the end, he who wrote the code seems to be all that matters - and so I won't ask. Guess my only benefit is that I feel all warm and fuzzy inside cause I helped someone with this. lol =/

Oh, and by the way, it is HIGHLY likely that Warden will detect MemoryWrites. Whereas, I have tested the MemoryReads, and they are not detected, or atleast, don't raise any flags. I would do the following:

1.) Test your code on a private server - easily findable using google.com

2.) Check warden detection using a 10day free trial account.

If all goes sexy, then release and make ur uber $$ :P

CustomMem.au3

NomadMemoryEd.au3

Edited by Juppie7

Share this post


Link to post
Share on other sites

#18 ·  Posted (edited)

Thank you very much juppie7! I pretty sure this will do the trick, and btw my program is meant to be used on private servers so i don't have to worry about warden really. Anyways, thank you very much for sharing this valuable information with me and everyone else who reads this topic. I'm gonna now go make the necessary modifications to my script and test it, hopefully it will now work.

EDIT: I'll add your name to credits if this works :P

Edited by killerofsix

"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

#19 ·  Posted (edited)

Sorry i feel like I'm bringing an old topic back but I've finally had success with Nomads functions (_MemoryPointerWrite). I was able to write to an address in wow thats a byte but I'm unable to write to any address's that has floating point value. Everything else works as long as I'm not writing to a floating point. does anyone have any suggestions?

Thank you juppie7, I am now able to write to memory address's just not one's with floating point values :P

Any help with fixing this problem of writing to floating points would be nice.

Thanks.

EDIT: Ok I'm only having a problem with writing 0.1 to an address. Here's my code:

_MemoryWrite(0x008C8398, $processhandle, 0.1, 'float')
Edited by killerofsix

"The quieter you are, the more you are able to hear..."

My AppsUSB Finder

Share this post


Link to post
Share on other sites

Try using a DLLStructCreate to create a float datastructure

Then DLLStructSetData to set the value in there

Then pass the DllStructGetPtr into the mem write function, which you will probably have to mod to accommodate this.

Share this post


Link to post
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
Sign in to follow this  
Followers 0