본문 바로가기
728x90

분류 전체보기480

리버싱핵심원리_2 03 리틀 엔디언 표기법 바이트 오더링(Byte Ordering) : 데이터를 저장하는 방식 -빅 엔디언(Big Endian) 직관적, 대형 UNIX 서버에 사용되는 RISC 계열의 CPU에서 많이 사용. 네트워크 프로토콜에 빅 엔디언이 사용 -리틀 엔디언(Little Endian) 데이터 역순 저장, Intel x86 CPU, 산술연산고 데이터 타입의 확장/축소될때 더 효율적 04 IA-32 Register 기본설명 -CPU 레지스터란? CPU 내부에 존재하는 다목적 저장 공간 CPU가 RAM에 있는 데이트를 액세스(Access)하기 위해서는 시간이 오래 걸림 레지스터는 CPU와 한 몸이기 때문에 고속으로 데이터 처리 가능 IA-32의 레지스터 Basic program execution register.. 2020. 4. 18.
운영체제_1 Chapter2 : Operating System Structures -Operating System Services 1) User Interface : Command Line Interface (CLI), Graphics User Interface(GUI) ,Batch 2) Program execution : 메모리에 로딩, run, end 3) I/O operations 4) File-system manipulation(파일 시스템 관리) 5) Communication : Shared memory 또는 message passing 6) Error detection 7) Resource allocation 8) Accounting : 사용자가 얼마나 어떤 컴퓨터 리소스를 사용하는지, To keep tr.. 2020. 4. 18.
OllyDBG 단축키 OllyDBG 는 많은 리버서들이 사용하고 있는 굉장히 유용한 프로그램입니다. 이 프로그램을 쉽게 사용하기 위한 유용한 단축키입니다. 익숙해질때까지 계속 익히는게 좋습니다. 명령어 단축키 설명 Step Into F7 하나의 OP code 실행(함수 내부로 들어감) Step Over F8 하나의 OP code 실행(함수 내부로 안 들어감) Restart Ctrl+F2 다시 디버깅시작(프로세스 종료하고 재실행시킴) Go to Ctrl+G 원하는 주소 찾아감(코드 확인할때 사용, 실행되는 것은 아님) Run F9 실행(BP 걸려있으면 그 곳에서 실행 정지) Execute till return Ctrl+F9 함수 코드 내에서 RETN 명령까지 실행(함수 탈출 목적) Execute till cursor F4 cu.. 2020. 4. 18.
리버싱 핵심 원리_1 개발도구(visual stdio같은)로 C언어 소스 코드 빌드, 실행파일이 생성. 이 과정에서 사람이 이해하기 쉬운 명령어에서 기계가 이해하기 쉬운 기계어로 바뀜. 디버거(debugger) 유틸리티에 디스어셈블러(disassembler)를 통해 코드를 보게 됨. -EP(Entry Point) : CPU에 의해 가장 먼저 실행되는 코드시작위치 코드의 앞쪽에 Stub Code(컴파일러에 의해 생성되는 코드, 전역변수와 같은 것들이 생성)이 존재 -> main() 함수를 찾는 게 중요 Kernel32.GetCommandLineW - Windoww32 API 호출 코드 -BaseCamp를 설치하는 4가지 방법 1) Goto - Ctrl + G (원하는 주소를 바로 입력하여 감) 2) BP(BreakPoint) .. 2020. 4. 18.
728x90