티스토리 뷰

Wargame/Reversing

[Dreamhack.io] Rev-basic-7

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

입력 값을 비교하는 함수를 확인해본다.

ROL 은 비트 회전이다.

ex) 00001011 => 00101100 (오른쪽으로 2번 shift 되면서 가장 오른쪽의 2비투가 맨 왼쪽으로 이동)

 

 

 

 

byte = [0x52, 0xDF, 0xB3, 0x60, 0xF1, 0x8B, 0x1C, 0xB5, 0x57, 0xD1, 0x9F, 0x38, 0x4B, 0x29, 0xD9, 0x26, 0x7F, 0xC9, 0xA3, 0xE9, 0x53, 0x18, 0x4F, 0xB8, 0x6A, 0xCB, 0x87, 0x58, 0x5B, 0x39, 0x1E, 0x00]

def ROR(data, shift, size=8):
    shift %= size
    body = data >> shift
    remains = (data << (size - shift)) - (body << size)
    return (body + remains)
    
s=''

for i in range(len(byte)):
    s += chr(ROR(byte[i] ^ i, i&7))

print(s)

비트가 왼쪽으로 이동했으니, 다시 오른쪽으로 돌려놓는다.

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

 

 

 

 

FLAG

DH{Roll_the_left!_Roll_the_right!}

728x90
반응형

'Wargame > Reversing' 카테고리의 다른 글

Jreversing2  (0) 2022.11.16
[Dreamhack.io] Rev-basic-8  (0) 2022.11.14
[Dreamhack.io] Rev-basic-6  (0) 2022.11.09
[Dreamhack.io] Rev-basic-5  (0) 2022.11.09
[Dreamhack.io] Rev-basic-4  (0) 2022.11.09
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함