리눅스에서 GOT 를 후킹해서 시스템 전체의 공유라이브러리 API 를 변조할 수 있다고 하는데 GOT 라는것은 프로세스별로 있는 공유라이브러리 참조 테이블로 알고 있습니다 프로세스별로 각각 있는 것이라면 GOT 를 변조해서 어떻게 시스템 전체의 공유라이브러리 참조를 변경시킬 수 있을까요?
처음 듣는 얘기라서 사실 확인이 필요하군요. LD_PRELOAD를 이용한 library 치환은 가능하지만 한 process의 GOT 변경이 다른 process의 GOT에 영향을 주는 것은 이해하기 어렵군요. 해당 자료의 출처가 어디인지 알려주시기 바랍니다.
PLT redirection으로 시스템 전체의 공유 라이브러리를 치환할 수는 없습니다. PLT redirection은 Windows의 API hooking과 유사한 방법입니다. 따라서 개별 프로세스에 대해 일일이 PLT를 바꿔줘야 합니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
해당 내용에 대한 출처를 알려주세요.
처음 듣는 얘기라서 사실 확인이 필요하군요.
LD_PRELOAD를 이용한 library 치환은 가능하지만 한 process의 GOT 변경이 다른 process의 GOT에 영향을 주는 것은 이해하기 어렵군요. 해당 자료의 출처가 어디인지 알려주시기 바랍니다.
혹시 PLT redirection을 얘기하는 것이라면...
PLT redirection으로 시스템 전체의 공유 라이브러리를 치환할 수는 없습니다.
PLT redirection은 Windows의 API hooking과 유사한 방법입니다.
따라서 개별 프로세스에 대해 일일이 PLT를 바꿔줘야 합니다.
댓글 달기