DEV Community

Cover image for pedumper: A new tool for dumping PE files
Chihiro Hasegawa
Chihiro Hasegawa

Posted on

pedumper: A new tool for dumping PE files

Summary

I have published a new tool for dumping PE files in the target memory on Windows🎉
The tool name is pedumper. Here is a link for the tool.
https://github.com/owlinux1000/pedumper

Installation

You can easily install pedumper by pip.

pip install pedumper
Enter fullscreen mode Exit fullscreen mode

How to use

pedumper is a very simple interface as follows. You have to pass an argument which is a PID of the target process.

how to use

If the tool can find a valid PE file, the file is saved on the disk. The filename is used by the memory address.

How to create pedumper?

When I create this tool, I have to learn two things.

1. ctypes

ctypes is a standard library of python. To use this library, we can execute Win32 API on Python like this.

def read_process_memory(hProcess: int, offset: int, size: ctypes.c_size_t) -> bytes:
    buf = ctypes.create_string_buffer(size)
    ctypes.windll.kernel32.ReadProcessMemory(
        ctypes.cast(hProcess, ctypes.c_void_p),
        ctypes.cast(offset, ctypes.c_void_p),
        ctypes.cast(buf, ctypes.c_wchar_p),
        size,
        None,
    )
Enter fullscreen mode Exit fullscreen mode

2. Memory Basic Information of Windows

On Windows, a memory of the process is defined by MEMORY_BASIC_INFORMAION structure. Here is a definition from Microsoft Official document. I have learned some fileds of the structure through implementing pedumper.

typedef struct _MEMORY_BASIC_INFORMATION {
  PVOID  BaseAddress;
  PVOID  AllocationBase;
  DWORD  AllocationProtect;
  WORD   PartitionId;
  SIZE_T RegionSize;
  DWORD  State;
  DWORD  Protect;
  DWORD  Type;
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;
Enter fullscreen mode Exit fullscreen mode

Conclusion

I introduced pedumper created by myself. If you are interested in the tool, please use it and tell me feedback😄

Top comments (0)