- Today
- Total
목록Pwnable/Reversing.kr (12)
Phantom
하…..이걸 이상하게 하는 바람에 2일을 삽질 했다. 이젠 아예 힌트 같은걸 보지 않고 해야겠다 그거를 잘못 봐서 2일을 버렸…다. 우선 프로그램을 실행하기 전에 ReadMe.txt를 읽어보자 시리얼이 저것일 때 이름을 찾아라. 이다. 프로그램을 열어보자. 이름을 입력 하고. 시리얼을 입력한다. 디버거를 열어서 aaaaaa가 어떤 시리얼로 바뀌는지 봐야겠다. 입력하고, 비교 루프에 들어온 것 같다 ESI와 3을 비교하는 것을 보니 3번에 걸쳐 어떤 것이 루프를 도는 것 같다. 이것을 보니 부호 확장 MOV라는데 잘은 모르겠다 ECX는 10, 20, 30이렇게 루프를 돌면서 바뀌고 EDX는 아까 내 문자열이 하나씩 비교가 된다. 그리고 이곳에서 복호화가 일어난다. 61과 10을 XOR연산하여 ECX에 저장..
프로그램을 실행하면 이런 모습이다. 여기서 아무런 값을 입력하면 패스워드가 틀렸다고 나온다. 패스워드 값을 찾는 것이 이 문제의 답인 것 같다. 디버거로 열어서 문자열을 찾는다. 문자열들에게 BP를 걸고 한번 Congratulation으로 이동해본다. 우선 보이는 점프문 근처에 모두 BP를 걸었다. 아스키 문자열이 보이는데 저게 비교 문자열인 것 같다. F9를 눌러 진행한다. 이 부분에서 걸렸는데 ESP+5와 61과 비교한다 61은 a이다. 여기서 +5는 "h"를 의미한다 값이 틀렸네. 아래 JNZ를 만나 바로 메시지박스 함수로 오게 된다. 두번째 값은 a이다. 다시 실행하여 값을 집어넣는다. 2를 push하고 pa다음인 antom과 5y를 push한다. 아마도 현재로서는 –a5y-----인 것 같다. ..