WarGame
-
[reversing.kr] Easy Unpack 풀이Wargame/reversing.kr 2020. 12. 13. 15:17
1. 프로그램 실행 reversing.kr에서 Easy Unpack을 다운로드하여 실행시켜 보자. 위와 같이 빈 창이 나올 뿐 다른 어떤 동작도 하지 않는다. 폴더내에 있는 ReadMe.txt를 읽어보자. Find the OEP. 즉 Original Entry Point를 찾을 것을 요구한다. 문제의 제목을 보면 알 수 있듯이, 해당 프로그램은 실행 압축되어있고 본래의 entry point를 찾는 것이 문제의 목적인 듯하다. 2. Debugging(with x32dbg) 실행하자마자 401150으로 jump 하는 부분이 있고, 해당 부분으로 jump를 하면 다음과 같다. 바로 entry point가 나와 버린다... x32dbg 옵션에서 시스템 중단점을 체크 해제해뒀을 때 위와 같이 OEP로 넘어가기 직..
-
[reversing.kr] Easy Keygen 풀이Wargame/reversing.kr 2020. 12. 9. 11:16
reversing.kr의 두 번째 문제다. 나름 꼼꼼하게 풀어보려고 다양한 시도를 해봤지만 도저히 감이 안 와서 다른 분들의 풀이를 참고하였다. 1. 프로그램 실행 해당 프로그램은 콘솔형태의 프로그램으로 클릭하여 실행하면 바로 결과를 출력하고 콘솔 창이 사라져 버린다. Powershell로 프로그램을 실행해보자. 사용자로부터 Name과 Serial을 input으로 받고 결과를 출력한다. 각각 'maple19out', 'maple19out'을 입력하였지만 조건을 만족하지 않아서 Wrong을 출력한다. 같은 폴더에 있는 ReadMe.txt를 읽어보자. 결과적으로는 어떠한 Serial Key가 5B134977135E7D13인 Name을 찾아 홈페이지에 Auth를 해야 점수를 받을 수 있다. 본격적으로 디버깅을..
-
[reversing.kr] Easy Crack 풀이Wargame/reversing.kr 2020. 12. 7. 14:30
오늘 드디어 리버싱 관련 첫 wargame문제를 풀어보았다. Easy Crack이지만 전혀 easy하지 않았다... 우선 reversing.kr에서 easy crack문제를 다운로드하고 실행시켜보자. 1. 프로그램 실행 무언가 원하는 key를 입력해야 할 것 같다. 임의로 m을 10개 입력해보자. 역시나 예상대로 Incorrect 메시지 박스가 나타난다. 본격적으로 디버깅을 해보자. 2. Debugging (with x32dbg) 우선 위 프로그램이 작동하는 부분을 찾기 위해 디버거를 켠 후, 문자열 참조로 Incorrect Password라는 문자열이 호출되는 부분을 확인해보자. "Congratulation !!" 문자열을 더블클릭하여 주변을 살펴보기로 하자. 일단은 congratulaion 문자열 기..
-
[리버싱 핵심원리 study] 8장 abex' crackme#2 분석(2)Reverse Engineering 2020. 12. 3. 13:11
https://maple19out.tistory.com/8 [리버싱 핵심원리 study] 8장 abex' crackme#2 분석(1) 이번 포스팅에서는 abex' crackme#2라는 프로그램을 분석해본다. 해당 프로그램은 Visual Basic으로 제작되어 visual C++로 작성된 프로그램과는 다른 형태의 디스어셈 코드를 보이는데, 이런 부분에 대한 maple19out.tistory.com 지난 포스팅에 이어 이번에는 serial 생성 알고리즘을 살펴보겠다. abex' crackme#2 프로그램에서는 이름/시리얼을 입력하고 [Check] 버튼을 클릭한 후, 조건에 대한 검사를 통해 올바른 시리얼 키인지 아닌지를 판별한다. 즉, 이전에 찾았던 조건 분기 코드는 check button을 클릭했을 때 호..
-
[리버싱 핵심원리 study] 8장 abex' crackme#2 분석(1)Reverse Engineering 2020. 12. 2. 01:44
이번 포스팅에서는 abex' crackme#2라는 프로그램을 분석해본다. 해당 프로그램은 Visual Basic으로 제작되어 visual C++로 작성된 프로그램과는 다른 형태의 디스어셈 코드를 보이는데, 이런 부분에 대한 설명은 생략하고 크랙 하는데 초점을 맞춰 글을 작성해보겠다. 1. abex' crackme#2 실행 우선 해당 프로그램을 실행시켜보자. Name과 Serial 입력란과 세 가지 버튼이 보인다. 왠지 name과 serial을 입력하고 Check를 통해 만족하는 serial key인 경우 통과하는 형태의 프로그램으로 보인다. maple19out / maple19out을 입력하고 Check 버튼을 눌러보았다. 예상대로 뭔가 조건을 만족하지 않아 Wrong이라는 메시지박스가 창에 나타난다. ..
-
[리버싱 핵심원리 study] 6장 abex' crackme #1 분석Reverse Engineering 2020. 11. 25. 02:59
이번 포스팅에서는 crackme라는 프로그램을 실행하고 분석하여 최종적으로 crack 하는 것이 목적이다. 1. 프로그램 실행 우선 프로그램을 실행하여 어떠한 프로그램인지 알아보자. 이후 확인 버튼을 눌러보자. 확인 버튼을 다시 누르면 프로그램은 종료가 된다. 첫 번째 캡처 화면에서 보이듯이 HD를 CD-Rom으로 인식하게끔 크랙을 진행해야 함을 유추해 볼 수 있다. 2. Debugging (with Ollydbg) Ollydbg로 이제 본격적으로 디버깅을 해보자. 프로그램을 Ollydbg로 열면 다음과 같은 코드를 볼 수 있다. 어떠한 '조건'을 만족시켜야 원하는 대로 크랙을 할 수 있고, 그 '조건'을 만족시키지 못하기 때문에 프로그램이 그대로 종료되는 것 같다. 즉, '조건'과 관련된 명령인 분기문..