입력 받은 두 수 (a, b)를 더한 값을 지역변수 c에 담아 c를 리턴하는 c 함수이다.int sum (int a, int b){ int c = a + b; return c;} 이를 어셈블리어로 표현해보면 아래와 같다.push ebpmov ebp, esppush ecxmov eax, [ebp + arg_0] // 첫번째 인수를 eax 레지스터에 넣는다.add eax, [ebp + arg_4] // 두번째 인수를 eax에 더한다.mov [ebp + var_4], eax // 지역번수에 eax값을 넣는다.mov eax, [ebp + var_4] // 리턴을 위해 eax에 지역변수 값을 넣는다.mov esp, ebppop ebpretn push ebpmov ebp, esp이 부분이 함수의 시작을 알리는 부분..
지금부터 게시할 글들은 리버스 엔지니어링 바이블 책을 나름 공부하여 요약하는 내용이다.출처 : http://wikibook.co.kr/reverse-engineering-bible/ * 어셈블러에서 연산은 레지스터를 이용함 * 레지스터 ( IA-32)- CPU가 사용하는 변수 * 종류- EAX (Accumulator) : 산술 계산(+,-,*,/ 등)을 하며, 리턴값을 전달.- EDX (Data): EAX와 역할은 같으나(+,-,*), 리턴 값의 용도로는 사용되지 않음.- ECX (Count): 반복문을 수행할 때 카운팅 하는 역할, 일반적 반복문 i++이 아닌 i-- 로 반복문이 수행됨.- EBX: EAX, EDX, ECX 가 부족할 때 등 적당한 용도에 사용되는 여분 레지스터- ESI ( Source..
- Total
- Today
- Yesterday
- rxswift
- 전자서명
- JavaScript
- ATS
- full stack
- HTTPS
- executable jar
- yss
- iOS10
- build set
- 윈도우 라이브러리
- cipher
- ucrtbase.dll
- angular
- execute double click
- 암호화
- reactivex
- Universal CRT
- TLS1.2
- 대칭키
- PCX
- Node.js
- App Transport Security
- AES
- node js
- Visual Studio
- 비대칭키
- TypedArray
- MEAN stack
- remote debug
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |