kaka09
[사진]1-1 14번 문제처럼 입력값이 CodeEngn일 때의 시리얼을 구하는 문제이다. 패킹 여부를 알기위해 PEID로 검사를 해보았다. [사진]1-2 패킹이 되어있지 않는 프로그램이다. 언패킹 과정 없이 올리 디버거를 이용하여 분석을 시도해 보았다. [사진]1-3 올리 디버거로 열어 봤을때 다음과 같은 어셈코드가 나온다. 이번 문제도 시리얼을 찾는 문제기 때문에 성공메세지 근처에 키값을 비교하는 구문이 존재할 가능성이 높으므로 문자열 검색을 통해 성공 메세지 부분을 찾아 보았다. [사진]1-4 찾아보면 "You cracked~~~"로 시작하는 문자열을 확인할 수 있다. 해당 부분으로 이동하여 분기구문을 살펴보자 [사진]1-5 어셈코드를 살펴보면 EAX와 45B844를 비교하여 값이 일치하면 "You ..
[사진]1-1 이번 문제는 시리얼을 구하는 문제이다. bruteforce 기법을 이용해야 한다는데.. 일단 PEID로 패킹이 되어있는지 부터 검사 하였다. [사진]1-2 UPX로 패킹되어 있는걸 확인할 수 있다. 올리 디버거로 디버깅을 시도해보자 [사진]1-3 OEP로 진입후 다음과 같은 어셈코드를 확인 할 수 있다. 서브함수로 00401025로 진입해서 어떠한 루틴을 처리하는것을 알 수 있다. 일단 시리얼키를 찾기 위해서 스트링 검색을 시도해 보았다. [사진]1-4 스트링을 찾아보면 밑에 Good Job 으로 시작하는 문자열을 확인할 수 있다. 해당 영역으로 이동하여 어셈코드를 살펴보자 [사진]1-5 "Godd job~~" 으로 시작하는 문자열의 영역을 들어가서 확인해보면 위에서 분기문이 존재하는것을 ..
[사진]1-1 정답은 무엇인가라는 심플한 메세지만 주어졌다. 심플하게 올리 디버거로 까보자 [사진]1-2 응?? 올리디버거로 열 수 없다는 에러메세지를 보여준다.. 뭐지 싶어서 혹시 이상한 종류의 패킹인가 싶어 PEID로 확인해 보았다. [사진]1-3 PEID로 확인해본 결과 C#으로 만들어진 프로그램임을 확인 할수 있었다. 구글링을 찾아보니 C# 같은 경우는 일반 PE 파일구조와는 달라 올리 디버거로 실행시키기 어렵다고 한다. 따라서 C#전용 디컴파일러를 사용해야 한다는데, C#도 자버처럼 중간언어로 변환 시키는 과정이 존재해 디컴파일로 원본 소스에 가깝게 복원이 가능하다고 한다. jetbrain 의 dotpeek을 이용하여 디컴파일을 시도하였다. [사진]1-4 디컴파일로 원본 소스코드를 복원한 결과이..