Wargame/Reversing

[Dreamhack.io] Rev-basic-8

youung 2022. 11. 14. 14:15
728x90
반응형

입력 값과 비교하는 함수를 들어가서 확인한다.

 

(a[i] * 0xFB & 0xFF == byte_140003000[i])

* 0xFB는 251로 곱하는 것.

&0xFF는 256으로 나누었을 때 나머지와 같다

(즉, &0xFF는 %256과 같음)

 

51 * 251 * X = b * 51(mod 256) 

51을 곱한 이유는 51 * 251을 256으로 나눈 나머지가 1이되기 때문

즉, X = b * 51 % 256으로 구할 수 있다

 

 

 

byte=[0xAC, 0xF3, 0x0C, 0x25, 0xA3, 0x10, 0xB7, 0x25, 0x16, 0xC6, 0xB7, 0xBC, 0x07, 0x25, 0x02, 0xD5, 0xC6, 0x11, 0x07, 0xC5]

s=''

for i in range(len(byte)):
    s += chr((byte[i] * 51) % 256)

print(s)

반복문으로 암호를 알아낸다.

 

 

 

DH{Did_y0u_brute_force?}

728x90
반응형