c++로 작성한 av엔진 악성코드 프로젝트
- 최초 등록일
- 2014.01.01
- 최종 저작일
- 2013.11
- 압축파일
- 가격 6,500원
소개글
C++로 작성한 av엔진 입니다. 시그니처 기반으로 검진을 하는 파일이에요
압축파일에는 실행파일(av엔진), av엔진를 구현한 코드, 샘플 악성파일/정상파일, 최종보고서가 들어있어요
주석이 상세하게 달려있어서 이해하시기도 쉬울거에요!!
A+받은 과목이에요!!!
컴파일 실행환경
Zip archive data
본문내용
진단 아이디어
프로젝트를 진행하면서 생겼던 위기들과 해결했던 방안으로 나눠 설명하겠습니다.
위기 1. 폴더 위치를 입력으로 받아 그 안의 파일명들을 읽어 들이는 부분에서, ‘.’와 ‘..’이 포함되어 파일의 개수도 늘어나고 실행오류가 생겼다.
-> strcmp함수로 ‘.’와 ‘..’을 읽으면, continue를 이용해 다음 단계로 넘어가도록 설계했다.
위기 2. exe파일을 헥사 값으로 출력하여 그 출력 값을 txt파일에 따로 저장한 후 그 txt파일을 다시 open하여 바이러스를 검진하려고 했다. 하지만 offset을 읽은 후 점프하기가 힘들고, 시그니쳐를 이용해서 이동하려고 했지만, 오진의 확률이 높았다.
-> MS에서 이미 정의한 PE헤더 구조체를 사용해 PE헤더 정보를 채웠고, offset만큼 뛰는 것도 가능해졌다.
위기 3. Fseek()을 이용해서 문자열을 읽어 진단하려고 했지만, fseek함수의 매개변수가 파일포인터여서 매개변수가 그 전의 설계했던 코드와 호환되지 않았고, 특정 문자열을 찾을 수가 없었다.
-> lpBase라는 unsiged char 자료형의 포인터를 선언하여 MapViewOfFile의 반환 값을 넣어, lpBase[]와 같이 배열로 접근하여 문제를 해결하였다.
압축파일 내 파일목록
악성파일/M1.exe
악성파일/M2.exe
악성파일/M3.exe
정상파일/N1.exe
정상파일/N2.exe
정상파일/N3.exe
av엔진.cpp
av엔진.exe
~$코드 프로젝트 보고서.docx
악성코드 프로젝트 보고서.docx
참고 자료
없음