rev basic 7

buaii·2023년 7월 6일
0

Reverse Engineering

목록 보기
1/4

ROL
ROR

오늘 리버싱을 배운김에 리버싱문제를 풀어봤다

해당 문제의 pseudocode는 아래와 같다

ROL1 라는 함수는 처음 본다 알아보자

ROL / ROR

rotate bit Left / Right

비트를 count만큼 왼쪽이나 오른쪽으로 옮기는 함수이다

예시 )
__ROL1__(0000 0001, 1) = 0000 0010
__ROR1__(0000 0001, 1) = 1000 0000

이걸 파이썬 코드로 작성해보자

ROR

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

ROL

def ROL(data, shift, size=32):
    shift %= size
    remains = data >> (size - shift)
    body = (data << shift) - (remains << size )
    return (body + remains)

byte_140003000[i] ^ i값을 ROR함수에 for문으로 돌려주면 flag를 얻을 수 있다!

profile
buaii

0개의 댓글

관련 채용 정보