hey man, do you know how to solve a overflow error? My base address is 0x140000000 and the function get pointer don't work, giving me the error: ctypes.ArgumentError: argument 2: : int too long to convert
@@RandomDavis I thought about like reseting the value every few seconds and it was working but the game i tried to freeze value for have like a Rage mode for my character and when i become that my health just dissapears and i die in 1 hit haha . It didnt work probably because of that
I don't even know how Cheat Engine does them, I'd have to look at its source code. It's likely it'd be something you could do in Python, but it could be complicated, I'm just not sure.
@@nitotin. Depends on the game's architecture. If it uses Microsoft .NET, nothing is really static, including code. But debugging, reverse engineering and decompiling .NET is far easier than native applications.
Hi, thank you for the video. Is it possible to get the 4 bytes address of "Processname.exe"+##### without cheat engine ? edit: figured it out. can get base address using this snippet "module_from_name(pm.process_handle, 'name.exe').lpBaseOfDll"
The ReadWriteMemory module only converts the input to a ctypes.c_uint value. So, you'd have to modify the library to use ctypes.c_float and ctypes.c_double in those cases I guess. If you look at the source code for the write() function, it's really straightforward to make that change. You'd probably have to add a type argument for read() and write(), or make new functions like read_float, write_float, read_double, write_double.
@@luxdercito that's not my area of expertise. If it's protected by anti-cheat or anti-malware software or anything like that, I'm not sure how to bypass it. Even kernel mode drivers are detected from what I recall. I'm not sure how or if you could use Python for those anyway.
There's probably a few different ways. You could use ctypes to call GetModuleHandleA() which can apparently return the base address if you pass in a zero but you would need to do research on that. I think cheat engine can show the base address for every loaded module in the UI though. Not sure on that.
I think I need clarification on whether or not you're talking about the commonly accepted definition of a static memory address. It can be the base of a pointer, or essentially a variable that will have the same address every time. Are you asking about something related to that? Or are you asking about memory addresses where when you change the values, they immediately revert back and nothing happens? In that case that means you have found the wrong address; it is simply a variable that copies the value of the actual one you are interested in. Or it might be the display representation of a different internal representation of a number. There's many possibilities. So I just need clarification on what exactly you're asking.
@@RandomDavis I was wondering if you could make a tutorial on how to convert full cheat tables into python, like the ones you can download and I think they are made in assembly.
@@kayoppoopj4439 the whole point of finding a static address is that it doesn't change when you close the app will restart your computer, and it's even the same on other computers. Sometimes with some applications, static addresses will change between updates. Also if that happens in a just-in-time compiled language, like C sharp, the static addresses might change every time you launch the app. But those apps can be easily hacked via resharper or such programs.
@@weeradayusawang8441 well it could be possible to get that to work, but since that solution is specific to cheat engine, it would certainly need modifications in order to work for Python, and I have absolutely no idea whatsoever how to do that.
This is brilliant, clearly explained and right to the point. Awesome work!
Thank you! Comments like this inspire me to make more of this kind of content.
@ you have to add or set the address as a pointer
Extremely informative and helpful. Thanks for this video
Glad you liked it. I made it for one person on stack overflow who never even responded, so I'm glad it's helped at least one other person.
@@RandomDavis haha that’s where i found the video.
@@expliked137 makes sense then. Well, if you can think of any other related tutorials I could make, I can give them a try.
He's back
Thanks for sharing, I needed this.
hey man, do you know how to solve a overflow error? My base address is 0x140000000 and the function get pointer don't work, giving me the error: ctypes.ArgumentError: argument 2: : int too long to convert
I'm not sure how to get this to work for 64-bit processes, I think the rwm module might not be set up to handle them
@@RandomDavis ok, thanks for the answer
can you share the code please.
Hey is there a way to freeze the value also instead of changing it?
Kinda, you just have to repeatedly set the value. I'd use an async loop and set it at least 120x per second, or once every 8 and 1/3 milliseconds.
@@RandomDavis I thought about like reseting the value every few seconds and it was working but the game i tried to freeze value for have like a Rage mode for my character and when i become that my health just dissapears and i die in 1 hit haha . It didnt work probably because of that
Hey, do you know how you could implement the speed hacks in python?
I don't even know how Cheat Engine does them, I'd have to look at its source code. It's likely it'd be something you could do in Python, but it could be complicated, I'm just not sure.
@@RandomDavis pretty sure they edit global time
After restarting the game, do you need to constantly calculate the base address? He's just changing
@@nitotin. Depends on the game's architecture. If it uses Microsoft .NET, nothing is really static, including code. But debugging, reverse engineering and decompiling .NET is far easier than native applications.
Hi, thank you for the video. Is it possible to get the 4 bytes address of "Processname.exe"+##### without cheat engine ?
edit: figured it out. can get base address using this snippet "module_from_name(pm.process_handle, 'name.exe').lpBaseOfDll"
how to get float and double values?
The ReadWriteMemory module only converts the input to a ctypes.c_uint value. So, you'd have to modify the library to use ctypes.c_float and ctypes.c_double in those cases I guess. If you look at the source code for the write() function, it's really straightforward to make that change. You'd probably have to add a type argument for read() and write(), or make new functions like read_float, write_float, read_double, write_double.
what if the memory is protected?
how can you bypass it?
@@luxdercito that's not my area of expertise. If it's protected by anti-cheat or anti-malware software or anything like that, I'm not sure how to bypass it. Even kernel mode drivers are detected from what I recall. I'm not sure how or if you could use Python for those anyway.
why I do the add address manually step my resulting address is 12 digits long. is that normal?
If the process is 64 bit, memory addresses can be up to twice as long.
is there anyway to find base address (0x00400000) , i mean everytime we should minus with calculator to find it ?
There's probably a few different ways. You could use ctypes to call GetModuleHandleA() which can apparently return the base address if you pass in a zero but you would need to do research on that. I think cheat engine can show the base address for every loaded module in the UI though. Not sure on that.
How can i do this but with only an static memory adress, because some values stay being the same and dont change. How can i change them?
I think I need clarification on whether or not you're talking about the commonly accepted definition of a static memory address. It can be the base of a pointer, or essentially a variable that will have the same address every time. Are you asking about something related to that?
Or are you asking about memory addresses where when you change the values, they immediately revert back and nothing happens? In that case that means you have found the wrong address; it is simply a variable that copies the value of the actual one you are interested in. Or it might be the display representation of a different internal representation of a number. There's many possibilities.
So I just need clarification on what exactly you're asking.
@@RandomDavis I find an answer
Is there a way to find out the process base address without cheat engine?
You need some kind of equivalent software, like MHS, or some other program capable of reading and searching a process's memory
@@RandomDavis i figured out using python, prints a list of addresses, the one i was looking for turned out to be the first one pastebin.com/FPY3S1tq
FINALLY!!!
Glad you found what you were looking for. I might release another video on how to do pointers, float values, etcetera.
@@RandomDavis Yes, that would be usefull too!
@@2slain3born18 Here you go: ua-cam.com/video/OEgvqDbdfQI/v-deo.html
@@2slain3born18 also here's a tutorial on having multi-level pointers in Python: ua-cam.com/video/Pv0wx4uHRfM/v-deo.html
@@RandomDavis I was wondering if you could make a tutorial on how to convert full cheat tables into python, like the ones you can download and I think they are made in assembly.
Great tutorial
Thanks!
@@RandomDavis 1.Do Static address changes when I restart computer ? 2.Or I exit app ? 3.If not what changes when I close app ?
@@kayoppoopj4439 the whole point of finding a static address is that it doesn't change when you close the app will restart your computer, and it's even the same on other computers. Sometimes with some applications, static addresses will change between updates. Also if that happens in a just-in-time compiled language, like C sharp, the static addresses might change every time you launch the app. But those apps can be easily hacked via resharper or such programs.
Is this work with manual mapped driver cheat engine ?
I don't know what you're talking about so I don't know
@@RandomDavis www.mpgh.net/forum/showthread.php?t=1496312
@@weeradayusawang8441 well it could be possible to get that to work, but since that solution is specific to cheat engine, it would certainly need modifications in order to work for Python, and I have absolutely no idea whatsoever how to do that.
@@RandomDavis thats fine, thank you so much
convert a vmware vitrual hard disk to audio data lolz
Heh