-Computer Theory

[System] FSB .dtors란?

guswlsdk 2018. 1. 30. 14:33
반응형

1. .dtors

포맷 스트링 버그(이하 FSB)에서 사용하는 부분이다.

gcc는 컴파일 할 때 .ctors 와 .dtors 두 영역을 생성한다고 한다.


.ctors는 main() 전에 실행되고


.dtors는 main() 종료 후에 실행된다.



FSB 기법을 사용할 때는 .dtors 함수가 실행되기 전(main이 끝나기 전)에 쉘 코드 주소를 덮는다.


그렇게 되면 main()이 끝날 쯤 .dtors가 아닌 쉘코드를 실행하게 되는 것이다.




 


08049594가 main() 문이 끝나고 실행되는 .dtors 함수 주소이다.


즉, main문이 끝나기 전 0x8049594 + 4 = 0x8049598에 쉘코드를 덮으면 된다.

반응형