분류 전체보기
-
-
-
[리버싱 핵심원리 study] 11장 Lena's Reversing for NewbiesReverse Engineering 2020. 12. 23. 22:09
Lena라는 사람이 www.tuts4you.com/게시판에 40여 개의 crackme라는 강좌를 올려놓았다고 한다. 나중에 한 번 들어가서 보는 것도 괜찮을 것 같다. forum.tuts4you.com/files/categories/ 에서 관련된 파일을 다운로드할 수 있다. 리버싱 핵심원리 책에서는 Tut.ReverseMe1.exe 파일을 다뤄보고 이에 대한 crack을 진행한다. 1. 프로그램 실행 위와 같은 문구가 출력된다. 확인 버튼을 눌러보자. 무언가 적합한 Regcode를 발견하여 Register me! 버튼을 눌렀을 때 통과할 수 있는 구조 같다. SmartCheck는 Numega 사에서 만든 크래커들이 자주 이용하는 툴이라고 한다. Nag? 버튼을 클릭해보자. 위와 같이 프로그램을 초기에 실..
-
[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] 10장 함수 호출 규약Reverse Engineering 2020. 12. 4. 19:47
함수 호출 규약(Calling Convention)은 함수를 호출할 때 어떤 방식으로 argument를 전달할지, 함수가 끝난 후 어떤 방식으로 ESP(스택 포인터)를 정리하는지에 대한 약속이다. 대표적으로 cdecl, stdcall, fastcall 등이 있다. Ollydbg로 예제 프로그램의 어셈블리 코드를 살펴보면서 각 방식의 특징을 살펴보겠다. 1. cdecl 주로 C언어에서 사용되는 방식이며, 'Caller'에서 스택을 정리하는 특징을 보인다. #include "stdio.h" int add(int a, int b) { return a+b; } int main(int argc, char* argv[]) { return add(1, 2); } 위와 같은 코드를 VC++에서 최적화 옵션을 끄고 빌드..
-
[리버싱 핵심원리 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을 클릭했을 때 호..