완료됨
어떤 문제인지는 모르겠지만 오프셋 길이가 다릅니다.
강의에서 말씀해주신대로 환경 구축 다 하고 patchelf 까지 한 상태에서 vmmap을 켜봤는데 libc-2.27.so와 ld-2.27.so의 시작주소도 다를 뿐더라 서로 간의 offset도 다르게 나옵니다.
왜 이럴까요?? 이것 때문에 몇 시간 동안 고민중입니다....
#시스템해킹
#공격기법
#rtld_global
작성자 정보
답변
1
안녕하세요. vmmap에서 메핑된 시작 주소가 다르다고 환경이 다르다는 것을 의미하는 것은 아니기 때문에, 사실 offset과 시작 주소가 다른 것이 문제가 될지 잘 모르겠습니다.
일반적으로 ASLR이라는 보호 기법이 켜져 있기 때문에 libc 및 ld의 매핑 주소는 매번 달라지기 마련입니다. 다만, gdb에서 프로세스를 실행하는 경우 디버깅의 편의를 위하여 libc, ld의 주소 및 heap/stack의 주소를 고정시켜 주는 기능을 제공합니다. 그래서 gdb에서 프로세스를 실행했을 때의 vmmap과 외부에서 이미 실행 중인 프로세스를 gdb attach했을 때의 vmmap 결과도 다르기 마련입니다.