diff --git a/.gitignore b/.gitignore index 79a8109..6ad846b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ __pycache__ *.pyc *.egg-info/ +build/ dist/ diff --git a/MANIFEST.in b/MANIFEST.in index c28ab72..2b8b271 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include README.md include LICENSE.md +include mem_edit/VERSION diff --git a/README.md b/README.md index 66ecc88..53789b7 100644 --- a/README.md +++ b/README.md @@ -19,18 +19,18 @@ **Dependencies:** * python 3 (written and tested with 3.7) -* ctypes -* typing (for type annotations) +* ctypes +* typing (for type annotations) Install with pip, from PyPI (preferred): ```bash -pip install mem_edit +pip3 install mem_edit ``` Install with pip from git repository ```bash -pip install git+https://mpxd.net/code/jan/mem_edit.git@release +pip3 install git+https://mpxd.net/code/jan/mem_edit.git@release ``` @@ -55,7 +55,7 @@ Increment a magic number (unsigned long 1234567890) found in 'magic.exe': pid = Process.get_pid_by_name('magic.exe') with Process.open_process(pid) as p: addrs = p.search_all_memory(magic_number) - + # We don't want to edit if there's more than one result... assert(len(addrs) == 1) @@ -104,7 +104,7 @@ Read and alter a structure: s = MyStruct() s.first_member = 1234567890 s.second_member = 0x1234 - + addrs = p.search_all_memory(s) print(addrs) diff --git a/mem_edit/VERSION b/mem_edit/VERSION new file mode 100644 index 0000000..be58634 --- /dev/null +++ b/mem_edit/VERSION @@ -0,0 +1 @@ +0.3 diff --git a/mem_edit/__init__.py b/mem_edit/__init__.py index 8391f4f..8947638 100644 --- a/mem_edit/__init__.py +++ b/mem_edit/__init__.py @@ -12,12 +12,16 @@ To get started, try: """ import platform +import pathlib from .utils import MemEditError __author__ = 'Jan Petykiewicz' -version = '0.2' + +with open(pathlib.Path(__file__).parent / 'VERSION', 'r') as f: + __version__ = f.read().strip() +version = __version__ system = platform.system() diff --git a/mem_edit/linux.py b/mem_edit/linux.py index 4dafd1c..ae8404d 100644 --- a/mem_edit/linux.py +++ b/mem_edit/linux.py @@ -40,7 +40,7 @@ def ptrace(command: int, pid: int = 0, arg1: int = 0, arg2: int = 0) -> int: """ Call ptrace() with the provided pid and arguments. See the ```man ptrace```. """ - logger.debug('ptrace({}, {}, {}, {})'.format(command, pid, arg1, arg2)) + logger.debug('ptrace({}, {}, {}, {})'.format(command, pid, arg1, arg2)) result = _ptrace(command, pid, arg1, arg2) if result == -1: err_no = ctypes.get_errno() @@ -58,7 +58,7 @@ class Process(AbstractProcess): self.pid = process_id def close(self): - os.kill(self.pid, signal.SIGSTOP) + os.kill(self.pid, signal.SIGSTOP) ptrace(ptrace_commands['PTRACE_DETACH'], self.pid, 0, 0) self.pid = None @@ -78,7 +78,7 @@ class Process(AbstractProcess): with open('/proc/{}/cmdline', 'rb') as f: return f.read().decode().split('\x00')[0] except FileNotFoundError: - return '' + return '' @staticmethod def list_available_pids() -> List[int]: diff --git a/setup.py b/setup.py index bec3d13..5b53ab7 100644 --- a/setup.py +++ b/setup.py @@ -1,15 +1,15 @@ #!/usr/bin/env python3 from setuptools import setup, find_packages -import mem_edit - with open('README.md', 'r') as f: long_description = f.read() +with open('mem_edit/VERSION', 'r') as f: + version = f.read().strip() setup(name='mem_edit', - version=mem_edit.version, + version=version, description='Multi-platform library for memory editing', long_description=long_description, long_description_content_type='text/markdown', @@ -34,7 +34,6 @@ setup(name='mem_edit', 'trainer', ], classifiers=[ - 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Development Status :: 4 - Beta', 'Environment :: Other Environment', @@ -50,6 +49,9 @@ setup(name='mem_edit', 'Topic :: Utilities', ], packages=find_packages(), + package_data={ + 'mem_edit': ['VERSION'] + }, install_requires=[ 'typing', ],