CodeEngn Challenges : Basic 05 문제 풀이
반응형

안녕하세요 테라트입니다


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"


정답 확인을 해보겠습니다




프로그램의 정답은



이렇게 되겠죠?



반응형

댓글,

테라트

Since 2018.07.03 / IT 관련 정보, 일상의 공유를 위한 블로그