Key값과 주소영역을 찾으라고 하는군요!
일단 Key 값을 먼저 찾아보도록 합시다 :D
프로그램을 실행 시키니 역시 Key을 입력하라고 하네요!
OEP는 패킹이 되어있지 않고 너무 깔끔합니다!
그래서 문자열로 찾아보니 메시지 박스 성공문자와 이상한 긴 문자열이 존재하더군요!
찾아서 가보니 긴 문자열이 암호화되는 것 처럼 마냥 계속해서 반복 루틴을 하게 됩니다!
그러나 아무런 의미는 없었던 것이었죠!
CALL 함수를 들어가봅시다!
뭐 그냥.. 음.. Fake 인것 같죠? :D
최종적으로 보면 40107D 함수에 EAX가 7A2896BF가 되어야 성공메세지를 띄울 수 있습니다 :D
Key 값으로 100을 입력해줘보았습니다!
그런데 EAX가 64로 들어가는거 보이시나요?
10진수 100이 16진수로 64임을 눈치 채셔야 합니다 :D
그럼 답이나왔죠!
바로 계산기를 띄워봅시다 :D
EAX가 7A2896BF되어야 하니
7A2896BF값을 반대로 10진수로 변환해서 넣으면 되지 않을까요 :D !?
역시나 예상대로 맞았군요 :D
성공메시지 박스가 띄워졌으니 Key 값은 2049480383이네요!
그럼 이제 Key값을 메시지 박스에 띄우기 위해 HxD로 조작을 해줘야합니다!
성공문자열에 위치를 확인했습니다!
Key 값으로 바꿔줘볼까요!
이렇게 변경되었습니다!
그럼 최종적으로 위치는 0D3B ~ 0D45가 되겠군요!
여기서 왜 뒤에 00이 포함되나요? 33이 끝이 아닌가요? 할 수도 있습니다!
문자열은 반드시 끝임을 나타내는 00이 붙기 때문에 00까지 새어주셔야 합니다 :D
이렇게 문제풀이 마치도록 하겠습니다 !
'CTF > CodeEngn.kr' 카테고리의 다른 글
Basic RCE L14 (0) | 2020.03.28 |
---|---|
Basic RCE L13 (0) | 2020.03.22 |
Basic RCE L11 (0) | 2020.02.24 |
Basic RCE L10 (0) | 2020.02.23 |
Basic RCE L09 (0) | 2020.02.15 |