목록2021/02/04 (1)
D1N0's hacking blog
C언어 함수 호출과정 - x86
포너블에서 너무 중요하고 기초적인 내용이지만 아직도 헷갈려서 정리한다 이 글은 독자가 기초적인 C언어와 어셈블리어를 알고 있는 상태라고 가정한다 모든 코드는 WSL Ubuntu 20.04 LTS에서 -m32 -no-pie 옵션을 사용해서 gcc로 컴파일 되었고, 실행 파일들은 글 하단에 올려놓았다 cdecl은 수많은 32bit 프로그램에서 사용되는 방식이다 함수를 호출하고, 호출자가 스택을 정리하는 호출자 정리 방식의 일종이다 #include int foo(int a, int b, int c) { return a+b+c; } int main() { int a = foo(1, 2, 3); return 0; } 위와 같은 C 코드를 짜고 32bit 컴파일을 했다 gef gdb로 까 보면 main 함수는 이렇..
Pwnable
2021. 2. 4. 18:18