'll Hacker
리버싱_전제체션 2주차 과제 본문
Contents
728x90
1) https://learn.dreamhack.io/quiz/64
2) https://learn.dreamhack.io/quiz/17
[Register]
rcx = 0
rdx = 0
rsi = 0x400000
=======================
[Memory]
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
=======================
[code]
1: mov dl, BYTE PTR[rsi+rcx] // rsi+rcx = 0x400000 -> BYTE PTR[0x400000]의 값을 dl에 대입, 따라서 dl = 0x67
2: xor dl, 0x30 // dl xor 0x30 = 0x57
3: mov BYTE PTR[rsi+rcx], dl // dl의 값을 다시 BYTE PTR[0x400000]에 대입하면 0x67이 아니라 0x57이 됨.
4: inc rcx // rcx +=1 따라서 rcx가 0이라면 1로 증가시켜줌
5: cmp rcx, 0x19 // 0x19와 비교
6: jg end // 비교했을때 rcx가 크면 종료
7: jmp 1 //안그러면 다시 반복
[Memory] // code 실행결과
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 0x21 0x00 0x00 0x00 0x00 0x00 0x00
이것을 아스키코드 변환
3) https://learn.dreamhack.io/quiz/25
[Code]
main:
push rbp //rbp를 스택에 push
mov rbp, rsp //rsp를 rbp로 옮김
mov esi, 0xf // esi = 0xf
mov rdi, 0x400500 // rdi = 0x400500
call 0x400497 <write_n> //write_n 호출
mov eax, 0x0 //eax=0x0
pop rbp
ret //종료
write_n:
push rbp
mov rbp, rsp
mov QWORD PTR [rbp-0x8],rdi //rbp-0x8 = 0x400500 -> x86시스템은 리틀엔디안이기 때문에 높은주소에서 낮은 주소로 바이트를 배열
mov DWORD PTR [rbp-0xc],esi //rbp-0xc = 0xf
xor rdx, rdx // 자기자신을 xor하면 0이됨.
mov edx, DWORD PTR [rbp-0xc] // edx = 0xf
mov rsi,QWORD PTR [rbp-0x8] // rsi = 0x400500
mov rdi, 0x1 //rdi=0x1
mov rax, 0x1 //rax-0x2
syscall //write(0x1, 0x400500, 0xf)
pop rbp
ret
==================================
[Memory]
0x400500 | 0x3037207964343372 //원래는 07 yd43r -> 리틀엔디안 이라서 r34dy 70
0x400508 | 0x003f367562336420 //?6ub3d -> d3bu6? 그래서 답은 r34dy 70 d3bu6?
4) https://dreamhack.io/wargame/challenges/22
이건 잘 모르겠습니다...............
IDA로도 해봤는데 전 왜 디컴파일이 안돼죠........
728x90
'Hacking > Reverse Engineering' 카테고리의 다른 글
정적분석과 동적분석 (0) | 2024.04.11 |
---|---|
Binary 개념 정리 (0) | 2024.04.11 |
Reverse Engineering 큰 개념 정리 (0) | 2024.04.11 |
리버스 엔지니어링 정의 및 개요 (0) | 2023.11.16 |
DreamHack_rev_basic-0 (0) | 2023.11.09 |