해킹/리버싱 이론
-
IDA 사용법 및 문법해킹/리버싱 이론 2024. 10. 7. 09:34
Dreamhack의 Exercise : Helloworld 강의를 정리함.IDA 실행 후 exe 파일 드래그 -> 바로 ok정적분석main함수를 찾기 위해 문자열 검색 (shift+F12) ->더블 클릭하여 따라감참조하는 함수 찾기 : 스트링 클릭 후 우클릭 -> List cross reference to... -> 해당 변수를 참조하는 모든 주소가 출력 됨.main함수를 찾았으면 디컴파일 F5*_acrt_iob_func 함수 : 스트림을 가져옴 , 인자로 1이 들어갈 경우 stdout, 0이면 stdin숫자를 문자로 변환 -> 숫자에 커서올리고 r a dup(b) -> b 가 a번 반복됨data 주소에서 (Shift+E) -> hex string으로 export 가능 -> python의 bytes.f..
-
03 - x86 Assembly해킹/리버싱 이론 2024. 10. 6. 22:12
명령어데이터 이동(Data Transfer)movmov dst, srcsrc에 들어있는 값을 dst에 대입lealea dst, srcsrc의 유효 주소(Effective Address, EA)를 dst에 저장산술 연산(Arithmetic)incinc opop의 값을 1 증가시킴decdec opop의 값을 1 감소 시킴addadd dst, srcdst에 src의 값을 더함subsub dst, srcdst에서 src의 값을 뺌논리 연산(Logical)andand dst, srcdst와 src의 비트가 모두 1이면 1, 아니면 0oror dst, srcdst와 src의 비트 중 하나라도 1이면 1, 아니면 0xorxor dst, srcdst와 src의 비트가 서로 다르면 1, 같으면 0notnot opop의 ..
-
02 - 컴퓨터 구조 / Window memory layout해킹/리버싱 이론 2024. 10. 6. 21:06
컴퓨터 구조컴퓨터 구조 구성기능 구조의 설계폰 노이만 구조하버드 구조수정된 하버드 구조명령어 집합구조(Isntruction Set Architecture) - CPU의 명령어 설계, CPU가 해석하는 명령어의 집합x86, x86-64ARMMIPSAVR마이크로 아키텍처 - CPU의 하드웨어적 설계캐시 설계파이프라이닝슈퍼 스칼라분기 예측비순차적 명령어 처리하드웨어 및 컴퓨팅 방법론직접 메모리 접근폰 노이만 구조 중앙처리장치 (CPU): 컴퓨터의 두뇌로, 프로그램의 연산과 시스템 제어를 담당합니다. 주요 구성 요소는 산술논리장치(ALU), 제어장치(Control Unit), 그리고 레지스터(Register)입니다.기억장치: 데이터를 저장하는 장치로, 주기억장치(RAM)는 프로그램 실행 중 필요한 데이터를 임시..
-
01 - 리버싱해킹/리버싱 이론 2024. 10. 6. 18:34
리버싱(Reversing) - 만들어진 프로그램을 역으로 해체하여 코드 단에서 분석BinaryCompiler : 고급언어를 목적 코드(Object Code)로 번역하는 프로그램 - GCC, Clang, MSCVCompile : 소스코드를 목적 코드(Object Code) 형식으로 번역하는 동작Assembler : Assembly Language를 기계어로 번역하는 프로그램Binary : 프로그램과 동의어 (Stored-Program Computer에서 프로그램이 저장장치에 이진 형태로 저장되기 때문)Interpreting : 사용자의 입력, 스크립트를 바로바로 번역하여 CPU에 전달하는 동작 - Python, JavascriptInterpreter : 인터프리팅을 하는 프로그램 더보기컴파일장점:1. 속도..