리버싱

· 리버싱
※ 빅 엔디언(Big Endian) : 데이터를 저장할 때 사람이 보는 방식과 동일하게 앞에서부터 순차적으로 저장 ※ 리틀 엔디언(Little Endian) : 데이터를 저장할 때 역순으로 저장한다. 즉, 저장되는 바이트의 순서가 뒤집어져 있다. 1. 바이트 오더링 예시 BYTEb= 0x12; WORDw= 0x1234; DWORDdw= 0x12345678; charstr[]= "abcde"; - 2바이트 이상의 크기를 가진 자료형을 저장할 때(WORD, DWORD), 위처럼 차이가 발생함을 알 수 있다. - 1바이트 자료형인 BYTE와 문자열인 str은 Endian 형식에 상관없이 동일하다. - 문자열이란 char배열이기 때문에 각 바이트를 하나씩 연속한다고 생각하면 되기 때문에 동일한 순서로 저장된다...
· 리버싱
※ 빌드 : 개발도구를 이용하여 소스코드를 실행파일로 만듦 - 사람이 이해하기 쉬운 고급언어를 기계가 이해하기 쉬운 기계어로 변환하는 과정 ※ 디버거(Debugger) 유틸리티 : 디버거에 탑재된 디스어셈블러 모듈로 기계어를 어셈블리 언어로 변역함 - 디버거를 통해 어떤 실행 파일도 어셈블리 언어로 번역하여 볼 수 있음 - 어셈블리 언어는 CPU에 종속되어 있는데, PC에서 많이 사용되는 Intel x86 계열의 CPU와 모바일 제품에서 많이 사용되는 ARM 계열의 CPU는 서로 어셈블리 명령어의 형태가 다름 1. OllyDbg 기본 화면 1) Code window : 주소에 따른 CPU 명령, 어셈블리코드, 주석을 표시 2) Register window : CPU register 값을 실시간으로 표시하..
· 리버싱
※ 리버스엔지니어링(Reverse Enginerring, RE: 역공학) : 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업 ※ 리버스 코드 엔지니어링(Reverse Code Engineering, RCE) : 소프트웨어 분야의 리버스 엔지니어링 ● 리버싱 분석 방법 1) 정적분석 : 파일을 실행하지 않고 겉모습을 관찰하여 분석하는 방법 - 파일의 종류, 크기, 헤더정보, Import/Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디버깅 정보, 디버깅 인증서 등의 다양한 내용 확인 - 디스어셈블러(Disassembler)를 이용해서 내부 코드와 그 구조를 확인 2) 동적분석 : 파일을 직접..
째로스
'리버싱' 카테고리의 글 목록