혜랑's STORY

[System Hacking STAGE 2] Quiz: x86 Assembly 1 본문

무지성 공부방/Dreamhack SystemHacking

[System Hacking STAGE 2] Quiz: x86 Assembly 1

hyerang0125 2022. 1. 21. 12:34

Code 실행

1: mov dl, BYTE PTR[rsi+rcx]

 BYTE PTR[rsi+rcx]의 값을 dl에 대입한다.

2: xor dl, 0x30

 dl에 있는 값과 0x30을 xor 연산한다. xor 연산은 비트 연산을 통해 이루어지므로 먼저 두 값을 2진수로 바꿔주고 xor 연산을 한다. 첫 번째 0x400000(0x67)과 xor 연산을 하면 0x57이라는 값을 얻게 된다.

3: mov BYTE PTR[rsi+rcx], dl

 dl의 값을 BYTE PTR[rsi+rcx]에 대입한다.

4: inc rcx

 rcx의 값을 1 증가시킨다.

5: cmp rcx, 0x19

 rcx의 값과 0x19를 비교한다.

6: jg end

 직전에 비교한 두 연산자 중 전자가 더 크면 프로그램을 종료 한다.

7: jmp 1

1로 rip를 이동시킨다. 즉, 다시 코드를 1부터 반복한다.

결과