숫자를 넣을수있는 칸이 나오고 Wrong이라고 되어있다. 뭐 알맞은 값을 뜨면 통과하는 프로그램인것 같다. 디버거에 넣고 F8로 하나씩 가보면은 CALL 401000을 만나 본함수로 들어가진다. DialogBoxParamA함수가 보이는데 실제로 저 함수 뒤에 박스창이 뜨는걸 보면은 저함수가 박스창을 띄우는 용도인것 같다. 밑에 GetDlgItemInt랑 SetDlgItemTextA도 보이는데 GetDlgItemInt는 int형 정수를 받는 입력함수인것 같고 SetDlgItemTextA는 뭘 셋팅하는것 같은데 아마 정답으로 바꿔주는 함수인걸로 유추해볼 수 있다. 일단 그냥 실행시켜서 숫자 아무거나 (123 넣어봄) 쳐보고 하면은 저 40466F란 곳에 멈춰서 오류가 나게 된다. 40466F는 EAX 주소값..
Reversing/Reversing.kr
This MP3 Player is limited to 1 minutes. You have to play more than one minute. There are exist several 1-minute-check-routine. After bypassing every check routine, you will see the perfect flag. Readme.txt를 읽어보면은 음악이 1분간 재생되는데 그 이상 재생되게 하라는 뜻 같다. 먼저 파일에 음악을 넣고 실행보면은 이렇게 알림창이 뜬다. 그다음 디버거를 통해 파일을 열어봤는데 Open을 눌렀을때 거의 무한 루프에 빠지게 돼서 파일 주소를 입력칸에 넣어야 한다. 그리고 저 1분 미리듣기만 가능합니다 부분을 찾아야 하는데 string으로 찾아봤을 ..
ReversingKr UnpackMe Find the OEP ex) 00401000 OEP를 찾는 문제이다. OEP란 Original Entry Point로, 패킹된 파일의 실제 프로그램 시작 부분을 의미한다. 디버깅 해보다가 어느 순간 code 영역으로 점프하는 지점이나 파일이 시작되는 부분이 있을 것이다. 그부분을 찾으면 된다. 먼저, ollydbg로 디버깅해보겠다. 디버깅 해보다보면 알겠지만 파일을 더럽게 꼬아놨다. 계속해서 반복문에 걸리는데 반복문 탈출 지점에 ep를 걸어놔서 계속해서 탈출해줬다. 탈출하다보면은 이상한 주소로 가는 명령문이 있는데 이 주소로 가보면은 자세히 보기 위해 Ctrl+A( 코드를 다시 분석) 를 눌러주겠다. 여기가 본 code 같아보인다. 그러므로 OEP 지점은 00401..
Find the Name when the Serial is 5B134977135E7D13 저 시리얼에 통과하는 name을 찾으면 통과하는 문제이다. 대충 둘러보고자 F8로 하나하나씩 봤는데 저 00401000함수에서 거의 모든 기능을 담당하는 듯 했다. 엔터로 들어가보면 뭐 여러 명령어들과 string 이 나온다. 함수안에 bp를 걸고 하나하나씩 알아보았다. 대충 4011B9함수에서 input name 문자를 프린트하고 4011a2함수에서 scanf로 name을 받는듯 했다. 밑에 시리얼 넘버도 똑같이 작동했다. 가장 중요한 부분은 그 중간에 있는 부분들이다. name에 따라 통과되는 시리얼이 다르니 name으로 시리얼을 만들 것이다. 요 부분이 시리얼을 만드는 곳인 거 같은데 이것만 봐서는 잘 몰라서 ..