Security || AI

어셈블리 ROL, ROR 코드 구현 본문

Hacking&Security/리버싱[reversing]

어셈블리 ROL, ROR 코드 구현

보안&인공지능 2021. 2. 4. 21:16

리버싱 문제를 풀다가 ROL, ROR이 나왔는데, 기드라의 경우 디컴파일 결과가 단지 >>와 같이 쉬프트 연산만 수행하는 방식으로 나오는 문제를 겪었다.

따라서, 이를 해결하기 위해 파이썬으로 ROL, ROR 함수를 따로 구현하였다.

 

ROR: 00010001이면, 10001000이 된다.

def ror(x, n):
    shiftBit = x >> n
    carryBit = x << (8 - n)
    carryBit &= 255
    return shiftBit | carryBit

 

ROL: 10010000이면, 00100001이 된다.

def rol(x, n):
    shiftBit = x << n
    shiftBit &= 255
    carryBit = x >> 8 - n
    return shiftBit | carryBit

 

 

 

반응형