변종 탐지
EICAR 파일의 변종을 탐지해보자!
EICAR_new.txt
X5O!P%@AP[4\PZX54(P^)7CC)7}$HWANGALLBAM!!!!$H+H*
이번엔 안에 들어있는 문자열이 달라진 EICAR의 변종이다
기존의 EICAR 해시로 탐지하는 백신을 돌려보면,

정상이라고 뜬다...
이걸 해결하는 방법은 이 해시 또한 백신이 악성코드라 인식할 수 있게 알려주는 것이다.
md5 = e0d01e4135f4839f4a3c58a33ff7cf96
이떄 이 시그니처들을 효율적으로 관리하기 위해 python의 list, dictionary와 같이 여러 데이터를 다룰 수 있는 자료구조를 채택한다.
나는 dictionary로 짜봤다.
import sys
import hashlib
import os
# EICAR_new.txt 파일 읽기
fp = open('EICAR_new.txt', 'rb')
fbuf = fp.read()
fp.close()
malware_hash = {
"44d88612fea8a8f36de82e1278abb02f": "EICAR.txt",
"e0d01e4135f4839f4a3c58a33ff7cf96": "EICAR_new.txt"
}
# MD5 해시를 이용한 진단
input_hash = hashlib.md5(fbuf).hexdigest()
if input_hash in malware_hash:
print("virus!")
print(f"it's {malware_hash.get(input_hash)}!!!")
# 치료하기
#os.remove(malware_hash.get(input_hash)) # 삭제로 치료는 주의가 필요
else:
print("benign!")

더 효율적인 백신??
해시 말고도 여러 특징이 활용될 수 있다.
크기, 문자열 등등...
이런걸 효율적으로 관리할 자료구조는 생각해봐야 한다...
모든 자료는 여기에
https://github.com/VeryBigsilver/malware-vaccine/tree/main/2_EICAR_new
반응형
'악성코드와 백신 > 백신 개발일지' 카테고리의 다른 글
| [백신 개발](6)[Import table을 이용한 탐지] (0) | 2026.03.17 |
|---|---|
| [백신 개발](5)[시그니처 탐지] (0) | 2026.03.13 |
| [백신 개발](4)[바이러스 db] (0) | 2026.03.05 |
| [백신 개발](2)[EICAR test file] (0) | 2026.03.03 |
| [백신 개발](1)[악성코드 & 백신이란?] (0) | 2026.02.24 |