system주소!
lb = libc_leak - offset
print(f"libc_base = {hex(lb)}") # 0xf7d3f000
system = lb + libc.symbols['system'] + 0x10 # 이래야 system주소가 정상적으로 따집니다..
print(f"system_addr = {hex(system)}") # 0xf7df3950
libc_base가 000으로 끝나는걸 보니 libc_base는 잘 따진 것 같은데..
libc.symbols["system"]으로 system의 주소를 구하면 system - 0x10의 주소가 따집니다..
전체 코드는 풀이 과정에 올려놓았습니다..ㅠㅠ 도움 부탁드립니다..!!
#pwnable
작성자 정보
답변
1
qwerty_io
대표 업적 없음
해당 내용만 가지고 판단할 수는 없지만, 아마 libc가 달라 발생하는 문제인 것 같습니다. libc 버전의 차이가 크지 않은 경우, 몇몇 심볼들의 오프셋들은 서로 같지만 또 다른 몇몇의 심볼들은 오프셋이 조금 다를 수 있습니다.
sha256sum으로 libc가 완전히 동일한지 확인해보는 것을 권장드립니다!