[Reversing] x64dbg 변수 추정, 간단한 코드분석
이번 포스팅은 아래 c언어로 작성된 소스코드를 토대로 만들어진 exe(실행 파일)을 x64dbg 분석 툴을 이용해서 분석하는 것을 목표로 합니다. #include int main() { int a, b, c, d; a = 22; b = 5; c = a + b; d = a - b; printf("a = %d\nb = %d\nc = %d\nd = %d", a, b, c, d); } 주요 분석 부분의 메모리 주소는 다음과 같습니다. 메모리주소 어셈블리코드 주석(설명) 00401003 sub esp,10 변수가 4개 00401006 mov dword ptr ss:[ebp-4], 16 ebp-4 a=(22) 0040100D mov dword ptr ss:[ebp-8], 5 ebp-8 b=(5) 00401014 m..
[Reversing] 정적 분석,동적 분석, Hex Code,Assembly Code, 패치와 크랙
본 글은 '리버싱 핵심원리' 서적을 바탕으로 공부한 내용을 바탕으로 서술한 포스팅입니다. 1.1리버스 엔지니어링(Reverse Engineering, RE:역공학) 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석해 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업 1.2리버스 코드 엔지니어링(Reverse Code Engineering, RCE) 소프트웨어 분야의 리버스 엔지니어링 1.2.1 리버싱 분석방법 1) 정적 분석 파일의 겉모습을 관찰하여 분석하는 방법으로, 파일을 실행하지 않는 분석방법입니다. 파일의 종류(EXE, DLL, DOC, ZIP 등), 크기, 헤더(PE), 정보, Import/Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디..