[Reversing] Handray (Asm to C)
시작 전에 x86-64 Calling Convention에 의해서 함수에 들어가는 인자를 알아보겠습니다. 가변 인자를 사용해도 되겠지만, 조금 더 이해하기 쉽도록 add 함수에 인자를 8개 넣어서 컴파일 했습니다. 정상적으로 실행이 됩니다. 이제 이 바이너리를 gdb로 돌려봐서 레지스터를 확인해보면 add 함수를 호출하기 전 1, 3, 5, 7, 9, 0xb, 0xd, 0xf가 알맞게 잘 들어가 있습니다. 각 인자들은 차례로 rdi, rsi, rdx, rcx, r8, r9을 사용하며, 이 외에 인자들은 스택을 이용합니다. main +12로 r9 레지스터를 이용하기 직전으로 가보면 스택에 0xf와 0xd가 차례대로 들어와 있는 것을 확인할 수 있습니다. Handray 1 0x00000000..