연산식이 이해가안됩니당 ㅠ

byte_140003000[i] = i ^(arg + i) + 2 * i
이 식에서 막혀서 풀이를 이것저것 보았는데요,
역연산할때 예를들어
byte_140003000[1]이면
60h = 1 ^ (arg + 1) + 2 * 1 인게 맞는건가요..? 그럼
60h - 2 = 1 ^ (arg + 1) 일거고
5e = 1 ^ (arg + 1) 에서
5e 를 1이랑 xor 하면
5f = arg + 1 이니까 첫번째 arg 는 5e 가 되야하는거 아닌가용...ㅠ 잘못된 부분 지적좀해주세요

#reversing
작성자 정보
답변 1
avatar
Sechack
CTF First Place

아 대충 보고 답글 달았네요. 죄송합니다. 수정해서 답변드리자면

(arg + i)이거는 메모리 주소일거에요. arg[i] 라고 생각하시면 되겠습니다.

byte_140003000[1] 이면

1 ^ arg[1] + 2 * 1

이렇게 될겁니다.

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