-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Module Base Addr Size? #13
Comments
Is the target process 32 bit or 64 bit? Use something like process hacker to find the actual base address of the application so you can see if memoryjs or robotjs are actually providing the correct base address. |
Thanks for the super-quick response! The target is 64 bit. And I built the memoryjs binaries in 64 bit mode. I'm actually migrating an old robotjs application, which does seem to be returning the correct address. I'm also noticing that most of the modules I'm getting have minus numbers for their base addresses in memoryjs, but not robotjs. So I assume robotjs is returning absolute addresses, whereas memoryjs is returning them relative to something? e.g. robotjs:
memoryjs:
Thanks! |
Is your Node version 32 bit or 64 bit? |
Sorry for the delay. |
I do get the following errors when compiling the 64 bit version:
|
After this PR, everything seems to be behaving correctly on Windows x64 and memory reads are returning the correct addresses/values. |
I have also added a commit to flip around the callback arguments. They seem to be |
And another commit, to add a Feel free to cherry-pick accordingly, if there's any problems with some of these commits. |
Thanks for your contribution! |
Hi. Firstly, excellent library here, thank you so much for your work on it.
I've been retrieving the first module for a process, in both robot-js and memoryjs and I noticed the base address seems to be different in both. I'm not sure if it's something I'm doing wrong, or if it's an issue with offset values, or maybe the data type is too small in the C code. You can see the precision is greater in robotjs, but even the lower precision values seem different too.
The szExePath matches in both, but the
modBaseAddr
varies.In memoryjs:
require("memoryjs").getModules(targetProcess.th32ProcessID)[0].modBaseAddr
Value:
1407975424
In robotjs:
targetProcess.getModules()[0].getBase()
Value:
140695946657792
I tried changing some of the types to
long
in the C code, but I'm a JS dev and am useless with C :DThanks!
The text was updated successfully, but these errors were encountered: