반응형

 

 

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 진단 관련하여 궁금하신 점은 이곳에 질문해 주세요~

 

감사합니다.

 

반응형
  1. 이전 댓글 더보기
  2. hacker3 2015.03.13 18:24

    리버싱 책 구입했는데 파일 어디서 다운받죠? 모조리 받고 싶어요

  3. maskey 2015.07.08 22:33

    안녕하세요 리버싱 핵심원리 구독자입니다.
    지금 윈도우 64비트 환경에서 올리디버거를 사용하고있습니다.

    문의드리는 내용은 제일 첫장 Hello World 부분에서 디버거에 exe를 올리면 책에서는 004011A0의 주소로 0040270C의 주소로 call 시키는 부분입니다.
    하지만 저가 할 떄는 처음부터 0042F55F JMP wmainCRTStartup 으로 EntryPoint가 잡혀있습니다.

    디버거는 ollydbg 2.01과 Immunnity dbg 1.85v 두 디버거 사용해도 똑같이 시작됩니다.

  4. 김요환 2015.07.24 04:32

    5부 64bit 37.2.1 예제 CreateFileA() 구조가 살짝 다릅니다.
    3번째 행 책 (PUSH ECX)
    dbg(SUB ESP 214) -> 메모리 할당
    그리고 4부 마지막 IE 제어는 아예 프로세스 디버깅하고 해봐도 같은 함수가 찾아 지지 않습니다. 하는 방법이 잘못된 것 갈까요?

  5. 김요환 2015.07.24 04:32

    5부 64bit 37.2.1 예제 CreateFileA() 구조가 살짝 다릅니다.
    3번째 행 책 (PUSH ECX)
    dbg(SUB ESP 214) -> 메모리 할당
    그리고 4부 마지막 IE 제어는 아예 프로세스 디버깅하고 해봐도 같은 함수가 찾아 지지 않습니다. 하는 방법이 잘못된 것 갈까요?

  6. 김요환 2015.07.24 04:32

    5부 64bit 37.2.1 예제 CreateFileA() 구조가 살짝 다릅니다.
    3번째 행 책 (PUSH ECX)
    dbg(SUB ESP 214) -> 메모리 할당
    그리고 4부 마지막 IE 제어는 아예 프로세스 디버깅하고 해봐도 같은 함수가 찾아 지지 않습니다. 하는 방법이 잘못된 것 갈까요?

  7. 김요환 2015.07.24 04:32

    5부 64bit 37.2.1 예제 CreateFileA() 구조가 살짝 다릅니다.
    3번째 행 책 (PUSH ECX)
    dbg(SUB ESP 214) -> 메모리 할당
    그리고 4부 마지막 IE 제어는 아예 프로세스 디버깅하고 해봐도 같은 함수가 찾아 지지 않습니다. 하는 방법이 잘못된 것 갈까요?

  8. 김요환 2015.07.24 04:33

    5부 64bit 37.2.1 예제 CreateFileA() 구조가 살짝 다릅니다.
    3번째 행 책 (PUSH ECX)
    dbg(SUB ESP 214) -> 메모리 할당
    그리고 4부 마지막 IE 제어는 아예 프로세스 디버깅하고 해봐도 같은 함수가 찾아 지지 않습니다. 하는 방법이 잘못된 것 갈까요?

  9. doctroy 2015.07.26 21:18

    안녕하세요 책을 보면서 공부를 하고 있는 독자입니다 다름이 아니라 윈도우 10에서 HOOKMAIN.EXE 파일을 실행하면 모든 프로그램에 키보드 입력이 되지 않네요...

  10. 치운 2016.02.25 18:16 신고

    책을 사서 예제파일 hello.exe를 OllyDbg로 열어봤는데 주소가 완전히 틀리네요.
    저는 노트북에 windows2008을 깔고 있습니다.
    책에 나오는 예제와 똑같은 주소가 보이려면 어떻게 해야합니까?
    저의 이메일은 kchambit@daum.net입니다. 꼭 알려주세요.

  11. 권흥태 2016.06.21 22:34 신고

    맘먹고 책을 사서 공부중인 학생입니다.
    c++파일 올리디버거로 똑같이 열어서 하고 있는데 책이랑 메모리 주소들이 자꾸 틀리네요..
    helloWold.exe파일도 그러 합니다. ㅠㅠ 정말 해결책을 알 고 싶어요 ㅠㅠ
    빠른 답변 부탁드립니다.
    dev-c++사용합니다. 32비트이구요

  12. 2018.01.29 22:42

    비밀댓글입니다

  13. 2018.02.21 18:09

    비밀댓글입니다

  14. 김범준 2018.03.08 14:53

    비밀번호가걸려잇어요 어떻개해야하나요

  15. 천호진 2019.01.19 03:41

    크롬 환경에서 실습 예제파일 티스토리는 보안 오류가 뜨고,
    드랍 박스는 url이 바뀐모양이네요

  16. 2020.12.05 22:41

    비밀댓글입니다

  17. 2020.12.10 18:57

    비밀댓글입니다

  18. 2020.12.15 00:14

    비밀댓글입니다

  19. 2020.12.26 19:45

    비밀댓글입니다

  20. 2020.12.28 16:04

    비밀댓글입니다

  21. tifet1264 2021.04.14 16:49

    감사합니다. 책과 함께 잘 쓰도록 하겠습니다.

+ Recent posts