0.1.0 ā€¢ Published 1 year ago

fmemory v0.1.0

Weekly downloads
1
License
MIT
Repository
-
Last release
1 year ago

fmemory codacy badge

A simple node add-on powered by gmem for reading/writing memory in a given process on GNU/Linux.


šŸš§ more to come..

Since this is a Node addon, you'll need cmake-js, node-addon-api, and a C++ compiler (GCC or clang).

To install this addon simply type: npm install fmemory

if you get an error related to cmake-js, make sure that node.js is updated to the latest version and also make sure that cmake-js is installed globally and node-addon-api is installed as well. (It doesnt need to be installed globally)

The usage is pretty straight-forward.

Here's how:

const fmemory = require("fmemory");

const clientStateAddress = 0xDEADBEEF
const deltaTickOffset = 0x123

const main = (() => {
  // get process id
  const processID = fmemory.getProcessID("csgo_linux64")

  // get engine module base address
  const engineModuleBaseAddress = fmemory.getModuleBaseAddr("engine_client.so", processID)
  
  // another way to get the module base address
  // const engineModuleBaseAddress = fmemory.getModuleBaseAddr("engine_client.so", "csgo_linux64") 

  // get client state address
  const pClientState = fmemory.readMemory(engineModuleBaseAddress + clientStateAddress, fmemory.INT)

  if (pClientState) {
    // force update
    fmemory.writeMemory(pClientState + deltaTickOffset, -1 /* <- value */, fmemory.BYTE)
  }
})()

NOTE: This works with Wine/Proton as well. (fmemory still needs improvements on this area, but it works.)

When using writeMemory or readMemory functions, you will need to tell the data type parameter.

It can either be a string:

"int32", "uint32", "int64",
"uint64", "long", "ulong", 
"short", "float", "double", 
"byte", "char", "uchar",
"bool" "string", "pointer"

Or you can use one of the constants provided by the library:

fmemory.INT, fmemory.UINT, fmemory.INT64,
fmemory.UINT64, fmemory.LONG, fmemory.ULONG, 
fmemory.SHORT, fmemory.FLOAT, fmemory.DOUBLE,
fmemory.BYTE, fmemory.CHAR, fmemory.UCHAR,
fmemory.BOOL, fmemory.STRING, fmemory.POINTER

fmemory is available under the MIT License

0.1.0

1 year ago

0.0.8

1 year ago

0.0.8-1

1 year ago

0.0.7-1

1 year ago

0.0.7

1 year ago

0.0.6-2

1 year ago

0.0.6-1

1 year ago

0.0.6-5

1 year ago

0.0.6-4

1 year ago

0.0.6-3

1 year ago

0.0.6

1 year ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2-6

4 years ago

0.0.2-2

4 years ago

0.0.2-3

4 years ago

0.0.2-1

4 years ago

0.0.1-2

4 years ago

0.0.1-1

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago