reversing (reverse engineering)/dreamhack (드림핵)

rev-basic-1

blackbearwow 2022. 4. 10. 21:42

Input: 출력 후 256글자를 stdin으로 input받은 후 sub_7FF6D8DC1000*를 호출 후 eax가 0이면 Wrong, eax가 0이 아니면 Correct이다.

input한 값은 [rsp+138h+var_118h]에 저장되므로, sub_7FF6D8DC1000를 호출하기 전에 rcx에 주소가 저장된다.

sub_7FF6D8DC1000를 보면 맨 처음 [rsp+buf]에 rcx값을 저장한다. 

그 후 buf의 첫번째 바이트와 'C'를 비교, 같으면 초록색 루트를 따라가고 다르면 발간색 루트를 따라간다.

두번째 바이트와는 'o'를 비교 등등..

0x14번째는 'r'값과 비교, 마지막 0x15번째 바이트에는 0x00인지 확인 후, 모두 비교값이 맞을 때만 eax에 1이 저장되어 반환된다.

해당 문자들을 모두 순서대로 입력하면 Correct!

'reversing (reverse engineering) > dreamhack (드림핵)' 카테고리의 다른 글

ida 바이너리 패치  (0) 2022.05.20
rep stos  (0) 2022.04.10
Calling Convention (함수호출 규약)  (0) 2022.02.02
rev-basic-0  (0) 2021.12.20