
rev-basic-7 풀이
·
Security/Reverse Engineering
문제 설명 문제 풀이IDA로 문제 파일을 열고 디컴파일을 하면 다음과 같은 코드가 나온다.바로 분기처리 담당 함수인 sub_140001000 으로 들어가보자.이를 통해 우리는 다음과 같은 연산식을 얻을 수 있다.byte_140003000[i] = (i ^ (unsigned __int8)__ROL1__(*(_BYTE *)(a1 + i), i & 7)) 식에서 ^ 연산과 & 연산은 알겠는데... 이상한 놈 하나가 중간에 끼어있다...__ROL1__이라는 놈인데 궁금해서 GPT 형님에게 물어봤다. 흠,,, 근데 함수 내부에서 두개의 인자를 받는 것으로 보아,,, 1바이트 순환하는게 아닌 *(a1 + i) 데이터를 i&7 만큼 순환하라는 의미 같았다. i&7만큼 왼쪽으로 순환해서 나온 결과를 다시 i와 xor..