ufrisk/MemProcFS

process.memory.read (scatter too) fails to read requested size

Closed this issue · 1 comments

Hello :)

I have met an issue, that process.memory.read returns partial binary data.
Currently minimized to simpliest version.

Snipper/test code: https://gist.github.com/BubonicPestilence/af2653f4513a62f6327b0af55717b1cf

Explanation:

  1. Going thru all processes
  2. Going thru all modules that have image_size > 110MB
  3. Trying to read this module.base + image_size using process.memory.read
  4. If len(read_data) != image_size, trying to read MISSING PART and confirm it HAVE data

Output example:

Discord.exe Discord.exe
 - got: 134 823 936 module.image_size: 181 272 576 missing: 46 448 640
 - reading missing chunk
 - - got: 19 206 144; # of 0x0: 16 967 726

I could understand if there were only 0x0 at the end of image_size, but after checking for non-0x0... there are tons of 0x0 bytes.

P.S. 75T on AMD Processor. Stable with algo=2

The issues section here at Github is for reporting bugs/issues in the software as such, and for suggesting new features and/or feature enhancements.

For general questions the Discord server is probably better. I'm closing this issue here. (And hopefully you should find my explanation about this behavior in the Discord server).