CodeEngn Challenges : Basic 09 문제 풀이

안녕하세요


테라트입니다


정말 오랜만에 분석 포스팅을 하게 되었네요,,


바쁘다보니 ... ㅎ




9번문제 시작합니다



URL : https://codeengn.com/challenges/basic/09




StolenByte를 구하라고 하네요,,,


StolenByte 란? 훔쳐진 바이트라는 뜻으로, 프로그램의 한 부분의 코드를 훔쳐서 다른 부분으로 옮겨진 코드를 의미


다운로드 받은 프로그램을 실행 시켜 보겠습니다




에러를 내면서 프로그램을 종료시킵니다


일단 패킹 여부를 확인해보겠습니다



Exeinfo 프로그램을 통해 확인해보니,,



간단하고도 유명한 upx 패킹이 되어 있네요


upx 참고 : https://qufdln.tistory.com/40


패킹을 해제한 후 실행을 시켜보니 이상하게 깨져서 보임을 알 수 있습니다


원래는 패킹을 풀더라도 프로그램은 정상 실행되는 것이 맞습니다




디버거로 확인해보겠습니다


본래 프로그램이 시작되야 하는 OEP 부분이 NOP으로 채워져 있는 것을 확인할 수 있습니다



언패킹하기 전 프로그램으로 확인해보니 UPX패킹이 풀리기 전 부분에

추가로 PUSH 되는 값이 있음을 확인할 수 있습니다



String 값 확인을 위해 BreakPoint를 설정하고


F9를 눌러 BP까지 실행해보았습니다


그러면 다음과 같이


처음에 프로그램을 실행시킬때 보였던 문구가 보임을 확인할 수 있습니다


따라서 이 코드가 StolenByte 임을 알 수 있습니다


그냥 명령어 값을 쭈욱 연결해서 써주면 정답이 됩니다





감사합니다


댓글, 0

1 2 3 4 5 6 7 8 9 10 ··· 19

테라트

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