완료됨
시스템해킹 - stage2 어셈블리 퀴즈 1 문제좀 도와주세요!

end로 점프하면 프로그램이 종료된다고 가정하자. 프로그램이 종료됐을 때, 0x400000 부터 0x400019까지의 데이터를 대응되는 아스키 문자로 변환하면 어느 문자열이 나오는가?

[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]
2: xor dl, 0x30
3: mov BYTE PTR[rsi+rcx], dl
4: inc rcx
5: cmp rcx, 0x19
6: jg end
7: jmp 1

제가 이해한건

  1. rsi+rcx의 주소를가진 메모리값을 1바이트 불러와 dl에 저장
  2. dl과 0x30 xor 연산후 dl에 저장
  3. dl을 rsi+rcx 주소를 가진 메모리값 1바이트 크기의 해당하는 곳에 대입
  4. 이 과정을 메모리주소 0x400019까지 반복

도와주세요 ㅠㅠ 어디서 막힌건지 모르겠어요 막막해요.. 문자로 변환하고 했는데 다 틀렸다고 나와서 모르겠어요..ㅠ

#어셈블리 #퀴즈
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
avatar
wyv3rn
무플 방지 위원회장

어떻게 하셨고, 어떤 값이 출력되나요?

2023.03.05. 15:11