완료됨
not연산 결과가 다릅니다.

rax를 not연산 하면 0x0이 되는데, 왜 답은 0xcafebabe인가요?

#리버싱 #배경지식
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
avatar
믕믕이부하
대표 업적 없음

0x35014541을 10진수로 만들어보면

3 5 0 1 4 5 4 1

not 연산을 해서 값이 반전 될 경우

3 -> 12
5 -> 10
0 -> 15
1 -> 14
4 -> 11
5 -> 10
4 -> 11
1 -> 14

이를 다시 16진수로 바꾸면

c a f e b a b e

가 되는데 어떤 부분에서 헷갈리셨는지 잘 모르겠네요...

만약 rax 레지스터의 값이 0xffffffff 이라면

15 -> 0
15 -> 0
15 -> 0
15 -> 0
15 -> 0
15 -> 0
15 -> 0
15 -> 0

0x0가 되긴 합니다만 해당 문제에서 rax 레지스터의 값은 0x35014541이기 때문에 0xcafebabe 가 나옵니다.

2021.11.22. 18:36