본문 바로가기

리버싱

(11)
rev-basic-5 보호되어 있는 글입니다.
rev-basic 4 보호되어 있는 글입니다.
스택프레임 스택 프레임(stack frame) 메모리의 스택(stack) 영역은 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역이다. 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다. 함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역 변수 등이 저장된다. 이렇게 스택 영역에 차례대로 저장되는 함수의 호출 정보를 스택 프레임(stack frame)이라고 한다. 이러한 스택 프레임 덕분에 함수의 호출이 모두 끝난 뒤에, 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있다.
리버싱 rev-basic 2 보호되어 있는 글입니다.
리버싱 rev-basic 1 보호되어 있는 글입니다.
리버싱 rev-basic 0 보호되어 있는 글입니다.
리버싱에 필요한 것은? (레지스터, 어셈블리어) 리버싱에 필수적인 것으로 레지스터와 어셈블리어가 있습니다. 소스코드를 어셈블리 코드로 만드는 것을 컴파일, 어셈블리 코드를 기계어로 만드는 것을 어셈블이라 하고 반대로 기계어를 어셈블리 코드로 만드는 것을 디스어셈블, 어셈블리 코드를 소스코드로 만드는 것을 디컴파일이라고 합니다. 어셈블리어는 컴파일한 아키텍쳐어 따라서 Intel, Mips, Arm으로 나뉘고, 컴파일한 운영체제의 크기에 따라서 16, 32, 64비트로 나뉩니다. 이때 32비트는 x86, 64비트는 x64라고 표현합니다. 어셈블리는 레지스터를 이용해서 계산을 할 때 수식의 역할을 한다고 생각하면 편합니다. opcode는 명령어, operand는 인자값입니다. 이 어셈블리의 레지스터는 CPU의 변수입니다. 레지스터및 어셈블리의 정리는 이 링..
리버싱에 필요한 것은? (linux) 보호되어 있는 글입니다.