Security/개인 연구

이건 정리를 해두어야 할 것 같아서 글을 쓴다. 요약하자면 FS 세그먼트 부분과 , libc 메모리 쪽 컨트롤이 가능할 때 원하는 함수 실행이 가능하다 exit 함수에서는 필수적으로 _call_tls_dtors가 호출이 되는데, ida에 문제가 생겨서 좀 이상해졌지만 저 memory 부분은 free함수이다. 따라서 0x3f0b18과 fs 쪽 메모리를 건드려 줄 수 있다면 원하는 함수를 호출 시킬 수 있다. 이때 free hook 까지 이용하기 위해서는 메모리 세팅을 rdi=[rbx+8]=0 rax=[rbx+0x10]=아무 주소(실제 존재하는) rdx=[rbx+0x18] 으로 맞춰줘야 한다. rdi가 0인이유는 xor연산을 무시하기 위함이다. 저 rax에 주소를 넣어주는 이유는 lock을 하기 때문이다.
ptrace함수로만 뻘짓을 하고 있었는데, /proc/pid/mems 이 녀석이 그냥 프로세스의 메모리였다.. 파일열어서 fseek로 탐색해서 원하는곳에 쓰거나 읽을 수 있다. 단 바뀐 데이터 반영을 위해서는 계속 열고 닫았다가 반복해야함.. heap tracer는 파이썬으로 만들어야겠다. 이런 것이 있다니...
OSOR2
'Security/개인 연구' 카테고리의 글 목록 (2 Page)