나는 파이썬에서 PROCESS_VM_READV를 호출하는 법을 배우려하고있다. the manual에서 읽기, 나는 그들의 예와 비슷한 것을 창조하기로 결정했습니다.python에서 linux syscall PROCESS_VM_READV를 호출하는 방법은 무엇입니까?
루트 액세스 권한이있는 터미널에 python3을 열었습니다. 그런 다음 & 초기화에 필요한 모듈과 변수
예에서import ctypes
libc = ctypes.CDLL('libc.so.6')
vm=libc.process_vm_readv
을 가져 진행, iovec라는 구조체가있다. 그래서,
class iovec(ctypes.Structure):
_fields_=[("iov_base",ctypes.c_void_p),("iov_len",ctypes.c_int)]
그런 다음 KMines
의 PID와vm(2242,local,2,remote,1,0)
을 PROCESS_VM_READV를 호출, 로컬 및 원격
p1=ctypes.c_char_p(b"")
p1=ctypes.cast(p1,ctypes.c_void_p)
local=iovec(p1,10)
remote=iovec(0x00400000,20) # Address of ELF header
마지막으로 변수를 만들 파이썬에서 다시 작성해야하지만 반환 -1이고 로컬 또는 원격의 iov_base에는 변경 사항이 없습니다. 나는 아주 단순한 실수를하고있는 것처럼 느껴지지만 내 손가락을 대충 댈 수는 없다.
도움을 주시면 감사하겠습니다.