Hướng dẫn python read memory of another process - python đọc bộ nhớ của một tiến trình khác
Tôi đang cố gắng viết một tập lệnh Python đọc một loạt các vị trí bộ nhớ của một quy trình cụ thể. Show
Làm thế nào tôi có thể làm điều này trong Python? Tôi sẽ sử dụng Windows nếu nó quan trọng. Tôi có các quy trình mà tôi đang cố gắng đọc/chỉnh sửa. Tôi sẽ phải hoàn nguyên để gọi readProcessMemory () và sử dụng ctypes? Đã hỏi ngày 25 tháng 11 năm 2009 lúc 4:15Nov 25, 2009 at 4:15
Filet-O-FishFilet-O-FishFilet-O-Fish Huy hiệu vàng 1711 Huy hiệu bạc4 Huy hiệu đồng1 gold badge1 silver badge4 bronze badges Tôi đã không thấy bất cứ điều gì trong các thư viện Python tiêu chuẩn nhưng tôi đã tìm thấy một ví dụ sử dụng CTYPE như bạn đã đề xuất trên một trang web khác:
Đã trả lời ngày 25 tháng 11 năm 2009 lúc 4:44Nov 25, 2009 at 4:44
KINGNESTORKINGNESTORKingNestor 64K51 Huy hiệu vàng119 Huy hiệu bạc151 Huy hiệu Đồng51 gold badges119 silver badges151 bronze badges 1 Có, from ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()5 (hoặc from ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()6) và from ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()7 chính xác là con đường để đi. Bạn đang tìm kiếm một cái gì đó thêm/khác nhau? Những gì, đặc biệt là? Đã trả lời ngày 25 tháng 11 năm 2009 lúc 4:45Nov 25, 2009 at 4:45
Alex Martellialex MartelliAlex Martelli 830K164 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng164 gold badges1205 silver badges1385 bronze badges 2
Sự mô tảLớp ReadWriteMemory được thực hiện trên Python để đọc và viết vào bộ nhớ của bất kỳ quá trình nào. Lớp này không phụ thuộc vào bất kỳ mô -đun bổ sung nào và chỉ sử dụng các thư viện Python tiêu chuẩn như CTYPES. ReadWriteMemorySự mô tảTài liệu Yêu cầuPython 3.4+ HĐH: Windows 7, 8 và 10 API Windows trong mô -đun này:EnumProcesses getProcessImageFileName Quy trình mở Bảo mật và quyền truy cập Quyền gần gũi GetLasterror ReadProcessMemory WriteProcessMemoryfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() Cách sử dụngfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() process = rwm.get_process_by_name('ac_client.exe') Nhập và khởi tạo lớpfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() process = rwm.get_process_by_id(1337) Nhận một quy trình theo tênfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() processes_ids = rwm.enumerate_processes() Nhận một quy trình theo IDfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() process = rwm.get_process_by_name('ac_client.exe') print(process.__dict__) Nhận danh sách các quy trình đang chạy ID của hệ thống hiện tạifrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() process = rwm.get_process_by_name('ac_client.exe') help(process) In thông tin quy trìnhfrom ReadWriteMemory import ReadWriteMemory from ReadWriteMemory import ReadWriteMemoryError rwm = ReadWriteMemory() try: process = rwm.get_process_by_name('ac_client.exe') except ReadWriteMemoryError as error: print(error) Mở quy trìnhĐể có thể đọc hoặc ghi vào bộ nhớ của quy trình trước tiên, bạn cần gọi phương thức Open (). from ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() process = rwm.get_process_by_name('ac_client.exe') process.open() Ví dụ, đặt con trỏ: để có được sức khỏe, đạn và lựu đạnCác độ lệch phải là một danh sách theo đúng thứ tự, nếu địa chỉ không có bất kỳ độ lệch nào thì chỉ cần chuyển địa chỉ. Bạn cần phải vượt qua hai đối số, đầu tiên là địa chỉ quy trình là hex và một danh sách các lần bù là hex. from ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory() process = rwm.get_process_by_name('ac_client.exe') process.open() health_pointer = process.get_pointer(0x004e4dbc, offsets=[0xf4]) ammo_pointer = process.get_pointer(0x004df73c, offsets=[0x378, 0x14, 0x0]) grenade_pointer = process.get_pointer(0x004df73c, offsets=[0x35c, 0x14, 0x0]) Đọc các giá trị cho sức khỏe, đạn và lựu đạn từ bộ nhớ của quy trìnhfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()0 In các giá trị sức khỏe, đạn và lựu đạnfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()1 Viết một số giá trị ngẫu nhiên cho sức khỏe, đạn và lựu đạn vào bộ nhớ của quy trìnhfrom ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()2 Đóng xử lý quy trình khi bạn hoàn thành bằng cách sử dụng nó.from ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()3 Ví dụKiểm tra mã bên trong thư mục thử nghiệm trên tệp Python có tên Test_script.py. Trò chơi AssaultCube được sử dụng cho thử nghiệm này là phiên bản v1.1.0.4 Nếu bạn sử dụng phiên bản khác thì bạn sẽ phải sử dụng CheatEngine để tìm địa chỉ bộ nhớ. https://github.com/AssaultCube/ac/releases/tag/v1.1.0.4 Để biết thêm ví dụ, hãy xem Trò chơi trò chơi AssaultCube: https://github.com/vsantiago113/actrainer from ReadWriteMemory import ReadWriteMemory rwm = ReadWriteMemory()4 Làm thế nào tôi có thể đọc bộ nhớ của một quá trình khác trong Python trong Windows?Bạn có thể sử dụng TaskList.exe để liệt kê các quy trình, sau đó xóa kết quả.Sau đó sử dụng Taskkill.exe (hoặc tstskill.exe) để kết thúc chúng.
Quá trình có thể đọc bộ nhớ quy trình khác?Các quy trình không thể truy cập vào bộ nhớ của các quy trình khác về nguyên tắc.Trong thực tế, hệ điều hành cơ bản thường cung cấp cơ chế này cho các quy trình đặc quyền.. In practice the underlying operating system usually offers this mechanism to privileged processes.
Bạn có thể đọc bộ nhớ với Python không?Lớp ReadWriteMemory được thực hiện trên Python để đọc và viết vào bộ nhớ của bất kỳ quá trình nào.Lớp này không phụ thuộc vào bất kỳ mô -đun bổ sung nào và chỉ sử dụng các thư viện Python tiêu chuẩn như CTYPES.. This Class does not depend on any extra modules and only uses standard Python libraries like ctypes. |