Reversing26 간단한 코드 exe 파일 리버싱(함수 프롤로그, 에필로그 공부+ 어셈블리 공부) visual studio로 엄청 간단한 코드를 작성해보았다. 이 소스코드의 exe파일을 리버싱해보려고 한다. 리버싱 해보기 전에 함수 프롤로그와 에필로그가 무엇인지 간단히 살펴보고 가자. 함수 프롤로그와 에필로그는 스택 프레임에 관여를 하는 작업이다. 스택 프레임 함수가 실행되기 위해 스택이라는 곳에 여러가지 데이터를 올리게 되는데 이때 사용되는 스택의 영역을 스택 프레임이라고 한다. 스택의 영역을 말하지 때문에 스택의 틀이라고 이해할 수 있다. (그래서 스택 프레임 ~ ) 함수 프롤로그와 에필로그는 이름처럼 앞과 뒷 부분인 것을 어느정도 유추할 수 있는데, 함수가 호출되면 일련의 순차적인 과정이 일어난다. 그 과정 중 스택프레임을 구성해주는 작업까지를 함수 프롤로그라고 하고, 그 이후 함수가 수행을 마.. 2020. 10. 12. 리버싱 용어 공부 (+ c언어 컴파일 과정) 리버싱 용어 Assembly/Assembly languaage(어셈블리/어셈블리어) : 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급언어 기계어를 사람이 이해하기 쉽게 간단한 문자로 만든 언어 Disassembly(디어셈블리) : 기계어를 어셈블리어로 변환하는 것 Compile(컴파일) : 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 기계어 구조로 변환하는 과정 Decompile(디컴파일) : 컴파일된 소스를 다시 반대로 되돌리는 과정 C언어 컴파일 과정 1. 전처리기 소스파일에서 #include 구문을 만나면 해당 헤더파일을 찾아 삽입해준다. 이외에도 매크로 치환작업도 진행한다.(#define) 전처리기를 지나면 소스파일이 전처리기된 소스 파일이 된다. 2. 컴파일러 컴파일 과정에서는 전처리.. 2020. 10. 12. 이전 1 ··· 4 5 6 7 다음 728x90