짱짱해커가 되고 싶은 나

[Music Player] write up 본문

reversing/reversing.kr

[Music Player] write up

동로시 2020. 11. 22. 19:37

readme를 보니까 1분 밖에 재생이 안 되고 1분 이상 들으면 flag가 나온다고 한다.

 

일단 실행시키려고 mp3 파일을 넣었는데 다음과 같은 에러 창이 떴다.

그래서 mp3파일의 확장자를 wav 파일로 변환시켰다.

그랬더니 잘 작동했다.

1분이 되니 다음과 같은 메시지 창이 떴다.

 

IDA로 분석하려 했는데 디컴파일러가 안 됐다.

이유를 찾아보니 이 파일은 비주얼 베이직 프로그램이기 때문에 안된다고 한다.

그래서 올리디버거로 분석했다.

 

call하는 함수 목록을 보는데 MsgBox가 보인다. MsgBox를 호출하는 부분이 4군데 있어서 모두 bp를 걸었다.

 

그리고 실행을 시키는데 파일을 불러오려고 open을 누르면 계속 렛 나고 실행이 안되서 찾아보니까

경로를 바로 넣으라고 해서 그랬더니 잘 돌아갔다. 휴;;

 

그렇게 돌아가니까 1분이 되고 노래가 멈추고 팝업창이 뜨기 전에 앞서 걸었던 bp에 걸려서 멈췄다.

메시지 박스를 호출하는 0x4045d8에 오면 안되니까 우리는 이 전에 여기를 지나칠 수 있는 jmp문을 찾아봐야한다.

 

jl 부분을 보면 더 작다면 0x4045FE로 jump한다. 따라서 우리는 무조건 점프를 해야하는데 비교하는 값을 보면

EAX랑 0xea60을 비교한다. 0xEA60은 60000(ms)이다. 따라서 60초 = 1분으로 생각할 수 있다.

 

그러면 우리는 지금 비교하고 있는 60초를 그것보다 크게 바꾸면 1분 이상 들을 수 있을 것이다.

대충 제일 크게 FFFF로 바꿔버리자!

 

이 부분에 다시 bp를 걸고 디버깅을 새로 시작해보자.

성공적으로 jump를 수행했다.

 

파일을 확인해보니 비밀번호가 나왔다~

 

근데 정답이 아닌 것 같다. wrong이라고 한다...;

좀 더 노래가 나오게 하니 LIstenCare까지 나왓다.

ㅎ.. 정답~

 

 

'reversing > reversing.kr' 카테고리의 다른 글

[replace] write up  (0) 2020.11.29
[Easy UnpackMe] write up  (0) 2020.11.14
[Easy Keygen] writeup  (0) 2020.11.08
Comments