서브웨이

dreamhack rev-basic-6 풀이 본문

Reverse Engineering/dreamhack

dreamhack rev-basic-6 풀이

샌드위치메이커 2021. 7. 28. 13:37

이제 기초문제는 두문제 남았습니다.

 

자 파일을 봅시다.

역시나 대충 입력하고 참조된 문자열을 검색해서 검증하는 부분을 찾아봅시다.

언제나 같은 방식입니다.

그럼 중단점이 걸린 검증하는 함수로 들어가봅시다.

 

뭔가 조금 짧은것을 알 수 있습니다.

한번 분석해보면

이렇네요.

그럼 테이블과 암호문은 어떤값이 있는지 봅시다.

이건 암호문이고

이건 테이블입니다.

 

각 자리에 입력된 값을 오프셋으로 쳐서, 테이블에서 해당 오프셋에 해당하는 값이 암호문과 일치하는 입력값을 찾아야합니다.

딱봐도 귀찮아보이니 그냥 검색해서 하나하나 찾아봅시다.

검색은 다음과 같이 패턴찾기를 눌러서

찾을 부분을 입력하고

이렇게 나온 부분을 클릭해서 확인하면 됩니다.

 

그럼 노가다로 다 찾아보면 다음과 같은 코드를 만들 수 있습니다.

encrypted = []
encrypted.append(chr(0x72 - 0x20))
encrypted.append(chr(0x85 - 0x20))
encrypted.append(chr(0x90 - 0x20))
encrypted.append(chr(0x8C - 0x20))
encrypted.append(chr(0x81 - 0x20))
encrypted.append(chr(0x83 - 0x20))
encrypted.append(chr(0x53 - 0x20))
encrypted.append(chr(0x7F - 0x20))
encrypted.append(chr(0x94 - 0x20))
encrypted.append(chr(0x88 - 0x20))
encrypted.append(chr(0x85 - 0x20))
encrypted.append(chr(0x7F - 0x20))
encrypted.append(chr(0x97 - 0x20))
encrypted.append(chr(0x50 - 0x20))
encrypted.append(chr(0x92 - 0x20))
encrypted.append(chr(0x8C - 0x20))
encrypted.append(chr(0x84 - 0x20))
encrypted.append(chr(0x20 - 0x20))

print(''.join(encrypted))

간단합니다.

'Reverse Engineering > dreamhack' 카테고리의 다른 글

dreamhack rev-basic-7 풀이  (0) 2021.07.28
dreamhack rev-basic-5 풀이  (0) 2021.07.28
dreamhack rev-basic-4 풀이  (0) 2021.07.28
dreamhack rev-basic-3 풀이  (0) 2021.07.21
dreamhack rev-basic-2 풀이  (0) 2021.07.21
Comments