Hacking/Reversing
[리버싱] 함수의 에필로그, 함수 호출 규약
리버싱을 하려고 디버거에 바이너리를 올려놓고 제일 먼저 해야할것은 각 함수가 뭘하는지. 역할을 파악하는 것이다 그러고 난 뒤엔, 어떤식의 함수인지 인자는 몇개를 전달하는지에 대한정보를 파악 해야한다 대체로 함수는 push ebpmov ebp,esp ~ mov esp,ebppop ebp 으로 시작과 끝을 맺으며 이 에필로그가 보인다면 하나의 함수라고 보면된다. 이 어셈블리코드는 스택을 쓰기위함이다 함수의 호출 규약 함수 호출 규약에는 자주쓰이는 4가지 호출규약이 있다. _cdecl , _stdcall , _fastcall , _thiscall 함수 호출 규약을 알게되면, call문을 통해 인자와 함수에 대한 중요내용을 파악하기 쉽기 때문이다. 먼저 _cdecl 방식을 살펴보겠다. _cdecl방식은 C언어 ..
2016. 5. 11. 20:38