[Anti-Virus] 구조와 원리

SMONGS·2024년 4월 2일

백신

목록 보기
1/4

바이너리? 텍스트?

일반적으로 바이너리와 텍스트는 ASCII 값으로 구분할 수 있다.

바이너리의 경우 0x00 ~ 0xFF 값을 모두 말하는 반면 텍스트는 0x00 ~ 0x7F의 값을 말한다.

쉽게 말하면, 메모장으로 파일을 열었을 때 사람이 대부분 읽을 수 있고 이해할 수 있다면 텍스트이고, 그렇지 않으면 파일을 바이너리로 정의하면 된다.

악성코드 진단 문자열 길이와 오진 가능성

장점단점
짧은 문자열변형 바이러스를 진단할 확률이 높다.정상적인 프로그램을 바이러스로 잘못 진단할 확률이 높다.
긴 문자열정상적인 프록램을 바이러스로 잘못 진단할 확률이 낮다.변형 바이러스를 진단할 확률이 낮다.
긴 문자열을 여러 번 사용정상적인 프로그램을 잘못 진단하거나 변형 바이러스를 진단하지 못할 확률이 낮다.X

=> MD5 해시를 사용해서 오진 가능성을 줄일 수 있다.

MD5 해시

단방향 해시 알고리즘의 일종인 MD5(Message Digest algorithm 5)는 128 bit 해시 알고리즘이다.
(단방향 해시 알고리즘: 역방향(출력->입력)으로 처리가 불가능한 해시 알고리즘)

백신 제작시 기억할 내용

  1. 악성코드 진단을 목적으로 할 때는 반드시 바이너리 읽기 모드(rb)로 파일을 연다.
  2. 악성코드 지단 문자열을 이용하여 악성코드를 진단할 때는 최소 10Byte 이상을 사용하는 것이 좋다.
  3. MD5 해시를 이용하여 진단할 수 있는 악성코드는 바이러스 유형을 제외한 파일 그 자체가 악성코드인 트로이목마, 백도어, 웜 등이다.
profile
반갑습니당~😄

0개의 댓글