본문 바로가기

리버싱/x64dbg 디버거를 활용한 리버싱과 시스템 해킹의 원리

ch03 - 디버거의 활용 방법(x64DBG/OllyDBG) 01 프로그램 디버깅 02 디버거의 종류 03 디버거 사용법(x64 dbg) 1. 프로그램 디버깅 1.1 프로그래밍 오류 - 1차이 오류(off-by-one error) : 프로그래머가 간과한 곳에서 발생하는 오류로 주로 아이템 사이의 공간과 아이템 수를 착각할 때 주로 발생한다. 이런 오류를 찾기 위해 c언어에서는 디버깅 과정을 거친다. 문법 오류 - 간단한 문법을 빠뜨린 경우(,) 심볼 오류 - 심볼 테이블에서 변수나 함수 이름을 찾을 수 없을 때 발생한다. 변수 선언 문제 메모리 접근 오류 - 변수나 주소를 사용할 때 프로세스에 허용되는 영역을 벗어날 경우 발생한다. 주소의 문제 잘못된 결과 출력 오류 - 원래 기대했던 값과 다른 값이 나온 경우로 어디서 잘못됐는지 찾기 어려워 수정이 어렵다. 장기.. 더보기
ch02 - 컴퓨터 시스템의 명령어 처리 구조 1. 데이터 표현 방식 2. 프로그램의 생성 3. 프로세스 4. 레지스터의 구성과 역할 1. 데이터 표현 방식 1.1 데이터 표현 단위 - 컴퓨터에선 이진 데이터를 기반으로 데이터를 표현. 바이트는 컴퓨터에서 문자를 표현하는 기본 단위이며, 1바이트로 표현하는 문자의 대표적인 예가 아스키코드이다. 컴퓨터에서 명령어 처리를 하거나 연산을 할 때는 워드 단위가 기반이고 4바이트 이상을 1 워드로 표현. 1.2 숫자의 표현 - 정수의 저장 방식을 엔디언(endian)이라 한다. 빅 엔디언 - 원래의 순서대로 저장하는 방법 큰 숫자가 먼저 나타나며, 주로, IBM, Sun, Sparc, 네트워크 주소 등에서 사용한다. ex) 0x12345678은 저장할 때 원래의 값 순서대로 [12 34 56 78]로 저장(리.. 더보기
ch01 - 리버싱과 해킹의 이해 1. 해킹의 이해 2. 리버스 엔지니어링 1. 해킹의 이해 1.1 해커의 의미 - 해커는 초기에 "컴퓨터를 능숙하게 다루는 전문가"나 "시스템 프로그래밍을 잘하는 사람"인 좋은 인식이었지만 점점 "컴퓨터 시스템이나 네트워크의 문제점을 이용하여 침입하거나 정보를 탈취하는 사람"으로 좋지 않은 인식으로 바뀌었다. 화이트햇(White Hat) - 일반적으로 좋은 사람이며 윤리적 해커로 법을 위반하지 않고 악의적인 활동에 관여하지 않는 해커를 말한다. 블랙햇(Black Hat) - 개인적인 이익을 위해 취약점을 이용해 특정 시스템을 공격하며 '크래커'로 불린다. 그레이 햇(Grey Hat) - 악의적인 행동은 아니지만 해킹 방법이 합법적 또는 윤리적 경계를 넘을 수 있는 해커다. 그린햇(Green Hat) - .. 더보기
책 : x64dbg 디버거를 활용한 리버싱과 시스템 해킹의 원리 김민수 저 ch01 - 리버싱과 해킹의 이해 ch02 - 컴퓨터 시스템의 명령어 처리 구조 ch03 - 디버거의 활용 방법 ch04 - 어셈블리어의 이해 ch05 - 코드 분석과 패치 ch06 - 윈도우 실행 파일 구조 ch07 - 파일 패킹과 언패킹 ch08 - 안티 리버싱 ch09 - 메모리 오염 공격 ch10 - 방패와 창 ch11 - 코드 인젝션 ch12 - 악성코드 분석 시작합니다 더보기