안녕하세요 테라트입니다
5번 시작합니다
URL : https://codeengn.com/challenges/basic/05
이 프로그램의 등록키를 알아내라고 하는 문제네요
늘 하던 것처럼 프로그램을 실행시켜서 어떻게 동작하는 프로그램인지 알아보겠습니다!
"Register now!"를 눌러봅니다
그럼 시리얼이 잘못되었다고 다시 시도하라고 하네요 ㅎㅎ,,,
한번 올리디버거로 알아볼까요-
올리디버거로 작업하려고 시작해보니 압축된 코드인거 같은데? 라는 경고 메시지가 표시됩니다
즉 패킹되어 있는 것 같은데 분석을 계속해서 할 것인지 물어보는 경고창 입니다...
Exeinfo 프로그램을 이용해서 패킹 여부를 확인해보겠습니다
UPX로 패킹이 되어있네요
패킹을 해제 합니다!
UPX패킹에 대해서 더 알고싶으시다면 LINK
성공적으로 패킹 해제 되었다고 합니다 확인해보겠습니다
똑같이 Exeinfo 프로그램으로 확인해보니 "Not packed" 라고 메시지가 바뀐 것을 확인할 수 있습니다
다시 올리디버거로 실행시켜보겠습니다
"Search for" 에서 "All referenced text strings" 를 눌러보겠습니다
※ All referenced text strings : 참조된 모든 텍스트 문자열을 확인해보겠다
아까 동적분석 시에 본 잘못된 시리얼이다 다시 시도해라 라는 영어 메시지를 확인해 볼 수 있습니다
저기 부분의 주소값으로 가서 더 자세히 확인해 보겠습니다
이 부분이군요 조금 위에 살펴보니
EDX에 어떤 값을 저장해두고 함수를 호출 한 뒤
JNZ 점프 문으로 다음에 어디로 점프를 할 것인지 확인하는 부분을 볼 수 있습니다
함수 호출 뒤에 Zero Flag가 1이면 밑으로 계속해서 다음 어셈블리어를 수행하지만
0이면 "Beggar off!" 에러 메시지를 표시하는 부분으로 점프 하는 것을 확인할 수 있었습니다
정답을 찾아냈네요 그럼
"GFX-754-IER-954"
정답 확인을 해보겠습니다
프로그램의 정답은
이렇게 되겠죠?
Import REC 프로그램을 이용하여 UPX Unpacking (0) | 2018.09.03 |
---|---|
CodeEngn Challenges : Basic 06 문제 풀이 (0) | 2018.08.30 |
UPX 패킹 언패킹 (0) | 2018.08.09 |
CodeEngn Challenges : Basic 04 문제 풀이 (0) | 2018.08.08 |
CodeEngn Challenges : Basic 03 문제 풀이 (0) | 2018.07.28 |
댓글,
테라트
Since 2018.07.03 / IT 관련 정보, 일상의 공유를 위한 블로그