반응형
답
초기상태
레지스터:
- rcx = 0
- rdx = 0
- rsi = 0x400000
메모리
0x400000: 0x67 0x55 0x5c 0x53 0x5f 0x5d 0x55 0x10
0x400008: 0x44 0x5f 0x10 0x51 0x43 0x43 0x55 0x5d
0x400010: 0x52 0x5c 0x49 0x10 0x47 0x5f 0x42 0x5c
0x400018: 0x54 0x11 0x00 0x00 0x00 0x00 0x00 0x00
어셈블리 코드 분석
1. mov dl, BYTE PTR[rsi+rcx]
- 현재 rcx = 0 이므로, 첫 번쨰 바이트(0x400000)를 'dl'로 이동한다.
- dl = 0x67
2. xor dl, 0x30
- 'dl'에 0x30을 xor 연산 한다. 0x67 ^ 0x30 = 0x57 (ASCII 'W')
3. mov BYTE PTR[rsi+rcx], dl
- 'dl' 값을 다시 메모리 주소 0x400000에 저장합니다.
- 0x400000 = 0x57
4. inc rcx
- rcx 값을 1 증가시킵니다.
5. cmp rcx, 0x19
- rcx 값을 0x19 (25)와 비교한다.
6. jg end
- rcx > 0x19이면 루프를 종료합니다.
7. jmp 1
- 루프의 시작으로 돌아다.
변환된 메모리 상태
0x400000: 0x57 0x65 0x6c 0x63 0x6f 0x6d 0x65 0x20
0x400008: 0x74 0x6f 0x20 0x61 0x73 0x73 0x65 0x6d
0x400010: 0x62 0x6c 0x79 0x20 0x77 0x6f 0x72 0x6c
0x400018: 0x64 0x11 0x00 0x00 0x00 0x00 0x00 0x00
이를 ASCII 문자로 변환하면
Welcome to assembly world!
끝
반응형
'hacking > pwnable' 카테고리의 다른 글
[Dream hack] Quiz: Shellcode-3 (0) | 2024.05.23 |
---|---|
[Dream hack] Quiz: Shellcode-2 (0) | 2024.05.23 |
[Dream hack] Quiz: x86 Assembly 1-11 (0) | 2024.05.19 |
[Dream hack] Quiz: x86 Assembly 1-10 (0) | 2024.05.18 |
[Dream hack] Quiz: x86 Assembly 1-9 (0) | 2024.05.18 |