[System Hacking] fho ㅡ Hook overwrite
Hook Overwrite란 malloc, free, realloc 함수는 각각 훅 변수가 존재하며,이 함수들은 시작할 때 해당 훅 변수가 존재하는지 검사하고, 존재하면 이를 호출한다.이때, 이 변수들은 libc의 bss 섹션에 위치하여 쓰기 가능하므로, 실행 중에 덮어쓰는 것이 가능하며,이에 성공하면, malloc/free/realloc 함수를 호출할 때 조작되어버린 훅을 호출하여, 조작된 주소로 jump하게 되므로, 실행 흐름이 조작되는 것이다.게다가, 훅을 실행할 때는 기존 malloc/free/realloc 함수에 전달한 인자를 같이 전달해 주기 때문에, 예를 들어 __malloc_hook를 system 함수의 주소로 덮고, malloc(“/bin/sh”) 을 호출하면,"/bin/sh"이 sy..