xor 질문

[Register]
rax = 0x35014541
rbx = 0xdeadbeef

[Code]
1: xor rax, rbx
2: xor rax, rbx
3: not eax

에서 1번까지 실행했을때의 문제에서
0x35014541과 0xdeadbeef를 2진수로 변환하면 각각
110101000000010100010101000001
11011110101011011011111011101111 가 나오는데
여기서 xor을 어떻게 대입해야 할까요
남는 자리수를 없애거나, 1로 대입 혹은 0으로 대입하는 등
여러 방식으로 대입해도 답과는 다른 답이 나오고 있어서 어디부터 잘못되었는지 모르겠습니다

#시스템_해킹 #배경지식
작성자 정보
답변 2
avatar
김진우
대표 업적 없음

R~ 레지스터는 8바이트 레지스터니 64자리가 될때까지 뒤에 0을 붙이고 계산해야 합니다.

2023.01.03. 08:08
화성감자
대표 업적 없음

**일단은 십육진수를 이진법으로 변환하는데 오류가 있습니다.
rax의 값은 110101000000010100010101000001이 아닌 0011 0101 0000 0001 0100 0101 0100 0001입니다.
xor은 rax의 비트값과 rbx의 비트값이 같으면 0으로 두고 만약 0과 1로 다른 값이라면 결과값을 1로 둡니다.

예시)
0011
1101
====
1110 = e**

2023.02.15. 21:43
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기