KR100367129B1 - A polymorphic virus analysis system and a method thereof - Google Patents

A polymorphic virus analysis system and a method thereof Download PDF

Info

Publication number
KR100367129B1
KR100367129B1 KR10-2000-0014332A KR20000014332A KR100367129B1 KR 100367129 B1 KR100367129 B1 KR 100367129B1 KR 20000014332 A KR20000014332 A KR 20000014332A KR 100367129 B1 KR100367129 B1 KR 100367129B1
Authority
KR
South Korea
Prior art keywords
counter
virus
value
execution
file
Prior art date
Application number
KR10-2000-0014332A
Other languages
Korean (ko)
Other versions
KR20010089062A (en
Inventor
백동현
Original Assignee
주식회사 하우리
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하우리 filed Critical 주식회사 하우리
Priority to KR10-2000-0014332A priority Critical patent/KR100367129B1/en
Publication of KR20010089062A publication Critical patent/KR20010089062A/en
Application granted granted Critical
Publication of KR100367129B1 publication Critical patent/KR100367129B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

개시된 본 발명은 모의 실행 중 반복적으로 이루어지는 소정의 규칙을 이용하여 하드디스크 또는 플로피디스크에 저장된 파일을 감염시킨 바이러스가 다형성 바이러스임을 진단하는 다형성 바이러스 진단시스템 및 그 방법에 관한 것이다.The disclosed invention relates to a polymorphic virus diagnosis system and method for diagnosing that a virus infecting a file stored on a hard disk or a floppy disk using a predetermined rule repeatedly executed during simulation is a polymorphic virus.

본 발명은 바이러스에 감염된 적어도 하나 이상의 파일을 저장하고 있는 진단 영역과, 진단 영역의 저장된 파일에 대해 다형성 바이러스가 감염되었는지를 진단하기 위한 모의 프로그램을 저장하고 있는 다형성 바이러스 모의 프로그램 저장영역과, 사용자의 모의 실행 요청에 따라 상기 진단 영역에 저장된 파일을 읽어들이고, 상기 모의 프로그램 저장영역에 저장된 모의 프로그램에 따라 실행시키면서 상기 진단 영역에 저장된 파일에 감염된 바이러스가 다형성 바이러스인지를 진단하는 다형성 바이러스 진단모듈을 포함한다.The present invention provides a diagnostic region for storing at least one file infected with a virus, a polymorphic virus simulation program storage region for storing a simulation program for diagnosing whether a polymorphic virus has been infected for the stored files of the diagnostic region, and A polymorphic virus diagnostic module that reads a file stored in the diagnostic area according to a simulation execution request and diagnoses whether a virus infected with the file stored in the diagnostic area is a polymorphic virus while executing the file stored in the diagnostic area stored in the simulation program storage area; do.

Description

다형성 바이러스 진단시스템 및 그 방법{A polymorphic virus analysis system and a method thereof}A polymorphic virus analysis system and a method

본 발명은 다형성 바이러스 진단시스템 및 그 방법에 관한 것이다.The present invention relates to a polymorphic virus diagnostic system and method thereof.

보다 상세하게는 모의 실행 중 반복적으로 이루어지는 소정의 규칙을 이용하여 하드디스크 또는 플로피디스크에 저장된 파일을 감염시킨 바이러스가 다형성 바이러스임을 진단하는 다형성 바이러스 진단시스템 및 그 방법에 관한 것이다.More specifically, the present invention relates to a polymorphic virus diagnosis system and a method for diagnosing that a virus infecting a file stored on a hard disk or a floppy disk is a polymorphic virus by using predetermined rules repeatedly executed during simulation.

일반적으로 컴퓨터 바이러스 제작자들은 자신이 만든 바이러스가 안티바이러스 프로그램(Anti-Virus Program, 이하 '백신'이라 칭함)들의 진단 방법을 회피하면서 감염되도록 여러 가지 기법들을 사용하고 있다.In general, computer virus writers use a variety of techniques to infect their viruses by evading anti-virus programs (Vaccines).

컴퓨터 바이러스가 발견되던 초기에는 감염패턴이 일정한 바이러스들이 등장하다가 백신들이 쉽게 진단모듈을 만들어내기 시작하자, 이를 다시 암호화된 바이러스, 그리고 최근에는 암호화한 내용도 알아보기 힘들게 만든 다형성 바이러스가 컴퓨터 바이러스 제작자에 의해 생성되기 시작했다.In the early days when computer viruses were discovered, viruses emerged with a certain pattern of infection, and vaccines began to make diagnostic modules easily. Started to be generated by

물론 백신들도 상술한 바이러스에 대응하기 위해 발전된 진단기술을 가지게 되었는데, 상술한 바이러스의 유형별로 상술한 진단기술을 간단히 설명하면 다음과 같다.Of course, the vaccines also have an advanced diagnostic technology to cope with the above-mentioned virus, the brief description of the above-described diagnostic technology for each type of virus as follows.

첫째, 단순 바이러스로서, 상술한 단순 바이러스에 감염된 파일에 의해 다른 정상 파일이 감염되는 경우에도 동일한 패턴으로 감염되므로 백신들은 해당 바이러스가 가지는 고유한 패턴을 추출하여 이를 가지고 진단한다.First, as a simple virus, even if another normal file is infected by the above-described simple virus-infected file, the vaccine is infected with the same pattern, and the vaccine extracts a unique pattern of the virus and diagnoses it.

둘째, 암호화 바이러스(Encrypted Virus)로서, 상술한 암호화 바이러스는 단순 바이러스와 같이 패턴을 동일하게 유지하는 경우 백신이 쉽게 진단하게 되므로 바이러스 본체를 암호화하고 짧은 암호해제 코드가 먼저 실행되도록 제작된다.Secondly, as an encrypted virus, the above-mentioned encrypted virus is designed to encrypt the virus body and execute a short decryption code first since the vaccine is easily diagnosed when the pattern is kept the same as a simple virus.

그러므로 상술한 암호화 바이러스에 정상 파일이 감염될 때마다 바이러스 본체를 다른 값으로 암호화하여 백신이 일정한 패턴으로 진단하지 못하도록 한다.Therefore, every time a normal file is infected with the above-mentioned encryption virus, the virus body is encrypted with a different value so that the vaccine cannot be diagnosed with a certain pattern.

그러나, 백신은 상술한 암호화 바이러스에서 암호해제코드는 감염될 때마다 동일한 패턴을 가지고 있기 때문에 이를 추출하여 진단한다.However, the vaccine extracts and diagnoses the decryption code in the above-mentioned encryption virus because it has the same pattern every time it is infected.

셋째, 다형성 바이러스(Polymorphic Virus)로서, 다형성 바이러스는 진보된암호화 바이러스로서, 감염될 때마다 바이러스 본체를 바꾸는 것은 물론 암호해제코드 부분까지도 감염될 때마다 변경되도록 제작된다. 따라서 패턴진단방법 한가지만을 이용하여서는 바이러스 진단이 이루어지지 않는 바이러스이다.Third, as a polymorphic virus, a polymorphic virus is an advanced encryption virus, which is designed not only to change the body of the virus every time it is infected but also to change the decryption code part every time it is infected. Therefore, the virus cannot be diagnosed using only one pattern diagnosis method.

그러므로 상술한 바이러스를 진단하기 위해서는 백신에 모의실행모듈(Emulator)을 탑재하여 바이러스 자체의 암호해제코드를 모의 실행 후 나타난 바이러스 본체의 패턴을 진단함으로써 바이러스를 진단한다.Therefore, in order to diagnose the above-mentioned virus, a virus is installed by mounting an emulator in the vaccine and diagnosing a pattern of the virus main body that appears after the execution of the decryption code of the virus itself.

상술한 종래의 일반적인 다형성 바이러스의 진단 기술을 첨부 도면 도 1을 참조하여 좀더 구체적으로 설명하면 다음과 같다.Referring to Figure 1 of the conventional general polymorphic virus diagnosis described above in more detail with reference to the accompanying drawings.

먼저, 사용자에 의해 모의 실행 요청신호가 입력되는지를 판단(S100)하고, 판단 결과 모의 실행 요청신호가 입력되면, 하드디스크 또는 플로피디스크 등과 같은 저장매체에 저장된 검사파일을 순차적으로 읽어들이는 검사파일 준비과정(S110)을 수행한다.First, it is determined whether the mock execution request signal is input by the user (S100). When the mock execution request signal is input as a result of the determination, a test file sequentially reading test files stored in a storage medium such as a hard disk or a floppy disk. Perform the preparation process (S110).

상술한 바와 같이 검사파일 준비과정(S110)이 완료되면, 바이러스 모의 프로그램의 실행 스텝수를 체크하기 위한 업카운터(N)를 초기화시킨다(S120).When the inspection file preparation process (S110) is completed as described above, the up counter N for checking the number of execution steps of the virus simulation program is initialized (S120).

그리고, 상술한 바이러스 모의 프로그램을 한 스텝씩 실행시키면서 업카운터를 하나씩 카운트한다(S130)(S140).Then, the up counters are counted one by one while executing the above-described virus simulation program step by step (S130) (S140).

상술한 바와 같이 모의 프로그램을 한 스텝씩 실행시키면서 카운트된 업카운터(N)의 값이 미리 설정된 값(Nc)보다 큰지를 판단(S150)한다.As described above, it is determined whether the value of the counted up counter N is greater than the preset value Nc while executing the simulation program step by step (S150).

판단 결과 업카운터(N) 값이 미리 설정된 값(Nc)보다 작은 경우는 상술한 과정(S130)부터 재수행하고, 업카운터(N) 값이 미리 설정된 값(Nc)보다 큰 경우 다형성 바이러스 본체라 판단하여 진단 패턴을 검색하기 시작한다(S160).As a result of the determination, when the upcounter N value is smaller than the preset value Nc, the process is performed again from the above-described process (S130), and when the upcounter N value is larger than the preset value Nc, it is determined as a polymorphic virus body. The search for the diagnostic pattern is started (S160).

이때, 상술한 미리 설정된 값(Nc)은 암호화된 바이러스를 해제하는데 필요한 반복 회수와 경험적 통계치에 근거한 암호화 해제구간의 스텝수를 곱해서 산출되는 총 스텝수보다 크거나 같도록 결정된다.At this time, the above-described preset value Nc is determined to be greater than or equal to the total number of steps calculated by multiplying the number of repetitions required to release the encrypted virus and the number of steps of the decryption section based on empirical statistics.

그러나, 상술한 종래의 다형성 바이러스를 진단하는 방법은 암호화된 바이러스의 본체를 판단하기 위해 미리 설정된 값(Nc)을 늘리게 되면 처리속도가 늦어지고, 미리 설정된 값(Nc)이 줄이면 바이러스 본체가 제대로 나타나지 않아 진단을 할 수 없다는 문제점이 있었다.However, in the aforementioned method for diagnosing a polymorphic virus, when the preset value Nc is increased in order to determine the body of the encrypted virus, the processing speed becomes slow, and when the preset value Nc decreases, the virus body appears properly. There was a problem that can not be diagnosed.

또한, 정상파일인 경우도 미리 설정된 값(Nc)만큼 모의 실행해야 하기 때문에 백신 전체 처리 속도가 떨어진다는 문제점이 있었다.In addition, even in the case of a normal file, since the simulation should be performed by a predetermined value (Nc), there was a problem that the overall processing speed of the vaccine was reduced.

본 발명의 목적은 전술한 문제점을 해결할 수 있도록 모의 실행 중 반복적으로 이루어지는 소정의 규칙을 이용하여 하드디스크 또는 플로피디스크에 저장된 파일을 감염시킨 바이러스가 다형성 바이러스임을 진단하는 다형성 바이러스 진단시스템 및 그 방법을 제공하는데 있다.An object of the present invention is to provide a polymorphic virus diagnosis system and method for diagnosing that a virus infecting a file stored on a hard disk or a floppy disk is a polymorphic virus using predetermined rules repeatedly executed during simulation to solve the above problems. To provide.

도 1은 종래의 일반적인 다형성 바이러스 진단 방법의 개략적 순서도이다.1 is a schematic flowchart of a conventional method for diagnosing a general polymorphic virus.

도 2는 본 발명에 따른 다형성 바이러스 진단 시스템의 구성을 개념적으로 설명하기 위한 블록도이다.도 3은 본 발명에 따른 다형성 바이러스 진단 방법의 개략적 순서도이다.Figure 2 is a block diagram for conceptually explaining the configuration of a polymorphic virus diagnostic system according to the present invention. Figure 3 is a schematic flowchart of a polymorphic virus diagnostic method according to the present invention.

* 도면의 주요부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

100 : 진단영역100: diagnosis area

110 : 다형성 바이러스 진단 모듈110: polymorphic virus diagnostic module

이러한 목적을 달성하기 위한 본 발명의 장치는, 적어도 하나 이상의 파일을 가지고 있는 진단 영역과, 사용자의 모의 실행 요청에 따라 진단 영역에 저장된 파일을 읽어들이고, 읽어들인 파일을 모의 실행 프로그램에 적용시켜 다형성 바이러스에 감염되었는지를 진단하는 다형성 바이러스 진단모듈을 포함한다.The apparatus of the present invention for achieving the above object is a polymorphism by reading a file stored in the diagnostic area in accordance with a diagnostic area having at least one file and a user's simulation execution request, and applying the read file to the simulation execution program It includes a polymorphic virus diagnostic module for diagnosing the virus.

상술한 목적을 달성하기 위한 본 발명의 방법은, (1) 사용자의 모의 실행 요청신호가 입력되는지를 판단하는 과정과, (2) 사용자에 의해 모의 실행 요청신호가 입력되는 경우, 제 1 업카운터, 제 2 업카운터 및 제 3 업카운터를 초기화시키는 과정과, (3) 초기화 과정을 수행한 후 진단 영역으로부터 읽어들인 파일에 제 1 실행코드가 존재하는지를 판단하는 과정과, (4) 제 1 실행코드가 존재하는 경우 제 1 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복하는 경우 제 1 업카운터를 카운트하는 과정과, (5) 제 1 실행코드가 존재하지 않거나, 또는 제 1 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 2 실행코드가 존재하는지를 판단하는 과정과, (6) 진단영역으로부터 읽어들인 파일에 제 2 실행코드가 존재하는 경우, 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하는 과정과, (7) 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복되는 경우 제 2 업카운터를 카운트하는 과정과, (8) 제 1 업카운터에 의해 누적된 값이 제 2 업카운터에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 일정 값이 존재하는지를 판단하는 과정과, (9) 일정 값이 존재하는 경우, 제 1 업카운터 또는 제 2 업카운터에 의해 업카운트된 값이 일정횟수보다 크거나, 또는 반복이 종료되었는지를 판단하는 과정과, (10) 상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정횟수보다 크거나, 또는 반복이 종료된 경우 진단영역으로부터 읽어들인 파일이 암호화되었다고 판단하는 과정과, (11) 제 2 실행코드가 존재하지 않거나, 또는 제 2 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 또는 상기 일정 값이 존재하지 않는 경우 제 3 업카운터를 카운트하는과정과, (12) 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰지를 판단하는 과정과, (13) 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰 경우 그에 해당되는 메시지를 출력하는 과정으로 이루어진다.The method of the present invention for achieving the above object, (1) the process of determining whether the simulation execution request signal of the user is input, and (2) when the simulation execution request signal is input by the user, the first up counter Initializing the second up counter and the third up counter; (3) determining whether the first executable code exists in a file read from the diagnostic area after performing the initialization process; and (4) the first execution. If the code exists, determining whether the specific address in which the first execution code is located is repeatedly executed; counting the first up counter when repeating; and (5) the first execution code does not exist or the first execution code exists. Determining whether the second executable code exists if the specific address where is located is not repeatedly executed, and (6) if the second executable code exists in the file read from the diagnostic area, the second executable code is executed. Determining whether the specific address located is repeatedly executed; (7) determining whether the specific address where the second execution code is located is repeatedly executed; counting the second up counter if repeated; Determining whether the value accumulated by the counter coincides with the value calculated by multiplying the value accumulated by the second up counter by a predetermined value, and determining whether the predetermined value exists, and (9) when the predetermined value exists, Determining whether the value up-counted by the first up counter or the second up counter is greater than a predetermined number of times, or the repetition is completed; and (10) the up-up counter by the first up counter or the second up counter. If the value is greater than a certain number of times, or if the repetition ends, determining that the file read from the diagnostic area is encrypted, and (11) the second executable code does not exist or the second executable code Counting a third up counter when a specific address is not repeatedly executed or when the predetermined value does not exist; (12) determining whether a value counted by the third up counter is greater than a specified number of times; (13) If the value counted by the third up counter is greater than the specified number of times, a message corresponding to the third up counter is output.

이하, 첨부된 도면을 참조하여 본 발명의 다형성 바이러스 진단 시스템을 상세히 설명한다.Hereinafter, a polymorphic virus diagnostic system of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 다형성 바이러스 진단시스템의 구성을 개념적으로 설명하기 위한 블록도이다.Figure 2 is a block diagram for conceptually explaining the configuration of a polymorphic virus diagnostic system according to the present invention.

도시된 바와 같이, 진단영역(100)은 적어도 하나 이상의 파일을 가진다.As shown, the diagnostic area 100 has at least one file.

다형성 바이러스 진단모듈(110)은 사용자의 모의 실행 요청에 따라 진단 영역(100)에 저장된 파일을 읽어들이고, 읽어들인 파일을 모의 실행 프로그램에 적용시켜 다형성 바이러스에 감염되었는지를 진단한다.The polymorphic virus diagnosis module 110 reads a file stored in the diagnosis area 100 according to a user's simulation execution request and applies the read file to a simulation execution program to diagnose whether the polymorphic virus is infected.

상술한 다형성 바이러스 진단 모듈(110)에 적용된 모의 실행 프로그램은, 사용자의 모의 실행 요청에 따라 진단 영역(100)으로부터 읽어들인 파일을 모의 실행하면서 제 1 실행코드가 존재하는지를 판단하고, 제 1 실행코드가 존재하고 제 1 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복 실행되는 경우 제 1 업카운터를 카운트하고, 제 1 실행코드가 존재하지 않거나, 또는 제 1 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 2 실행코드가 존재하는지를 판단하고, 제 2 실행코드가 존재하고 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복 실행되는 경우 제 2 업카운터를 카운트하고, 제 1 업카운터에 의해 누적된 값이 제 2 업카운터에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 산출된 값이 일치하는 경우, 제 1 업카운터, 제 2 업카운터에 의해 카운트된 값이 일정횟수보다 크거나 반복이 종료된 경우 진단 영역으로부터 읽어들인 파일이 암호화되었다고 판단하고, 제 2 실행코드가 존재하지 않거나, 또는 제 2 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 3 업카운터를 카운트하고, 제 3 업카운터를 카운트한 값이 지정회수보다 큰지를 판단하며, 제 3 업카운트된 값이 지정회수보다 큰 경우 그에 해당하는 메시지를 출력한 후 종료함으로써, 주어진 파일이 다형성 바이러스에 감염되었는지를 판단한다.The mock execution program applied to the polymorphic virus diagnosis module 110 described above determines whether the first executable code exists while simulating a file read from the diagnostic area 100 according to a user's mock execution request, and then executes the first executable code. Is repeated and it is determined that the specific address in which the first execution code is located is repeatedly executed, the first up counter is counted, and the first execution code does not exist or the specific address in which the first execution code is located is repeated. If it is not executed, it is determined whether the second execution code exists, and if it is repeatedly executed by determining whether the second execution code exists and the specific address where the second execution code is located is repeatedly executed, the second up counter is counted. It is determined whether the value accumulated by the up counter matches the value calculated by multiplying the value accumulated by the second up counter by a predetermined value. If the calculated values match, the value counted by the first up counter or the second up counter is greater than a certain number of times, or when the repetition is terminated, the file read from the diagnostic area is determined to be encrypted. Is not present or the specific address where the second execution code is located is not repeatedly executed, counting the third up counter, determining whether the value of counting the third up counter is greater than the specified number of times, If the value is larger than the specified number of times, the message is output and then terminated to determine whether the given file is infected with the polymorphic virus.

상술한 제 1 실행코드는, 특정 주소의 내용을 변경시키는 명령을 의미하는데 바이러스가 암호해제를 하려고 할 때 반드시 사용하는 명령이다. 구체적으로 MOVE, STORE등의 이동저장 명령과 ADD, SUB, DIV, MUL등의 산술연산명령, OR, AND, NOT, XOR등의 논리연산명령, SHR, SHL, ROR, ROL 등의 Shift, Rotate명령, PUSH, POP, CALL, RET등의 스택(Stack)조작 또는 스택변경 명령으로 특정주소의 내용을 바꾸는 명령이다.The first executable code described above refers to a command for changing the contents of a specific address, which is necessarily used when the virus attempts to decrypt the virus. Specifically, move save instruction such as MOVE, STORE, arithmetic operation instruction such as ADD, SUB, DIV, MUL, logical operation instruction such as OR, AND, NOT, XOR, Shift, Rotate instruction such as SHR, SHL, ROR, ROL, etc. It is a command to change the contents of a specific address by stack manipulation or stack change instruction such as, PUSH, POP, CALL, RET.

몇가지 예를 들면,Some examples are

MOV [1234],Reg ; 1234주소의 위치에 Reg값을 저장한다.MOV [1234], Reg; Store the Reg value at the address 1234.

SUB [Addr],Reg ; Addr주소의 내용에서 Reg값을 감한다.SUB [Addr], Reg; Subtract the Reg value from the contents of the Addr address.

SHR [Addr],1 ; Addr주소의 값을 오른쪽으로 1비트 쉬프트한다.SHR [Addr], 1; Shift the value of the Addr address 1 bit to the right.

PUSH Reg ; Reg값을 내정된 스택에 PUSH한다. 스택 또한 특정주소에 유지되고 있는 구조이므로 특정주소의 내용을 변경한다고 볼 수 있다.PUSH Reg; Push the Reg value to the default stack. The stack is also a structure maintained at a specific address, so it can be said to change the contents of a specific address.

AND [Addr], Reg ; Addr주소의 내용과 Reg값을 AND한 결과를 Addr주소에 저장한다.AND [Addr], Reg; The result of ANDing the contents of the Addr address and the Reg value is stored in the Addr address.

여기서 Addr과 Reg은 상수 또는 레지스터일 수 있으며 상술한 명령은 Intel사의 80x86계열의 프로세서를 기반으로 설명하였으나 다른 프로세서에서도 거의 유사한 명령군를 가지고 있으므로 일반화가 가능하다. 다시 말해서 주어진 연산결과로 인해 특정주소의 내용이 변경된다면 그 연산명령을 제 1 실행코드라고 명한다.Here, Addr and Reg may be constants or registers. The above-described instructions are described based on Intel's 80x86 series of processors, but other processors have almost the same instruction group, so generalization is possible. In other words, if the contents of a specific address change due to a given operation result, the operation instruction is called the first executable code.

바이러스 제작자가 고의적으로 백신의 진단을 피하기 위해 복잡하게 구성하기도하나, 다형성 바이러스라면 제1실행코드를 반드시 1개 이상 가지고 있다.While virus writers may deliberately complicate the design to avoid the diagnosis of a vaccine, a polymorphic virus must have at least one first executable code.

상술한 제 2 실행코드는 조건 분기 명령을 의미한다. 마이크로프로세서의 제어명령에는 지정된 주소로 무조건 분기하는 무조건분기명령과 바로 직전의 연산 결과에 따라 분기하는 조건 분기명령이 있다. 여기에는 LOOP명령과 같은 반복명령도 포함된다. 연산결과는 플래그 레지스터에 비트 단위로 반영되는데, 조건분기명령은 이 비트값을 보고 주어진 주소로 분기하거나 분기하지 않는다.The second execution code described above means a conditional branch instruction. The control instructions of the microprocessor include an unconditional branch instruction that unconditionally branches to a specified address and a conditional branch instruction that branches according to the result of the immediately preceding operation. This includes repeating commands such as the LOOP command. The result of the operation is reflected bit by bit in the flag register. The conditional branch instruction does not branch or branch to the given address based on this bit value.

또한, 다형성 바이러스가 자기자신의 암호해제를 위해서는 제 1 실행코드를 반복동작 해야하는데, 바이러스의 크기만큼을 해제해야하므로 어떤 조건이 만족될 때까지 분기명령을 수행하는 제 2 실행코드를 반드시 사용할 수밖에 없다.In addition, the polymorphic virus must repeatedly execute the first executable code in order to decrypt itself. Since the virus must be released as much as the size of the virus, the second executable code that executes the branch instruction must be used until a condition is satisfied. none.

상술한 상기 일정회수(Nk)는, 다형성 바이러스를 진단하기 위해 보유하고 있는 패턴 중 최대 크기를 가진 패턴의 크기보다 큰 값을 가지도록 설정된다. 바꾸어 말하면 다형성 바이러스 검사를 위해 암호해제가 필요한 구간의 크기보다 크거나 같도록 설정되어야 한다.The predetermined number of times Nk described above is set to have a value larger than the size of the pattern having the maximum size among the patterns held for diagnosing the polymorphic virus. In other words, it should be set to be greater than or equal to the size of the interval for which decryption is required for polymorphic virus testing.

한편, 지정회수(Nc')는, 주어진 파일의 모의실행이 시작하고 나서 제 1 실행코드나 제 2 실행코드가 최초로 등장하기까지 경험적 통계치에 근거한 예상 스텝 수보다 크거나 같도록 설정한다.On the other hand, the designated number Nc 'is set to be greater than or equal to the expected number of steps based on empirical statistics from the start of the simulation execution of the given file until the first execution code or the second execution code first appears.

다음에는, 이와 같이 구성된 본 발명에 따른 다형성 바이러스 진단 시스템에서 수행되는 그 진단 방법에 대하여 도 3을 참조하여 구체적으로 설명한다.Next, the diagnostic method performed in the polymorphic virus diagnosis system according to the present invention configured as described above will be described in detail with reference to FIG. 3.

우선, 다형성 바이러스 진단모듈(110)은 사용자의 모의 실행 요청신호가 입력되는지를 판단한다(S310). 판단 결과 사용자에 의해 모의 실행 요청신호가 입력되는 경우 제 1 업카운터(n1), 제 2 업카운터(n2) 및 제 3 업카운터(n3)를 초기화시킨다(S315).First, the polymorphic virus diagnosis module 110 determines whether a user's simulation execution request signal is input (S310). When the simulation execution request signal is input by the user as a result of the determination, the first up counter n1, the second up counter n2, and the third up counter n3 are initialized (S315).

그리고, 상술한 초기화 과정(S315)을 수행한 후, 상술한 진단 영역(100)으로부터 하나의 파일을 읽어들이고 나서 다형성 바이러스 진단 모듈(110)은 자체에 내장한 모의실행 프로그램으로 해당 파일을 한 스텝씩 실행한다(S320).Then, after performing the above-described initialization process (S315), after reading one file from the above-described diagnosis region 100, the polymorphic virus diagnostic module 110 performs a step of copying the file with a simulation program embedded therein. Each step (S320).

해당 스텝에 제 1 실행코드가 존재하는지를 판단한다(S325).It is determined whether the first executable code exists in the step (S325).

만약, 해당 스텝에 제 1 실행코드가 존재하는 경우, 제 1 실행코드가 위치한 특정주소가 반복실행돠는지를 판단하고(S330), 반복 실행되는 특정주소가 존재하는 경우 제 1 업카운터(n1)를 카운트한다(S335).If the first execution code exists in the step, it is determined whether the specific address in which the first execution code is located is repeatedly executed (S330), and if the specific address is repeatedly executed, the first up counter n1 is present. It is counted (S335).

한편, 읽어들인 파일에 제 1 실행코드가 존재하지 않거나, 또는 제 1 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 2 실행코드가 존재하는지를 판단한다(S340).On the other hand, if the first executable code does not exist in the read file or if the specific address in which the first executable code is located is not repeatedly executed, it is determined whether the second executable code exists (S340).

만약, 진단영역(100)으로부터 읽어들인 파일에 제 2 실행코드가 존재하는 경우, 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단한다(S345).If the second executable code exists in the file read from the diagnosis area 100, it is determined whether the specific address where the second executable code is located is repeatedly executed (S345).

판단 결과, 제 2 실행코드가 위치한 특정주소가 반복 실행되는 경우 제 2 업카운터(n2)를 카운트한다(S350).As a result of determination, when the specific address where the second execution code is located is repeatedly executed, the second up counter n2 is counted (S350).

그리고, 상술한 제 1 업카운터(n1)에 의해 누적된 값이 제 2 업카운터(n2)에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 그 때 일정 값(상수 k)이 존재하는지를 판단한다(S355).Then, it is determined whether the value accumulated by the first up counter n1 is equal to the value calculated by multiplying the value accumulated by the second up counter n2 with a predetermined value, and then a constant value (constant k It is determined whether there is a (S355).

바꾸어 말하면 제 1 업카운터(n1)와 제 2 업카운터(n2)의 증가가 동시에 이루어지면서 두개 카운터 값 상호간에 비례관계가 성립된다면 다형성 바이러스가 암호해제를 시도한다고 볼 수 있으므로 상술한 일정값(k)의 존재를 판단한다.In other words, if the first up counter n1 and the second up counter n2 increase at the same time and a proportional relationship is established between the two counter values, the polymorphic virus attempts to decrypt the predetermined value (k). ) To determine the existence.

만약, 상술한 과정(S355)에서 일정 값(k)이 존재하는 경우, 상술한 제 1 업카운터(n1), 제 2 업카운터(n2)에 의해 업카운트된 값이 일정회수(Nk)보다 크거나, 또는 반복이 종료되었는지를 판단한다(S360).If the predetermined value k exists in the above-described process (S355), the above counted up value by the first up counter n1 and the second up counter n2 is greater than the predetermined number Nk. Or, it is determined whether the repetition is finished (S360).

상술한 S360 과정의 판단 결과, 그렇지 않은 경우 한스텝씩 모의 실행하는 과정(S320)부터 다시 수행한다. 상술한 S360 과정이 계속 실행된다면 일정회수(Nk)만큼 바이러스 진단영역이 암호 해제된다고 볼 수 있다.As a result of the determination of the above-described step S360, if not, the process is performed again from the step S320 of performing the simulation step by step. If the above-described process S360 continues to be executed, the virus diagnosis region may be decoded by a predetermined number Nk.

한편, 상술한 S360의 판단 결과, 상술한 제 1 업카운터(n1), 제 2 업카운터(n2)에 의해 업카운트된 값이 일정회수(Nk)보다 크거나, 또는 반복이 종료된 경우 진단영역(100)으로부터 읽어들인 파일의 모의실행결과 암호해제가 일부 이루어졌다고 보고 다형성 바이러스 감염여부를 진단(S365)하고, '바이러스 검사 결과 이 파일은 다형성 바이러스에 감염되었습니다'와 같은 메시지를 사용자에게 출력한다.On the other hand, as a result of the determination of S360 described above, when the value up counted by the first up counter n1 and the second up counter n2 is greater than a predetermined number Nk, or when the repetition is completed, the diagnostic area. It is reported that the decryption is partially performed as a result of simulation execution of the file read from (100), and the polymorphic virus infection is diagnosed (S365), and a message such as 'The virus file is infected with the polymorphic virus' is output to the user. .

한편, 상술한 과정(S340)에서 제 2 실행코드가 존재하지 않거나, 또는 상술한 과정(S345)에서 제 2 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우, 또는 상술한 과정(S355)에서 일정 값(k)이 존재하지 않는 경우, 제 3 업카운터(n3)를 카운트한다(S370).On the other hand, if the second execution code does not exist in the above-described process (S340), or if the specific address where the second execution code is located in the above-mentioned process (S345) is not repeatedly executed, or in the above-described process (S355) If the value k does not exist, the third up counter n3 is counted (S370).

그리고, 상술한 제 3 업카운터(n3)에 의해 카운트된 값이 지정회수(Nc')보다 큰지를 판단한다(S375).Then, it is determined whether the value counted by the third up counter n3 described above is greater than the designated number Nc '(S375).

판단 결과, 상술한 제 3 업카운터(n3)에 의해 카운트된 값이 지정회수(Nc')보다 큰 경우 '바이러스 검사 결과 이 파일에서는 다형성 바이러스가 발견되지 않았습니다'와 같은 메시지를 사용자에게 출력한 후 종료한다. 그렇지 않은 경우 한스텝씩 모의 실행하는 과정(S320)부터 다시 수행한다.As a result of determination, when the value counted by the third up counter n3 is larger than the designated number Nc, a message such as 'A virus scan result does not find a polymorphic virus in this file' is output to the user. Quit. Otherwise, the process is performed again from the step S320 of performing the simulation step by step.

상술한 바와 같이, 본 발명은 지정회수(Nc)를 결정할 때 암호화된 바이러스를 해제하는데 필요한 반복 회수 및 경험적 통계치에 근거하는 암호화 해제구간의 스텝수를 곱해서 결정하는 종래 기술과는 달리, 지정회수(Nc')를 제 1 실행코드나 제 2 실행코드가 등장할 때까지의 경험적 통계치에 근거한 예상스텝수로 설정한다.As described above, the present invention differs from the prior art in which the number of times of decryption is determined by multiplying the number of steps of decryption based on empirical statistics and the number of iterations necessary to release the encrypted virus when determining the number of designated times Nc. Nc ') is set to the expected number of steps based on empirical statistics until the first execution code or the second execution code appears.

한편, 종래의 지정회수(Nc)를 결정하기 위한 암호화된 바이러스를 해제하는데 필요한 반복 회수 및 암호화 해제구간의 스텝수는 경험적 통계치에 근거함과 동시에 상술한 두수를 곱하게 되므로 그 결정범위가 매우 크기 때문에, 상술한 지정회수(Nc)를 결정하기가 어렵고, 최악의 경우 다형성 바이러스내의 암호가 완전히 해제될 때까지의 스텝수로 설정될 수도 있다.On the other hand, the number of steps of the repetition count and the decryption interval required for releasing the encrypted virus for determining the conventional designated number Nc is multiplied by the above two numbers based on empirical statistics, and thus the determination range is very large. Therefore, it is difficult to determine the designated number Nc described above, and in the worst case, it may be set to the number of steps until the encryption in the polymorphic virus is completely released.

그러므로 본 발명은 바이러스 제작자들이 이러한 기술이 사용된 백신의 약점을 이용 고의적으로 스텝수를 늘려 진단하지 못하도록 만든 바이러스가 속출하고 있는 실정을 해결하고자 하는 것으로서, 주어진 파일의 시작에서부터 제 1 실행코드나 제 2 실행코드가 등장할 때까지의 예상 스텝수만 가지고 지정회수(Nc')를 결정하므로 종래의 지정회수(Nc)보다 훨씬 작게 설정할 수 있다.Therefore, the present invention is intended to solve the situation of viruses, which prevent virus producers from deliberately increasing the number of steps by using the weaknesses of vaccines in which these techniques are used. 2 Since the designated number Nc 'is determined only by the expected number of steps until the execution code appears, the number of times can be set much smaller than that of the conventional designated number Nc.

그러므로, 본 발명이 적용될 경우 소정의 파일이 다형성 바이러스에 감염되었는지의 여부를 진단하는데 소요되는 시간은 종래 기술에 비해 매우 단축된다.Therefore, when the present invention is applied, the time required for diagnosing whether or not a predetermined file is infected with a polymorphic virus is greatly shortened compared with the prior art.

즉, 실제 구현결과 종래의 기술에서 지정회수(Nc)는 10000 ∼ 200000부근에서 결정되며 본 발명에서의 지정회수(Nc')는 2000 ∼ 4000부근에서 결정되는 것으로 나타났다.In other words, the actual number of times specified in the prior art (Nc) is determined in the vicinity of 10000 ~ 200000, and the specified number of times (Nc ') in the present invention was determined to be determined in the vicinity of 2000 ~ 4000.

따라서, 본 발명은 소정의 파일을 모의 실행할 때 제 1 실행코드나 제 2 실행코드가 등장하지 않으면, 즉 다시 말해 암호를 해제하려는 시도가 두 번 이상 나타나지 않으면 작게 설정된 지정회수(Nc')로 인해 모의실행을 중단하므로 다형성 바이러스에 걸리지 않은 정상적인 파일인 경우 진단속도가 매우 빠르다는 효과를 제공한다.Therefore, the present invention is due to a small number of designated times Nc 'that are small when the first executable code or the second executable code does not appear when mocking a given file, that is, if the attempt to decrypt the password does not appear more than once. Because the simulation is stopped, the diagnosis speed is very fast in case of the normal file which is not caught by the polymorphic virus.

또한, 본 발명은 제 1 실행코드나 제 2 실행코드가 한번이상 등장하면 제 1 실행코드나 제 2 실행코드의 등장회수, 즉 상술한 제 1 업카운터(n1), 제 2 업카운터(n2)에 의해 업카운트된 값과 일정회수(Nk)를 비교하기 시작하므로 아무리 고의적으로 스텝수를 늘려놓은 바이러스일지라도 필요한 일정회수(Nk)만큼의 암호해제구간을 보장받을 수 있다는 효과를 제공한다.Also, in the present invention, when the first executable code or the second executable code appears more than once, the number of occurrences of the first executable code or the second executable code, that is, the first up counter n1 and the second up counter n2 described above. Since it starts comparing the upcounted value with the predetermined number of times (Nk), even if the virus intentionally increases the number of steps, it provides the effect that the decryption interval of the required number of times (Nk) can be guaranteed.

여기에서, 상술한 본 발명에서는 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경할 수 있음을 이해할 수 있을 것이다.Herein, while the present invention has been described with reference to the preferred embodiments, those skilled in the art will variously modify the present invention without departing from the spirit and scope of the invention as set forth in the claims below. And can be changed.

Claims (9)

적어도 하나 이상의 파일을 저장하고 있는 진단 영역;A diagnostic area for storing at least one file; 사용자의 모의 실행 요청에 따라 진단 영역에 저장된 파일을 읽어들이고, 읽어들인 파일을 모의 실행 프로그램에 적용시켜 다형성 바이러스에 감염되었는지를 진단하는 다형성 바이러스 진단모듈;을 포함하여 이루어져,A polymorphic virus diagnostic module for diagnosing whether a polymorphic virus is infected by reading a file stored in a diagnostic area according to a user's simulation execution request and applying the read file to a mock execution program. 상기 진단 모듈은 제 1 실행코드가 존재하는지를 체크하고, 제 1 실행코드의 반복 회수를 측정하며, 또한 제 2 실행코드가 존재하는지를 체크하고, 제 2 실행코드의 반복 회수를 측정함으로써 다형성 바이러스 감염 여부를 진단하는 것을 특징으로 하는 바이러스 진단 시스템. The diagnostic module checks whether the first executable code exists, measures the repetition number of the first executable code, checks whether the second executable code exists, and measures the repetition number of the second executable code. Virus diagnosis system, characterized in that for diagnosing the virus . 삭제delete 삭제delete 제 1 항에 있어서, 상기 다형성 바이러스 진단 모듈에 적용된 모의 실행 프로그램은,The method of claim 1, wherein the mock executable program applied to the polymorphic virus diagnostic module, 상기 사용자의 모의 실행 요청신호가 입력되는지를 판단하고,It is determined whether the simulation execution request signal of the user is input, 상기 사용자에 의해 모의 실행 요청신호가 입력되는 경우, 제 1 업카운터, 제 2 업카운터 및 제 3 업카운터를 초기화시키고,When the simulation execution request signal is input by the user, the first up counter, the second up counter, and the third up counter are initialized. 상기 초기화 과정을 수행한 후 진단 영역으로부터 읽어들인 파일을 한 스텝씩 모의실행하고 제 1 실행코드가 존재하는지를 판단하고,After performing the initialization process, the file read out from the diagnostic area is simulated step by step, and it is determined whether the first executable code exists. 상기 제 1 실행코드가 존재하는 경우 제 1 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복하는 경우 제 1 업카운터를 카운트하고,If the first execution code exists, it is determined whether the specific address in which the first execution code is located is repeatedly executed, and if it is repeated, the first up counter is counted. 상기 제 1 실행코드가 존재하지 않거나, 제 1 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 2 실행코드가 존재하는지를 판단하고,If the first executable code does not exist or if the specific address where the first executable code is located is not repeatedly executed, it is determined whether the second executable code exists. 상기 진단영역으로부터 읽어들인 파일에 제 2 실행코드가 존재하는 경우, 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하고,When the second executable code exists in the file read from the diagnostic area, it is determined whether the specific address where the second executable code is located is repeatedly executed, 상기 제 2 실행코드가 위치한 특정주소가 반복 실행되는 경우 제 2 업카운터를 카운트하고,Counting the second up counter when the specific address in which the second execution code is located is repeatedly executed; 상기 제 1 업카운터에 의해 누적된 값이 제 2 업카운터에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 상기 일정 값이 존재하는지를 판단하고,Determine whether the value accumulated by the first up counter matches the value calculated by multiplying the value accumulated by the second up counter by a predetermined value, and determining whether the predetermined value exists, 상기 일정 값이 존재하는 경우, 상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료되었는지를 판단하고,If the predetermined value exists, it is determined whether the value up counted by the first up counter or the second up counter is greater than a predetermined number of times, or the repetition is completed. 상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료된 경우 파일의 모의실행결과 암호해제가 일부 이루어졌다고 보고 다형성 바이러스 감염여부를 진단하고,Diagnosing whether a polymorphic virus is infected by reporting that the decryption of the file is partially performed as a result of the simulation execution of the file when the value up-counted by the first up counter or the second up counter is greater than a certain number of times, or when the repetition ends. 상기 제 2 실행코드가 존재하지 않거나, 또는 상기 제 2 실행코드가 위치한 특정주소가 반복 실행되지 않거나, 또는 상기 일정 값이 존재하지 않는 경우 제 3 업카운터를 카운트하고,If the second execution code does not exist, or if the specific address where the second execution code is located is not repeatedly executed, or if the predetermined value does not exist, a third up counter is counted; 상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰지를 판단하며,It is determined whether the value counted by the third up counter is greater than a predetermined number of times, 상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰 경우 그에 해당되는 메시지를 출력하는 것을 특징으로 하는 다형성 바이러스 진단시스템.And outputting a message corresponding to the value counted by the third up counter when the value counted by the third up counter is greater than a predetermined number of times. 제 4 항에 있어서, 상기 제 1 실행코드는, 상기 특정 주소의 내용을 변경시키는 명령을 의미하며, 제 2 실행코드는 조건부 분기 명령을 의미하는 것을 특징으로 하는 다형성 바이러스 진단 시스템.The polymorphic virus diagnosis according to claim 4, wherein the first execution code means an instruction for changing the content of the specific address, and the second execution code means a conditional branch instruction. system. 제 4 항에 있어서, 상기 일정회수는, 미리 설정된 진단용 바이러스 패턴의 최대 크기보다 크고, 미리 설정된 바이러스 검사 영역의 크기보다 크거나 같도록 설정되며,The method of claim 4, wherein the predetermined number of times is set to be greater than a maximum size of a preset diagnostic virus pattern, and greater than or equal to a size of a preset virus scan area. 상기 지정회수는, 제 1 실행코드나 제 2 실행코드가 등장 할까지의 경험적 통계치에 근거한 예상스텝수로 설정됨을 특징으로 하는 다형성 바이러스 진단 시스템.And the specified number of times is set to an expected number of steps based on empirical statistics until the first execution code or the second execution code appears. (1) 사용자의 모의 실행 요청신호가 입력되는지를 판단하는 과정;(1) determining whether a simulation execution request signal of the user is input; (2) 상기 사용자에 의해 모의 실행 요청신호가 입력되는 경우, 제 1 업카운터, 제 2 업카운터 및 제 3 업카운터를 초기화시키는 과정;(2) initializing a first up counter, a second up counter, and a third up counter when a simulation execution request signal is input by the user; (3) 상기 초기화 과정을 수행한 후 진단 영역으로부터 읽어들인 파일을 한 스텝씩 모의 실행하는 과정(3) A process of simulating and executing the file read from the diagnostic area step by step after performing the initialization process. (4) 한 스텝씩 모의 실행한 직후 그 주소에 제 1 실행코드가 존재하는지를 판단하는 과정;(4) determining whether the first executable code exists at the address immediately after the simulation step by step; (5) 상기 제 1 실행코드가 존재하는 경우, 제 1 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복하는 경우 제 1 업카운터를 카운트하는 과정;(5) if the first execution code exists, determining whether the specific address where the first execution code is located is repeatedly executed and counting the first up counter when repeating; (6) 상기 제 1 실행코드가 존재하지 않거나, 또는 제 1 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 2 실행코드가 존재하는지를 판단하는 과정;(6) determining whether the second executable code exists when the first executable code does not exist or when the specific address where the first executable code is located is not repeatedly executed; (7) 제 2 실행코드가 존재하는 경우, 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하는 과정;(7) if the second executable code exists, determining whether the specific address where the second executable code is located is repeatedly executed; (8) 상기 제 2 실행코드가 위치한 특정주소가 반복 실행되는 경우, 제 2 업카운터를 카운트하는 과정;(8) counting a second up counter when the specific address in which the second execution code is located is repeatedly executed; (9) 상기 제 1 업카운터에 의해 누적된 값이 제 2 업카운터에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 상기 일정 값이 존재하는지를 판단하는 과정;(9) determining whether the value accumulated by the first up counter matches the value calculated by multiplying the value accumulated by the second up counter by a predetermined value, and determining whether the predetermined value exists; (10) 상기 일정 값이 존재하는 경우,상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료되었는지를 판단하는과정;(10) if the predetermined value exists, determining whether the value up counted by the first up counter or the second up counter is greater than a predetermined number of times or the repetition is completed; (11) 상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료된 경우 파일의 모의실행결과 암호해제가 일부 이루어졌다고 보고 다형성 바이러스 감염여부를 진단하는 과정, 그렇지 않은 경우 (3)번부터 다시 수행하는 과정(11) Diagnosing polymorphic virus infection by reporting that the decryption of the file has been partially performed as a result of the simulation execution of the file when the value counted up by the first up counter or the second up counter is greater than a certain number of times, or the repetition is terminated. Process, if not, repeat process from (3) (12) 상기 제 2 실행코드가 존재하지 않거나, 또는 상기 제 2 실행코드가 위치한 특정주소가 반복 실행되지 않거나, 또는 상기 일정 값이 존재하지 않는 경우 제 3 업카운터를 카운트하는 과정;(12) counting a third up counter when the second execution code does not exist, or when the specific address where the second execution code is located is not repeatedly executed or the predetermined value does not exist; (13) 상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰지를 판단하는 과정; 및(13) determining whether the value counted by the third up counter is greater than a predetermined number of times; And (14) 상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰 경우 그에 해당되는 메시지를 출력하는 과정 및 그렇지 않은 경우 상기 과정(3)부터 다시 수행하는 과정으로 이루어짐을 특징으로 하는 다형성 바이러스 진단 방법.(14) polymorphic virus diagnosis comprising the step of outputting a message corresponding to the value counted by the third up counter greater than a specified number of times, and if not, performing the process again from step (3). Way. 제 7 항에 있어서, 상기 제 1 실행코드는, 상기 특정 주소의 내용을 변경시키는 명령을 의미하며, 제 2 실행코드는 조건부 분기 명령을 의미하는 것을 특징으로 하는 다형성 바이러스 진단방법.8. The method of claim 7, wherein the first execution code refers to an instruction for changing the content of the specific address, and the second execution code refers to a conditional branch instruction. 제 7 항에 있어서, 상기 일정회수는, 미리 설정된 진단용 바이러스 패턴의 최대 크기보다 크고, 미리 설정된 바이러스 검사 영역의 크기보다 크거나 같도록설정되며,The method of claim 7, wherein the predetermined number of times is set to be greater than a maximum size of a preset diagnostic virus pattern and greater than or equal to a size of a preset virus scan area. 상기 지정회수는, 미리 설정된 파일 실행 중 제 1 실행코드나 제 2 실행코드가 등장하기까지 예상 스텝수보다 크거나 같도록 설정됨을 특징으로 하는 다형성 바이러스 진단방법.The predetermined number of times, the polymorphism virus diagnostic method, characterized in that it is set to be greater than or equal to the expected number of steps until the first execution code or the second execution code appears during the execution of the preset file.
KR10-2000-0014332A 2000-03-21 2000-03-21 A polymorphic virus analysis system and a method thereof KR100367129B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0014332A KR100367129B1 (en) 2000-03-21 2000-03-21 A polymorphic virus analysis system and a method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0014332A KR100367129B1 (en) 2000-03-21 2000-03-21 A polymorphic virus analysis system and a method thereof

Publications (2)

Publication Number Publication Date
KR20010089062A KR20010089062A (en) 2001-09-29
KR100367129B1 true KR100367129B1 (en) 2003-01-09

Family

ID=19657203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0014332A KR100367129B1 (en) 2000-03-21 2000-03-21 A polymorphic virus analysis system and a method thereof

Country Status (1)

Country Link
KR (1) KR100367129B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101639675B1 (en) 2015-05-29 2016-07-14 주식회사 하우리 Polymorphic virus analysis system and method therof

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007022454A2 (en) 2005-08-18 2007-02-22 The Trustees Of Columbia University In The City Of New York Systems, methods, and media protecting a digital data processing device from attack
WO2007050667A2 (en) 2005-10-25 2007-05-03 The Trustees Of Columbia University In The City Of New York Methods, media and systems for detecting anomalous program executions
US8135994B2 (en) 2006-10-30 2012-03-13 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting an anomalous sequence of function calls
JP2014526751A (en) 2011-09-15 2014-10-06 ザ・トラスティーズ・オブ・コロンビア・ユニバーシティ・イン・ザ・シティ・オブ・ニューヨーク System, method, and non-transitory computer readable medium for detecting return oriented programming payload

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613002A (en) * 1994-11-21 1997-03-18 International Business Machines Corporation Generic disinfection of programs infected with a computer virus
US5765030A (en) * 1996-07-19 1998-06-09 Symantec Corp Processor emulator module having a variable pre-fetch queue size for program execution
US5826013A (en) * 1995-09-28 1998-10-20 Symantec Corporation Polymorphic virus detection module

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613002A (en) * 1994-11-21 1997-03-18 International Business Machines Corporation Generic disinfection of programs infected with a computer virus
US5826013A (en) * 1995-09-28 1998-10-20 Symantec Corporation Polymorphic virus detection module
US5765030A (en) * 1996-07-19 1998-06-09 Symantec Corp Processor emulator module having a variable pre-fetch queue size for program execution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101639675B1 (en) 2015-05-29 2016-07-14 주식회사 하우리 Polymorphic virus analysis system and method therof

Also Published As

Publication number Publication date
KR20010089062A (en) 2001-09-29

Similar Documents

Publication Publication Date Title
Pietraszek et al. Defending against injection attacks through context-sensitive string evaluation
Calzavara et al. HornDroid: Practical and sound static analysis of Android applications by SMT solving
Liang et al. Fast and automated generation of attack signatures: A basis for building self-protecting servers
EP3039608B1 (en) Hardware and software execution profiling
JP4950902B2 (en) Pre-emptive computer malware protection with dynamic translation
US7086088B2 (en) Preventing stack buffer overflow attacks
Chen et al. Ptrix: Efficient hardware-assisted fuzzing for cots binary
WO1998003916A1 (en) Pre-fetch queue emulation
EP3460703B1 (en) System and method of forming a log in a virtual machine for conducting an antivirus scan of a file
CN111382067A (en) Method and system for generating high-quality seeds in fuzzy test
Lanzi et al. A smart fuzzer for x86 executables
Proy et al. Studying EM pulse effects on superscalar microarchitectures at ISA level
KR100367129B1 (en) A polymorphic virus analysis system and a method thereof
Bognar et al. Mind the gap: Studying the insecurity of provably secure embedded trusted execution architectures
Claudepierre et al. TRAITOR: a low-cost evaluation platform for multifault injection
Wang et al. {FuzzJIT}:{Oracle-Enhanced} Fuzzing for {JavaScript} Engine {JIT} Compiler
US11093605B2 (en) Monitoring real-time processor instruction stream execution
Sun et al. AFLTurbo: Speed up path discovery for greybox fuzzing
EP3329377A1 (en) Zero overhead code coverage analysis
Chen et al. Trusting the trust anchor: towards detecting cross-layer vulnerabilities with hardware fuzzing
Ruospo et al. On the detection of always-on hardware trojans supported by a pre-silicon verification methodology
Xu et al. Framework for State-Aware Virtual Hardware Fuzzing
Hossain et al. TaintFuzzer: SoC Security Verification using Taint Inference-enabled Fuzzing
Gozzini PINvader: a dynamic analysis tool for evasive techniques detection and bypass in 64-bit windows binaries
Rodes et al. Speculative software modification and its use in securing SOUP

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee
R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20091221

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20101223

Year of fee payment: 9