| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- __fastcall
- ABI
- 코드엔진
- stack frame
- 리치헤더
- Image dos header
- x64
- 리버싱
- 실행파일
- rev
- __stdcall
- Reversing
- __cdecl
- 크랙미
- pe format
- x32
- Python
- image section header
- Calling Convention
- 32bit
- CodeEngn
- Programmers
- Rich Header
- RVA
- __vectorcall
- 함수 호출 규약
- Dos Stub
- 파이썬
- crackme
- 프로그래머스
- Today
- Total
목록Calling Convention (3)
kj0on
0. x32 함수 호출 규약 (32bit Calling Convention) 32비트 함수 호출 규약의 자세한 내용은 https://kj0on.tistory.com/42 참고1. Common Calling Convention (__stdcall, __cdecl, __fastcall, __vectorcall) 성능항목의미테스트 함수int(int a, int b, int c, int b) → a + b + c + dfloat(float a, float b, float c, float d) → a + b + c + dITERATIONS한 번의 샘플에서 각각의 테스트 함수를 몇 회 호출할지에 대한 값이다. 값이 클수록 측정 정밀도는 올라가지만 전체 실행 시간이 길어진다.SAMPLES독립적인 측정 값이다. 매 샘..
0. 64비트 스택 프레임 (64bit Stack Frame)64비트 스택프레임에 대한 자세한 설명은 https://kj0on.tistory.com/43 참고1. 정의함수와 호출자 간에 인수를 전달하고 값을 반환하기 위한 규칙 프로시저(함수) 호출 시 인자를 어디에 어떤 순서로 전달하고, 누가 스택을 정리하며, 레지스터를 보존할지, 어느 레지스터로 값을 반환할지 등을 규정한 저수준 인터페이스 계약이다. 컴파일러, 언어, OS, CPU가 서로 다른 오브젝트 코드를 같은 ABI 안에서 링크 및 호출할 수 있게 해준다.2. Caller(호출자)와 Callee(피호출자)Caller는 함수를 호출하는 쪽이고, Callee는 호출된 함수이다. Caller는 인자를 준비하고 제어를 Callee에게 넘기며, Calle..
0. 32비트 스택 프레임 (32bit Stack Frame)32비트 스택프레임에 대한 자세한 설명은 https://kj0on.tistory.com/41 참고1. 정의함수와 호출자 간에 인수를 전달하고 값을 반환하기 위한 규칙 프로시저(함수) 호출 시 인자를 어디에 어떤 순서로 전달하고, 누가 스택을 정리하며, 레지스터를 보존할지, 어느 레지스터로 값을 반환할지 등을 규정한 저수준 인터페이스 계약이다. 컴파일러, 언어, OS, CPU가 서로 다른 오브젝트 코드를 같은 ABI 안에서 링크 및 호출할 수 있게 해준다. https://learn.microsoft.com/ko-kr/cpp/cpp/calling-conventions?view=msvc-1702. Caller(호출자)와 Callee(피호출자)Call..