DreamHack/Reverising

rev-basic-8

G_OM 2024. 10. 17. 16:52

 

IDA로 파일을 실행시켜 보자.

 

 

 

 

 

 

 

 

 

 

'Correct'가 출력돼야 하니 sub_14001000을 확인

 

 

 

 

 

 

 

 

 

 

unsigned __int8 : 0부터 255까지의 값을 갖는 부호 없는 8비트 정수

 

a1은 한정적이라고 할 수 있다.

 

'(-5 * *(_byte *)(a1+i) =' a1[i] 의 값을 -5 곱한 후 byte_140003000[i] 와 비교

 

 

 

 

 

 

 

 

 

 

byte_140003000 배열이다.

 

종합적으로 uint8_t 은 0~255까지의 값 byte_140003000 배열 값들도 많지가 않다

 

식은 그대로 가되 unsigned 8-bit로 처리해주고 비교하면 된다.

 

result = (-5 * a1) % 256

 

수식 : -5 * a1 연산 후에 256으로 나눈 나머지 값들을 쓴다.

 

그러면 바로 브루트 포스로 하면...

 

 

 

 

 

 

 

 

 

 

 

 

어?