본문 바로가기

전체 글160

스택 프로세스에서 스택 메모리의 역할은 아래와 같습니다. 1. 함수내의 로컬 변수 임시 저장 2. 함수 호출 시 파라미터 전달 3. 복귀 주소(return address)저장 위와 같은 역할을 수행하기에는 스택의 FIFO(First In Last Out) 구조가 아주 유용합니다. 스택의 특징 프로세서에서 스택 포인터(ESP)의 초기 값은 Stack Bottom쪽에 가깝습니다. PUSH 명령에 의해서 Stack에 값이 추가되면 스택 포인터는 Stack포인터는 Stack Top향해(위쪽으로) 움직이고, POP명령에 의해 스택에서 값이 제거되면 스택 포인터는 Stack Bottom을 향해(아래쪽으로) 움직입니다. 즉 높은 주소에서 낮은 주소 방향으로 스택이 자라납니다. 아래에서 윗 방향으로 스택이 자랍니다. 이러한.. 2021. 11. 4.
CPU 레지스터 레지스터란 cpu내부에 존재하는 다목적 저장 공간입니다. 우리가 일반적으로 일반적으로 메모리라고 얘기하는 RAM(Random Access Memory)과는 조금 성격이 다릅니다. CPU가 RAM에 있는 데이터를 엑세스(Access)하기 위해서는 물리적으로 먼 길을 돌아가야 하기 때문에 시간이 오래 걸립니다. 하지만 레지스터는 CPU와 한 몸이기 때문에 고속으로 데이터를 처리할 수 있습니다. 1. 범용 레지스터 범용 레지스터(General Purpose Registers)는 이름처럼 범용적으로 사용되는 레지스터들입니다.('막'쓰는 '막'레지스터들이라고 생각하면 됩니다.) IA-32에서 각각의 범용 레지스터들의 크기는 32비트(4바이트)입니다. 보통은 상수/주소 등을 저장할 때 주로 사용되며, 특정 어셈블리.. 2021. 11. 4.
기초 리버싱 1.1. 리버스 엔지니어링 리버스 엔지니어링(Reverse Engineering, RE : 역공학) 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업. 1.2. 리버스 코드 엔지니어링 리버스 코드 엔지니어링(Reverse Code Engineering, RCE)은 소프트웨어 분야의 리버스 엔지니어링. 1.2.1. 리버싱(분석) 방법 1) 정적분석 파일의 겉모습을 관찰하여 분석하는 방법. 파일의 종류(EXE, DLL, DOC, ZIP 등), 크기, 헤더(PE)정보, Import/Export API, 내부문자열, 실행 압축 여부, 등록정보, 디버깅정보, 디지털 인증서 등의 다양한 내용을 확인하는 것 2) 동적분석 .. 2021. 11. 2.
test test 2021. 11. 2.
반응형