Profile

youngsouk

youngsouk

FC3 보호기법에 대해

오늘은 LOB FC3에 대해 풀이하기 전에 FC3에 사용된 보호기법에 대해 알아볼 것입니다. 먼저 사용된 풀이 기법은 ASLR, StackDummy, ASCII armor NX가 있습니다.


1. ASLR은 address space layout randomization의 약자로 말 그대로 프로그램을 실행할 때 마다 메모리의 주소가 바뀐다. 


2. Stack Dummy는 말그대로 스택의 값들 사이에 Dummy(쓰레기 값)가 있다. 예를 들면 256바이트 크기의 변수를 선언하는데 300바이트만큼 ebp에서 빼주는 것이다.  


3. ASCII armor는 공유라이브러리의 메모리 주소가 0x00으로 시작하게 된다. BOF는 주로 문자열 복사 함수에서 나는데 이 ASCII armor로 인해 0x00 널이 넣어지게 되면 여기까지만 복사를 하고 함수가 종료된다 즉 RTL 기법에서 사용하는 대로 인수를 넣어줄 수 없는것이다. 


4. NX는 스택에서 명령어 실행이 불가능한 것이다. 즉 스택에 쉘코드를 삽입하는 방법으로는 안된다는 것이다. 


이상으로 FC3보호기법에 대해 알아봤습니다. 다음에는 level1 gate 대한 설명으로 돌아오겠습니다. 봐주셔서 감사합니다!