** 분석 중 문제 함수가 지역 변수 접근에 EBP 를 사용하지 않았음. (ESP 를 대신 사용함.)Immunity Debugger 에서 LOCAL.n Prefix 를 사용하지 못함. IDA 를 이용해 스택 주소를 확인함. 1.mp3 파일을 열어서 재생한다.1분 이상으로 듣지 못하고, 모든 체크 루틴을 우회하면 플래그를 볼 수 있다고 하였음.VB6으로 제작되었으며, 분석을 용이하게 하기 위해서 ida pro visua basic 6.0 스크립트를 통해 IDA 가 CallBack 등 함수를 제대로 나타날 수 있게 해준다.(VB6 Decompiler 를 통해서 빠른 분석도 가능하다.) 2.1분 이상 듣게 되면, "1분 미리ㅣ듣기만 가능합니다." 라는 메세지가 출력된다.이때 프로그램을 Suspend 해서, M..
** 분석 중 문제 함수가 지역 변수 접근에 EBP 를 사용하지 않았음. (ESP 를 대신 사용함.) Immunity Debugger 에서 LOCAL.n Prefix 를 사용하지 못함. IDA 를 이용해 스택 주소를 확인함. 1. 이름을 입력하면, 그에 맞는 시리얼 넘버를 계산한 뒤 입력한 시리얼 넘버와 일치하는지 확인하는 프로그램이다. 주어진 시리얼 넘버를 가지고, 이에 맞는 이름을 찾아내면 되므로, 시리얼 넘버를 생성하는 코드를 분석해 거꾸로 뒤집으면 된다. 2. 00401077 ~ 004010B4 while Loop 00401077 : Counter_1 이 3 이상이라면 0으로 초기화함. 밑에서 ESP - 130h, -129h, -128h 주소로 차례대로 엑세스한다. (00401038 에서 값 대입..
1. 프로그램 실행 시 문자열을 입력할 수 있는 창이 뜸.아무거나 입력하고 "Check" 를 누르면, 프로그램이 터진다.디버깅해서 오류가 난 Insturction 의 주소를 확인한다. 2.0040466F 에서 오류가 발생하였다. (eax 주소에 접근할 수 없음.)해당 주소의 근처에 jnz 와 같은 분기문으로 접근하는 코드가 없으니,jmp far ptr 을 이용한 점프문이나 call 로 실행되었을 것으로 볼 수 있다. 본 구문은 call 으로 실행되었음 알 수 있으며, 현재 스택 포인터에서 call ret address 를 찾을 수 있다.코드를 실행한 주소는 004046A9 3.해당 코드 근처에 bp 를 걸고 다시 실행한다. 조금 위로 올라가보면, eax 에 다이얼로그 텍스트 박스에 있는 문자열을 받아 u..