- [ SWING/Reversing Study ]보호글 입니다.2025-04-01 21:07:16보호되어 있는 글입니다.
- [ SWING/Forensic Study ]보호글 입니다.2025-04-01 13:16:27보호되어 있는 글입니다.
- [ SWING/Forensic Study ]보호글 입니다.2025-03-25 19:42:08보호되어 있는 글입니다.
- [ SWING/Reversing Study ]보호글 입니다.2025-03-25 01:41:33보호되어 있는 글입니다.
- [ Dreamhack/Reverse Engineering ]Exercise: Helloworld2025-03-24 20:31:2700. 서론이번 강의에서는 간단한 예제인 HelloWorld.exe를 분석해보는 실습을 진행할 것이다. 예제는 1초 대기하고 Hello, world!를 출력하는 프로그램이다. 소스코드를 제공하긴 하지만, 분석을 진행하는 동안은 프로그램에 대해 아는 것이 아무것도 없다고 가정하겠다./* File: hello-world.cpp Build opts: - /MT -> Library Static Linking - /DYNAMICBASE:NO -> Disable ASLR - /od -> Disable Optimization*/#include #include char* str;int main() { int delay = 1000; Sleep(delay); // 1000ms(..
- [ Dreamhack/Reverse Engineering ]Quiz: x86 Assembly 22025-03-23 04:02:56Q1.end로 점프하면 프로그램이 종료된다고 가정하자. 프로그램이 종료됐을 때, 0x400000부터 0x400019까지의 데이터를 대응되는 아스키 문자로 변환하면 어느 문자열이 나오는가?[Register]rcx = 0rdx = 0rsi = 0x400000=======================[Memory]0x400000 | 0x67 0x55 0x5c 0x53 0x5f 0x5d 0x55 0x100x400008 | 0x44 0x5f 0x10 0x51 0x43 0x43 0x55 0x5d0x400010 | 0x52 0x5c 0x49 0x10 0x47 0x5f 0x42 0x5c0x400018 | 0x54 0x11 0x00 0x00 0x00 0x00 0x00 0x00=======================[c..
- [ Dreamhack/Reverse Engineering ]Quiz: x86 Assembly 12025-03-23 02:32:30Q1.레지스터, 메모리 및 코드가 다음과 같다. Code를 1까지 실행했을 때, rax에 저장된 값은?[Register]rbx = 0x401A40=================================[Memory]0x401a40 | 0x00000000123456780x401a48 | 0x0000000000C0FFEE0x401a50 | 0x00000000DEADBEEF0x401a58 | 0x00000000CAFEBABE0x401a60 | 0x0000000087654321=================================[Code]1: mov rax, [rbx+8]2: lea rax, [rbx+8] 내 풀이) - 정답rbx는 메모리 주소를 저장하기 위해 사용되는 (범용)레지스터이다. 코드의 1..
- [ Dreamhack/Reverse Engineering ]x86 Assembly: Essential Part(2) [★]2025-03-23 01:30:1700. 서론지난 코스에서는 산술연산, 논리연산, 비교(cmp, test), 분기(jmp, je, jg)의 어셈블리 명령어를 배웠다. 이번 코스에서는 OS의 핵심 자료구조인 스택, C언어의 함수에 대응되는 프로시저와 관련된 어셈블리 명령어를 공부할 것이다.스택: push, pop프로시저: call, leave, ret01. x86-64 어셈블리 명령어 pt.201.1. 스택 구조스택은 하향 성장한다. 즉, 메모리를 사용할 수록 밑으로 자란다스택은 top이 아래쪽에 있고, bottom이 위쪽에 있다.rsp라는 특수한 레지스터가 스택의 맨 아래 주소(top 원소)를 가리키고 있음 01.2. Opcode: 스택 push ★★push val = 현재 스택의 최상단(top)에 val의 값을 저장하는 연산스택은 밑..