리버싱 핵심 원리/실습예제 및 소스코드

"리버싱 핵심 원리" 소스 코드와 실습 예제 파일입니다.

reversecore 2012. 10. 1. 22:19
반응형
(2021.07.08) github.com 에도 제 계정을 생성하여 소스코드 및 실습예제를 올렸습니다.
github 에 익숙하신 분들께서는 이곳을 이용하시면 됩니다.

https://github.com/reversecore/book

 

1. 소스 코드 (ver 1.0.2)

 

소스코드.zip
0.25MB

* 암호 : reversecore

< 릴리즈 히스토리 >

ver 1.0.2 - "44장 InjDll.exe - DLL 인젝션 전용 도구" InjDll.cpp 오류 수정 (20121110)

ver 1.0.1 - "33장 스텔스 프로세스" 프로젝트 소스 보기 오류 수정 (20121008)

ver 1.0.0 - 첫 릴리즈 (20120928) 

 

< 참고 >

 

* 모든 소스 코드는 MS Visual C++ Express 2010 으로 개발되었습니다.

* 소스 코드를 이용하여 빌드한 결과 파일은 사용자 환경에 따라 약간씩 달라질 수 있습니다.

* 책의 설명과 동일하게 디버깅 하기 위해서는 첨부한 예제 파일을 사용하시기 바랍니다. 

 

2. 실습 예제 파일 (ver 1.0.1)

 

* 2중 압축 되어 있습니다. (압축 풀면 실습예제.zip 이 생성됩니다. 이를 다시 압축 해제 해주세요.)

* 암호 : reversecore

 

< 릴리즈 히스토리 >

 

ver 1.0.1 - "1장 리버싱 스토리" 예제 변경 (20130401)

ver 1.0.0 - 첫 릴리즈 (20120928)

< 참고 >

* "실습예제.zip" 파일은 Anti-Virus 제품의 실시간 검사를 피하기 위하여 2중 압축 되어 있습니다.

* "5부 - 64비트 & Windows Kernel 6" 의 실습 예제 파일을 실습 하기 위해서는 Windows XP/Vista/7 64bit 환경이 필요합니다.

* 5부를 제외한 나머지 모든 실습 예제 파일은 MS Windows XP SP3 32bit & Windows 7 32bit 에서 테스트 되었습니다.

* 만약 64bit 환경에서 실습을 진행하기 위해서는 다음 포스팅에 나타난 방법을 참고하시기 바랍니다.

 

    64bit 환경에서 OllyDbg 사용할 수 있는 방법

* 중요!!!

일부 Anti-Virus 제품에서 실습 예제 파일의 일부가 악성 파일로 진단될 수 있습니다.

그 이유는 예제에서 사용된 기법들이 기존의 악성 파일에서 사용된 기법과 동일하기 때문에 AV 휴리스틱 엔진에서 그 부분을 탐지하여 악성 파일로 잘 못 진단할 수 있기 때문입니다.

 

전혀 악성 파일이 아니므로 아래 설명을 잘 읽어 보시고 실습해 보시기 바랍니다.

 

1) UPack 패커와 UPack 으로 패킹된 실습 예제가 진단될 수 있습니다.

이는 패커 자체가 PE 헤더를 심하게 훼손시켜서 Black 리스트에 포함되었고, 또한 몇 년전에 많은 악성 코드들이 UPack 으로 실행압축 되었기 때문에 이젠 대부분의 AV 에서 UPack 자체만으로도 악성 파일로 진단해 버립니다.

그렇다고 UPack 자체와 이걸로 패킹된 실습 예제가 악성 파일은 아닙니다. 

다만 리버싱 기술 설명을 위해 AV 업계의 권고사항을 따르지 않은것 뿐입니다.

PE 파일 설명에 UPack 만큼 좋은 예제가 드물기 때문에 이런 불편함에도 예제로 사용하였습니다.

 

2) '고급 리버싱', '안티 디버깅' 예제 일부가 악성 파일로 진단될 수 있습니다.

이 예제 파일 역시 악성 파일에서 사용되는 것과 동일한 기법을 사용했기 때문에 AV 휴리스틱 엔진에서 그 부분을 탐지한 것입니다.

실습 파일 자체는 아무런 악성 행위를 하지 않는 정상 파일입니다.

3) 시간이 지난 후에 멀쩡한 예제 파일들이 악성으로 진단될 수 있습니다.
예제 파일이 퍼져서 AV 업체에 접수되어 자동 분류 시스템에 의해 만에 하나 '악성'으로 분류될 수도 있습니다.악성 파일에서 안티 디버깅에 사용되는 SEH, TLS Callback 기법을 구현하였기 때문입니다.이 기법 자체만으로는 아무런 악성 증상이 없습니다. 다만 AV 엔진의 휴리스틱 진단에서 이 부분을 탐지 할 가능성이 있다는 것이죠.

4) 그렇다면 진짜 악성 파일이란 어떤 것일까요?

사용자 몰래 시스템에 숨어 들어서, 자동으로 실행 되며, 개인 정보를 무단으로 수집하고, 수집한 정보를 외부로 유출하는 등의 악의적인 행위를 하는 파일들입니다. 

즉, 악성 파일이란 사용자에게 크던 작던 피해를 입히는 파일들을 말하는 것이죠.

실습 예제 파일들은 특정 리버싱 기법을 위해 만들어진 단순한 파일들 입니다. 악성 증상은 전혀 없습니다. ^^~

 

5) 실습 환경 PC 에서는 잠시 AV 제품의 "실시간 감시" 기능을 꺼두시기 바랍니다.

물론 실습을 마치셨다면 실시간 감시를 다시 켜주시는 것이 좋습니다.

 

6) Windows 7 에서 실습을 하시는 경우 UAC(User Access Control) 기능을 끄고 하시면 편리합니다.

 

 

혹시 다운로드가 잘 안되거나 AV 진단 관련하여 궁금하신 점은 이곳에 질문해 주세요~

 

감사합니다.

 

반응형