Reversing.Kr
This site tests your ability to Cracking & Reverse Code Engineering. Now Challenge a problem for each environment. (Windows, Linux, .Net, Flash, Java, Python, Mobile..) Admin E-Mail: gogil @reversing.kr Notice 2014-12-12 New challenge 'CustomShell' was added. 2014-12-10 New challenge 'CRC2', 'Advent...
reversing.kr
문제를 다운받아 실행해보았다.
시리얼값이 아닐때 나오는 메시지를 확인.
디버거를 이용해서 그 내가확인한 메시지를 찾아보니 성공메시지도 보인다.
둘다 근처에있을테니 아무거나 눌러서 가보자.
성공과 실패 메시지가 조금위에있는 jne 조건 에의해서 나뉘고있는거같다.
그래서 일단 DDDDD 를 입력해서 실행을해보니 저 조건까지 가지도못하고 실패 메시지가 나오길래
중간에 다른 조건문이있다고 생각하고 조금 위로 올려보니
jne로 먼저 조건을 하나 보던게있었다. esp+5위치에 있는 값이 'a' 인지를 물어보는건데.
esp 우클릭 - 덤프에서 따라가기
이부분이 esp가 위치한곳이다.
+5라고 했으니 보면 두번째로 입력한 D 가 a인지를 물어보는상황.
시리얼값을 다시 변경해서 해보자.
두번째 값을 a 로 바꿔줬다.
시리얼값에서 두번째값이 a 이어야 한다는 조건은 넘어갔다.
그후에 또 esp+A 부분의 값을 찾고있는데 조금아래에보면 '5y' 와 비교를 하는 함수로 이동하게된다.
esp+A 는 내가 시리얼값을 'Da' 라고만입력해서 지금은 없다. 채워주자.
Da5y 로 두번째 조건도 잘나왔다.
더 아래로 내려가니 R3versing 라는 문자열을 가지고 뭘하려하는거같은데
실행시켜보면 한바이트씩 비교를하는 반복문을 도는것을 알수있었다.
시리얼값 추가하자
Da5yR3versing 라고 입력한후 다시 디버깅하였다.
끝이라고 생각했지만 맨처음에 보았던
성공메시지와 실패메시지를 정하는 부분이 남아있었다.
esp+4위치의 값이 E 인지를 물어보고있는데 esp+4의 위치는 내가입력한 시리얼값의 첫번째 값을말하고있다.
시리얼값 변경하자.
끝.
'CTF' 카테고리의 다른 글
[reversing.kr] Easy Unpack 풀이 (0) | 2019.05.20 |
---|---|
[reversing.kr] Easy Keygen 풀이 (0) | 2019.05.20 |
webhacking.kr 4번문제 (0) | 2019.05.20 |
webhacking.kr 1번문제 (0) | 2019.05.20 |
webhacking.kr 회원가입 (0) | 2019.05.20 |