Hacking (38) 썸네일형 리스트형 CodeEngn_basic_20 Basic RCE L20 이 프로그램은 Key파일을 필요로 하는 프로그램이다. 'Cracked by: CodeEngn!' 문구가 출력 되도록 하려면 crackme3.key 파일안의 데이터는 무엇이 되어야 하는가 Ex) 41424344454647 (정답이 여러개 있는 문제로 인증시 맞지 않다고 나올 경우 Contact로 연락주시면 확인 해드리겠습니다) 가장 먼저 실행시켜보면 이런 화면이 뜨네요. 이 윈도우 창을 띄우는 것 이외에는 하는 일이 없어보이는데 Ollydbg로 열어봅시다. Ollydbg로 열어보면 이런 화면이 나오는데 대충 읽어보면 CRACKME3.KEY라는 파일이 있다면 읽어들이는 것 같네요, 일단 해당 이름의 파일을 만들어 봅시다. ( 확장자명은 .KEY로 해 주어야 합니다. ) 그럼 이제 아.. CodeEngn_basic_19 Basic RCE L19 이 프로그램은 몇 밀리세컨드 후에 종료 되는가 이 프로그램은 몇 밀리세컨드 후에 종료 되는가.. 라는 문제인데, 프로그램이 자동으로 일정 시간 후에 종료되는 프로그램인 것 같으니 동적 분석은 딱히 할 필요가 없는 것 같네요, 그래도 한번 실행은 시켜봅시다. UPX패킹이 되어있으니 언패킹해주시고.. 이런창이 뜨고 얼마 뒤에 자동으로 꺼진다. 가장 먼저 Ollydbg로 파일을 연 뒤에 실행을 시켜보니 디버거를 감지하는 함수에 걸렸다고 에러가 발생한다. 그런 함수는 대게 Isdebugger라는 함수이니 함수를 호출하는 부분을 봅시다. 함수 호출하는 부분에서 위로 올라가다보면 IsDebuggerPresent라는 함수가 보이는데 이 부분에 BP를 걸고 들어가보면 약간 아래쪽에서 점프문을 .. CodeEngn_basic_18 Basic RCE L18 Name이 CodeEngn일때 Serial은 무엇인가 이번 문제는 CodeEngn에서 가장 흔하게 볼수 있는 Serial을 찾는 문제네요 우선은 동적분석을 해봅시다. 이렇게 입력한 뒤에 Check를 누르면 에러창이 뜬다. 대충 이런 동작을 보이니, 이제 정적 분석을 진행해보자. Ollydbg로 문제파일을 연 다음에 언제나 그렇듯 일단 text string을 통해 성공시의 텍스트를 찾아봅시다. G0od이라는 문자열이 보인네요, 아마 이 부분이 성공문자열인듯 한데 해당부분으로 진입해봅시다. 들어가보니 이런 화면이 나오는데 대충 해석을 해보면 String2와 String1을 비교하는데 비교 된 값이 같으면 G0od이라는 텍스트가 출력될 수 있도록 점프를 하는것 같네요. 아마 저기 St.. CodeEngn_basic_17 Basic RCE L17 Key 값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가 힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) 이번문제는 Serial을 알아내는 다른 문제와 달리 Name을 알아내야 하는군요. 일단 실행시켜 봅시다. Name과 Key에 A라는 값만 넣어서 실행시켰더니 문자열을 더 입력하라는 문구가 출력되네요 하라는대로 더 입력해봅시다 Name에 3글자를 입력했더니 아무일도 일어나지 않네요, Name은 3글자여야하나 봅니다 Key값은 맞아야 하는 값이 있으니 상관 쓰지 맙시다. 동적분석을 마쳤으니 Ollydbg로 정적 분석을 해봅시다. ( 패킹은 안되어 있구요. ) 일단 Ollydbg로 .. CodeEngn_basic_16 Basic RCE L16 Name이 CodeEngn일때 Serial을 구하시오 프로그램을 실행시켜보면 위와 같이 Name과 Password를 입력받고 그에 따른 텍스트가 출력된다. 디버거인 Ollydbg를 통해서 프로그램에 들어간 뒤 가장 먼저 성공시에 출력되는 문자를 찾기 위해서 Search for > All referenced text strings를 통해서 프로그램에 사용된 text가 모여있는 곳으로 간다. 그 안에 진입하면 Good Job!이라는 텍스트가 눈에 띄는데 해당 텍스트를 더블클릭하여 진입해보면 우리가 찾는 곳이 나올 것이다. 그리고 일단은 CMP ( 비교문 부분 )에 브레이크 포인트를 걸어준 뒤에 F9를 통해서 브포까지 실행시켜준다. 실행시키면 중간에 Name은 CodeEngn으로, P.. CodeEngn_basic_15 Basic RCE L15 Name이 CodeEngn일때 Serial을 구하시오 패킹은 되어있지 않았다. 프로그램 실행 실패시 자 이제 정답을 찾으러 가자 이런 맞는 Serial 값을 찾는 종류의 문제를 풀기 위해서는 정답 메세지가 있는 text를 찾아가야한다. Ollydbg에서 문제 파일을 연 뒤에 Search for > All referenced text strings을 통해 text가 모여있는 곳을 확인한다. 켜자마자 약간 위에 Try Again!이라는 문자와 같이 CRACKED라는 문자열이 저장되어있다 이 부분을 호출하는 곳에서 정답이 있을 것이기 때문에 진입해보자. 그러면 좀 바로 위에 CMP비교문과 JNZ와 같은 점프문이 있는데 JNZ가 만약에 ZF가 0이 아니라면 Try Again이 있는 주소.. CodeEngn_basic_14 Basic RCE L14 Name이 CodeEngn 일때 Serial을 구하시오 (이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) Ex) 11111 우선 이번 문제의 프로그램은 UPX 패킹이 걸려있다. 언패킹 진행 후에 실행시켜주자 실행시켜보면 이런 화면이 나온다. 입력값을 넣어 준뒤에 맞지 않는다면 에러 값을 출력한다. 이제 Ollydbg로 파일을 열어보자 문자열을 검색하는 Search for > All referenced text String으로 생공 메세지처럼 보이는 곳을 더블클릭하여 진입해주자. 진입하면 아래와 같은 화면이 나오는데 이 윗부분의 JNZ부분을 보면 성공과 실패부분을 나눠주는데 점프문 위에 CMP를 보면 EAX와 ES.. CodeEngn_basic_13 Basic RCE L13 정답은 무엇인가 이번 문제는 굉장히 심플하다. 실행을 시켜보자 커맨드창으로 Please enter the password: 라는 글이 출력되고 입력을 기다린다. 만약 잘못된 password를 입력하면 이런 문구가 출력된다. 맞는 password를 입력해야 한다. Ollydbg로 열어보려 했으나 에러가 출력됐다. 혹시 패킹이 걸려있나 해서 확인해 봤는데 그건 또 아니었다. 잘 보니 C# 코드같은데 C#으로 작성된 코드는 Ollydbg로 디버깅 하기 어렵다. 대신 .net 디컴파일를 이용해서 소스코드를 쉽게 복원시킬 수 있다. 나는 .net 디컴파일러 중 DotPeek이라는 visual studio와 연동되는 듯한 프로그램을 사용했다. 설치 사이트 : https://www.jetbr.. 이전 1 2 3 4 5 다음