0x01 끄적끄적 :)/Reversing

    리버싱, 레지스터(Register)

    리버싱, 레지스터(Register)

    레지스터(Register) 범용 레지스터 CPU는 연산, 처리도 하지만, 레지스터라는 곳에 저장도 한다. 범용 레지스터란, 이름처럼 범용적으로 사용되는 레지스터들을 의미한다.즉, CPU가 필요할 때 쓰는 레지스터라고 생각하면 된다.보통은 상수/주소값 등을 저장할 때 주로 사용되며, 특정 어셈블러 명령어에서는특정 레지스터를 조작하여 값을 저장 및 사용하기도 한다. EAX, EBX, ECX, EDX 주로 산술 연산(ADD, SUB, XOR, OR 등...) 명령어에서 상수/변수 값의 저장 용도로 사용 된다.추가적으로 ECX와 EAX는 특수한 용도로 사용되기도 한다. EBP, ESP, ESI, EDI 주로 메모리 주소를 저장하는 포인터 용도로 사용된다.ESP는 Stack 메모리 주소를 가리킨다. (PUSH, ..

    리버싱(Reversing)이란?

    리버싱(Reversing)이란?

    리버싱(Reversing) 리버싱(Reversing)은 리버스 엔지니어링(Reverse Engineering)이라고 한다. 소프트웨어 공학의 한 분야로, 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일을 말한다. 이것은 시스템을 이해하여 적절히 변경하는 소프트웨어 유지보수 과정의 일부이다. [네이버 지식백과] 예를들어 exe파일이 생성되는 과정을 한번 보면, 제일 먼저 프로그래머가 1. 소스코드를 작성 2. 컴파일(Compile)3. 링킹(Linking)4. exe파일 생성이러한 순서로 진행 되게 된다. 앞서 사전적 의미와 같이 이렇게 만들어진 exe파일을 거꾸로 분석하면서 기계어와 1:1대응되는 어셈블리어, 좀 더 깊게는 원시코드를 알아내는 것이 리버스 엔지니어..