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 KR20000014332A KR20000014332A KR100367129B1 KR 100367129 B1 KR100367129 B1 KR 100367129B1 KR 20000014332 A KR20000014332 A KR 20000014332A KR 20000014332 A KR20000014332 A KR 20000014332A KR 100367129 B1 KR100367129 B1 KR 100367129B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
up
counter
code
value
execution
Prior art date
Application number
KR20000014332A
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
Grant date

Links

Images

Abstract

PURPOSE: A system and method for diagnosing a polymorphic virus is provided to diagnose a virus which infected files being stored in a hard disk or a floppy disk as a polymorphic virus by using a predetermined rule being repeatedly performed during an emulated execution. CONSTITUTION: A polymorphic virus diagnosing module reads a file being stored in the diagnosing area in accordance with a user's emulated executing request, and applies the read file to an emulated executing program, and diagnoses whether the file is infected in a polymorphic virus. The emulated executing program executes(S310) the read file imitatively and decides whether the first executing code is or not. If there is the first executing code and a specific address located in the first executing code is repeatedly executed(S330), the first up-counter is counted(S335). If there is not the first executing code or a specific address located in the first executing code is not repeatedly executed, it is decided whether the second executing code is or not. If there is the second executing code(S340) and a specific address located in the second executing code is repeatedly executed(S345), the second up-counter is counted(S350). It is judged whether the accumulated value by the first up-counter is identified with a value calculated by multiplying the accumulated value by the second up-counter by a fixed value. If the values are identified and the value counted by the first up-counter and the second up-counter is more than a fixed number or the repetition is terminated, the read file is decided as a coded file. If there is not the second executing code or a specific address located in the second executing code is not repeatedly executed, the third up-counter is counted and it is decided whether the value counted by the third up-counter is more than a designated number. If the value counted by the third up-counter is more than a designated number, the corresponding message is outputted, and it is judged whether the file is infected by a polymorphic virus.

Description

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

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

보다 상세하게는 모의 실행 중 반복적으로 이루어지는 소정의 규칙을 이용하여 하드디스크 또는 플로피디스크에 저장된 파일을 감염시킨 바이러스가 다형성 바이러스임을 진단하는 다형성 바이러스 진단시스템 및 그 방법에 관한 것이다. More particularly, by using a predetermined rule composed of a simulation run of the repeatedly on the polymorphic virus diagnostic system and method for the virus infected files stored on the hard disk or floppy disk checking that the polymorphic virus.

일반적으로 컴퓨터 바이러스 제작자들은 자신이 만든 바이러스가 안티바이러스 프로그램(Anti-Virus Program, 이하 '백신'이라 칭함)들의 진단 방법을 회피하면서 감염되도록 여러 가지 기법들을 사용하고 있다. Typically, a computer virus writers are using various techniques such infection while avoiding the diagnosis of (referred to as Anti-Virus Program, the "vaccine") he created the virus anti-virus program.

컴퓨터 바이러스가 발견되던 초기에는 감염패턴이 일정한 바이러스들이 등장하다가 백신들이 쉽게 진단모듈을 만들어내기 시작하자, 이를 다시 암호화된 바이러스, 그리고 최근에는 암호화한 내용도 알아보기 힘들게 만든 다형성 바이러스가 컴퓨터 바이러스 제작자에 의해 생성되기 시작했다. The initial release of a computer virus is found, while the infection patterns emerge certain viruses Let vaccines are starting to easily make a diagnosis module, an encrypting it again with the virus, and most recently in Read also encrypts the contents hard to create a polymorphic virus is a computer virus creators by began to be produced.

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

첫째, 단순 바이러스로서, 상술한 단순 바이러스에 감염된 파일에 의해 다른 정상 파일이 감염되는 경우에도 동일한 패턴으로 감염되므로 백신들은 해당 바이러스가 가지는 고유한 패턴을 추출하여 이를 가지고 진단한다. First, as a simple viruses, since infection in the same patterns even when the other normal files infected by a file infected with the above-described simple virus are diagnosed to have it extract the unique pattern with the virus.

둘째, 암호화 바이러스(Encrypted Virus)로서, 상술한 암호화 바이러스는 단순 바이러스와 같이 패턴을 동일하게 유지하는 경우 백신이 쉽게 진단하게 되므로 바이러스 본체를 암호화하고 짧은 암호해제 코드가 먼저 실행되도록 제작된다. Second, as the encrypted virus (Encrypted Virus), the above-described encrypted virus is produced, so that the vaccine is easily diagnosed if the pattern remains the same as in the simple virus encoding the viral body and running the decryption code, first short.

그러므로 상술한 암호화 바이러스에 정상 파일이 감염될 때마다 바이러스 본체를 다른 값으로 암호화하여 백신이 일정한 패턴으로 진단하지 못하도록 한다. Therefore, each time a normal file infected with the aforementioned virus encryption unit encrypts the virus to a different value to prevent the vaccine is not diagnosed with a pattern.

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

셋째, 다형성 바이러스(Polymorphic Virus)로서, 다형성 바이러스는 진보된암호화 바이러스로서, 감염될 때마다 바이러스 본체를 바꾸는 것은 물론 암호해제코드 부분까지도 감염될 때마다 변경되도록 제작된다. Third, as a polymorphic virus (Polymorphic Virus), a polymorphic virus is designed to be changed as the advanced encryption virus, changing the virus body each time the infection as well as each time the infection until the decryption code portion. 따라서 패턴진단방법 한가지만을 이용하여서는 바이러스 진단이 이루어지지 않는 바이러스이다. Thus, a virus that does not use the virus diagnosis hayeoseoneun one thing pattern diagnosis made.

그러므로 상술한 바이러스를 진단하기 위해서는 백신에 모의실행모듈(Emulator)을 탑재하여 바이러스 자체의 암호해제코드를 모의 실행 후 나타난 바이러스 본체의 패턴을 진단함으로써 바이러스를 진단한다. Therefore, the diagnosis to diagnose the aforementioned virus diagnosis by the pattern of the then executed with the simulated execution module (Emulator) for vaccine simulate the decryption code of the virus itself, the virus appeared virus body.

상술한 종래의 일반적인 다형성 바이러스의 진단 기술을 첨부 도면 도 1을 참조하여 좀더 구체적으로 설명하면 다음과 같다. When referring to the drawings attached Figure 1 the diagnostic technique of the above-mentioned conventional common polymorphic viruses described in more detail.

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

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

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

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

판단 결과 업카운터(N) 값이 미리 설정된 값(Nc)보다 작은 경우는 상술한 과정(S130)부터 재수행하고, 업카운터(N) 값이 미리 설정된 값(Nc)보다 큰 경우 다형성 바이러스 본체라 판단하여 진단 패턴을 검색하기 시작한다(S160). If it is determined smaller than the up-counter (N) value has been previously set (Nc) are determined referred to when performing re from the process (S130) described above, the up counter (N) value is a predetermined value greater than the (Nc) polymorphic virus body and it begins to search for diagnostic pattern (S160).

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

그러나, 상술한 종래의 다형성 바이러스를 진단하는 방법은 암호화된 바이러스의 본체를 판단하기 위해 미리 설정된 값(Nc)을 늘리게 되면 처리속도가 늦어지고, 미리 설정된 값(Nc)이 줄이면 바이러스 본체가 제대로 나타나지 않아 진단을 할 수 없다는 문제점이 있었다. However, the method for diagnosing a conventional polymorphic virus above, if increased to a predetermined value (Nc) to determine the main body of an encrypted virus slowing the processing speed, a predetermined value (Nc) is a virus body not properly reducing because there is a problem it can not be diagnosed.

또한, 정상파일인 경우도 미리 설정된 값(Nc)만큼 모의 실행해야 하기 때문에 백신 전체 처리 속도가 떨어진다는 문제점이 있었다. Further, the entire processing speed falls vaccine because it must also be run by the simulated value (Nc) when the pre-set normal file, there is a problem.

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

도 1은 종래의 일반적인 다형성 바이러스 진단 방법의 개략적 순서도이다. 1 is a schematic flow diagram of a conventional diagnostic methods common polymorphic viruses.

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

* 도면의 주요부분에 대한 부호의 설명 * * Description of the Related Art *

100 : 진단영역 100: Diagnostic areas

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

이러한 목적을 달성하기 위한 본 발명의 장치는, 적어도 하나 이상의 파일을 가지고 있는 진단 영역과, 사용자의 모의 실행 요청에 따라 진단 영역에 저장된 파일을 읽어들이고, 읽어들인 파일을 모의 실행 프로그램에 적용시켜 다형성 바이러스에 감염되었는지를 진단하는 다형성 바이러스 진단모듈을 포함한다. Apparatus of the present invention to achieve this object, reads the file stored in the diagnosis region in accordance with the executed at least one file diagnosis field, a simulation of the user who has requested, by applying the files loaded in the simulation executing program polymorphism It includes a diagnostic module to diagnose whether a polymorphic virus infected with a virus.

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

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

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

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

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

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

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

몇가지 예를 들면, , For some examples,

MOV [1234],Reg ; MOV [1234], Reg; 1234주소의 위치에 Reg값을 저장한다. Reg stores the value in the position of the 1234 address.

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

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

PUSH Reg ; PUSH Reg; Reg값을 내정된 스택에 PUSH한다. PUSH Reg and the value of the intervention stack. 스택 또한 특정주소에 유지되고 있는 구조이므로 특정주소의 내용을 변경한다고 볼 수 있다. In addition, because the stack structure that is maintained in a specific address, you can see that changes the contents of a specific address.

AND [Addr], Reg ; AND [Addr], Reg; Addr주소의 내용과 Reg값을 AND한 결과를 Addr주소에 저장한다. And stores the result of the AND information and Reg value of Addr Address in the address Addr.

여기서 Addr과 Reg은 상수 또는 레지스터일 수 있으며 상술한 명령은 Intel사의 80x86계열의 프로세서를 기반으로 설명하였으나 다른 프로세서에서도 거의 유사한 명령군를 가지고 있으므로 일반화가 가능하다. Here, Addr and Reg is a can be a constant or a register and above command has been described based on the Intel's 80x86 family of processors can become common because it has almost the same instruction in another processor gunreul. 다시 말해서 주어진 연산결과로 인해 특정주소의 내용이 변경된다면 그 연산명령을 제 1 실행코드라고 명한다. In other words, if because of a given operation result changes the contents of the specific address and name that the operation instruction is the first execution code.

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

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

또한, 다형성 바이러스가 자기자신의 암호해제를 위해서는 제 1 실행코드를 반복동작 해야하는데, 바이러스의 크기만큼을 해제해야하므로 어떤 조건이 만족될 때까지 분기명령을 수행하는 제 2 실행코드를 반드시 사용할 수밖에 없다. In addition, polymorphic viruses forced to use your second executable code self to his need to repeat the operation for the first executable code to the decryption, so you must turn off the size of the virus that performs the branch instructions until some condition is met none.

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

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

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

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

그리고, 상술한 초기화 과정(S315)을 수행한 후, 상술한 진단 영역(100)으로부터 하나의 파일을 읽어들이고 나서 다형성 바이러스 진단 모듈(110)은 자체에 내장한 모의실행 프로그램으로 해당 파일을 한 스텝씩 실행한다(S320). And, performing the above-described initialization process (S315) and then, the one of the file read in the file, then the polymorphic virus diagnostic module 110 to execute the built-in self-simulation program from the diagnosis region 100 above the step executed by (S320).

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

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

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

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

판단 결과, 제 2 실행코드가 위치한 특정주소가 반복 실행되는 경우 제 2 업카운터(n2)를 카운트한다(S350). Judgment result, if the second run code has a specific address is executed repeatedly in and counts the second up counter (n2) (S350).

그리고, 상술한 제 1 업카운터(n1)에 의해 누적된 값이 제 2 업카운터(n2)에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 그 때 일정 값(상수 k)이 존재하는지를 판단한다(S355). And, determining whether matches the value obtained by multiplying a predetermined value to the value accumulated by the accumulated value of the second up counter (n2) by the above-described first up-counter (n1), and then the fixed value (constant k ) and it determines whether the present (S355).

바꾸어 말하면 제 1 업카운터(n1)와 제 2 업카운터(n2)의 증가가 동시에 이루어지면서 두개 카운터 값 상호간에 비례관계가 성립된다면 다형성 바이러스가 암호해제를 시도한다고 볼 수 있으므로 상술한 일정값(k)의 존재를 판단한다. In other words, the first up-counter (n1) and the second up counter (n2) a fixed value described above, so increasing the number seen as done As if the proportional relationship is established with each other two counter values ​​are polymorphic virus attempts to decrypt the same time of the (k ) and it determines the presence of.

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

상술한 S360 과정의 판단 결과, 그렇지 않은 경우 한스텝씩 모의 실행하는 과정(S320)부터 다시 수행한다. If it is determined, it is not of the above-described process S360 is performed from the step (S320) running Hans tepssik simulation again. 상술한 S360 과정이 계속 실행된다면 일정회수(Nk)만큼 바이러스 진단영역이 암호 해제된다고 볼 수 있다. If the above-described S360 process continues to run a certain number (Nk) it can be as long as the virus diagnosis region is seen that the release password.

한편, 상술한 S360의 판단 결과, 상술한 제 1 업카운터(n1), 제 2 업카운터(n2)에 의해 업카운트된 값이 일정회수(Nk)보다 크거나, 또는 반복이 종료된 경우 진단영역(100)으로부터 읽어들인 파일의 모의실행결과 암호해제가 일부 이루어졌다고 보고 다형성 바이러스 감염여부를 진단(S365)하고, '바이러스 검사 결과 이 파일은 다형성 바이러스에 감염되었습니다'와 같은 메시지를 사용자에게 출력한다. On the other hand, the judgment result, the aforementioned first up-counter (n1), in the case of 2 up-counter is counted up value by (n2) equal to or greater than the predetermined number (Nk), or repeating the end of diagnosis area of ​​the above-described S360 (100) mock execution result of the decryption part made jyeotdago reported diagnosis (S365) whether a polymorphic virus and the files are read from and outputs a message such as "results-virus checks the file has been infected by a polymorphic virus' users .

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

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

판단 결과, 상술한 제 3 업카운터(n3)에 의해 카운트된 값이 지정회수(Nc')보다 큰 경우 '바이러스 검사 결과 이 파일에서는 다형성 바이러스가 발견되지 않았습니다'와 같은 메시지를 사용자에게 출력한 후 종료한다. Determined that the above-described third after the value counted by the up-counter (n3), is greater than the specified number of times (Nc) 'virus check result is the file polymorphic virus is not detected output a message such as "the user terminated. 그렇지 않은 경우 한스텝씩 모의 실행하는 과정(S320)부터 다시 수행한다. Otherwise, perform from step (S320) to execute Hans tepssik simulation again.

상술한 바와 같이, 본 발명은 지정회수(Nc)를 결정할 때 암호화된 바이러스를 해제하는데 필요한 반복 회수 및 경험적 통계치에 근거하는 암호화 해제구간의 스텝수를 곱해서 결정하는 종래 기술과는 달리, 지정회수(Nc')를 제 1 실행코드나 제 2 실행코드가 등장할 때까지의 경험적 통계치에 근거한 예상스텝수로 설정한다. The present invention, unlike the prior art to determine by multiplying the specified number of steps of the decryption interval can be based on the repetition required to turn the encrypted virus recovery and empirical statistic to determine the (Nc), specified number of times, as described above ( Nc ') to be set to the expected number of steps based on empirical statistics until the first execution code or the second code execution appearance.

한편, 종래의 지정회수(Nc)를 결정하기 위한 암호화된 바이러스를 해제하는데 필요한 반복 회수 및 암호화 해제구간의 스텝수는 경험적 통계치에 근거함과 동시에 상술한 두수를 곱하게 되므로 그 결정범위가 매우 크기 때문에, 상술한 지정회수(Nc)를 결정하기가 어렵고, 최악의 경우 다형성 바이러스내의 암호가 완전히 해제될 때까지의 스텝수로 설정될 수도 있다. On the other hand, repeatedly necessary to turn the encrypted virus to determine the conventional designation of the number (Nc) number and step number of the decryption interval is so large that the determination range, so that the product the above-mentioned two numbers and at the same time based on empirical statistic Therefore, it is difficult to determine a number of times specified above (Nc), is the worst case, the password in a polymorphic virus may be set at the number of steps until it is completely released.

그러므로 본 발명은 바이러스 제작자들이 이러한 기술이 사용된 백신의 약점을 이용 고의적으로 스텝수를 늘려 진단하지 못하도록 만든 바이러스가 속출하고 있는 실정을 해결하고자 하는 것으로서, 주어진 파일의 시작에서부터 제 1 실행코드나 제 2 실행코드가 등장할 때까지의 예상 스텝수만 가지고 지정회수(Nc')를 결정하므로 종래의 지정회수(Nc)보다 훨씬 작게 설정할 수 있다. Therefore, the present invention is to address the situation that the virus producers virus made to prevent diagnosis by increasing the number of steps by using a weak point of the vaccine, these techniques used deliberately, one after another, a first execution code or the second from the beginning of the given file have only estimated step to the time the second execution code appeared determines specified number of times (Nc '), so can be set much smaller than the conventional designation of the number (Nc).

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

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

따라서, 본 발명은 소정의 파일을 모의 실행할 때 제 1 실행코드나 제 2 실행코드가 등장하지 않으면, 즉 다시 말해 암호를 해제하려는 시도가 두 번 이상 나타나지 않으면 작게 설정된 지정회수(Nc')로 인해 모의실행을 중단하므로 다형성 바이러스에 걸리지 않은 정상적인 파일인 경우 진단속도가 매우 빠르다는 효과를 제공한다. Accordingly, the invention is due to the first execution code or the second execution code does not appear, that is, in other words specifying an attempt is made to disable the password is set lower does not appear more than once recovered (Nc ') when running simulation a predetermined file If it stops the simulation is running, so the normal files that take a polymorphic virus to provide effective diagnostic speed is very fast.

또한, 본 발명은 제 1 실행코드나 제 2 실행코드가 한번이상 등장하면 제 1 실행코드나 제 2 실행코드의 등장회수, 즉 상술한 제 1 업카운터(n1), 제 2 업카운터(n2)에 의해 업카운트된 값과 일정회수(Nk)를 비교하기 시작하므로 아무리 고의적으로 스텝수를 늘려놓은 바이러스일지라도 필요한 일정회수(Nk)만큼의 암호해제구간을 보장받을 수 있다는 효과를 제공한다. In addition, the present invention is the first execution code or the second execution if the code appeared more than once, a first execution code or the second the first up-counter (n1) the appearance number of times of execution codes, that is above, the second up counter (n2) to start comparing a predetermined number of times and the up-count value (Nk) by it provides an effect that can be guaranteed by the decryption interval, however, even if deliberate virus place by increasing the number of steps required constant number (Nk).

여기에서, 상술한 본 발명에서는 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경할 수 있음을 이해할 수 있을 것이다. Here, although the description has been made with reference to a preferred embodiment according to the present invention above, various modifications of the invention within the scope not departing from the spirit and scope of the invention defined in the claims of the skilled in the art is to in the art and it will be understood that it can be changed.

Claims (9)

  1. 적어도 하나 이상의 파일을 저장하고 있는 진단 영역; Diagnostic area that stores at least one or more files;
    사용자의 모의 실행 요청에 따라 진단 영역에 저장된 파일을 읽어들이고, 읽어들인 파일을 모의 실행 프로그램에 적용시켜 다형성 바이러스에 감염되었는지를 진단하는 다형성 바이러스 진단모듈;을 포함하여 이루어져, It reads the file stored in the diagnostic area, depending on the user's request to run simulations, and apply the files loaded on the simulation program run polymorphic virus diagnostic module to diagnose whether a polymorphic virus infection; composed, including,
    상기 진단 모듈은 제 1 실행코드가 존재하는지를 체크하고, 제 1 실행코드의 반복 회수를 측정하며, 또한 제 2 실행코드가 존재하는지를 체크하고, 제 2 실행코드의 반복 회수를 측정함으로써 다형성 바이러스 감염 여부를 진단하는 것을 특징으로 하는 바이러스 진단 시스템 . The diagnostic module if the polymorphic virus by measuring the number of repetitions of the first execution code is present if, and checked, and the first measuring a repetition frequency of the executable code, and checks if the second execution code is present and a second executable code viral diagnostic system of claim to diagnose.
  2. 삭제 delete
  3. 삭제 delete
  4. 제 1 항에 있어서, 상기 다형성 바이러스 진단 모듈에 적용된 모의 실행 프로그램은, The method of claim 1, wherein the launcher simulation applied to the polymorphic virus diagnostic module,
    상기 사용자의 모의 실행 요청신호가 입력되는지를 판단하고, The simulation execution request signal from the user and determines whether the input,
    상기 사용자에 의해 모의 실행 요청신호가 입력되는 경우, 제 1 업카운터, 제 2 업카운터 및 제 3 업카운터를 초기화시키고, When the simulation execution request signal by the user input, a first up-counter, and the second reset the up counter and the third up-counter,
    상기 초기화 과정을 수행한 후 진단 영역으로부터 읽어들인 파일을 한 스텝씩 모의실행하고 제 1 실행코드가 존재하는지를 판단하고, After performing the initialization process run simulated by one step the file read from the diagnostic area, and it is determined whether the first execution code is present,
    상기 제 1 실행코드가 존재하는 경우 제 1 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복하는 경우 제 1 업카운터를 카운트하고, If the if the first execution code is present repeatedly determines whether the first execution code is a specific address is executed repeatedly in the count of the first up-counter,
    상기 제 1 실행코드가 존재하지 않거나, 제 1 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 2 실행코드가 존재하는지를 판단하고, When the first execution code is not present, the first execution code is a specific address is not executed repeatedly, and in determining whether the second execution code exists,
    상기 진단영역으로부터 읽어들인 파일에 제 2 실행코드가 존재하는 경우, 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하고, If the second execution code exists in the file are read from the diagnosis region, it is determined that the second code is executed in a specific address is executed repeatedly,
    상기 제 2 실행코드가 위치한 특정주소가 반복 실행되는 경우 제 2 업카운터를 카운트하고, If the claim has a particular address in the second run code that is repeatedly executed, and counting a second up-counter,
    상기 제 1 업카운터에 의해 누적된 값이 제 2 업카운터에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 상기 일정 값이 존재하는지를 판단하고, Determining whether the value accumulated by said first up-counter matches the value calculated by multiplying the first predetermined value to the value accumulated by the second up counter, and determines whether a the predetermined value is present,
    상기 일정 값이 존재하는 경우, 상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료되었는지를 판단하고, If said predetermined value is present, it is determined that the first up-counter, and the second is the up-counting by the up counter value is greater than or equal to the fixed number of times, or repetition is terminated,
    상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료된 경우 파일의 모의실행결과 암호해제가 일부 이루어졌다고 보고 다형성 바이러스 감염여부를 진단하고, The first up counter, the second up-counting by the up-counter value and to diagnose the simulated execution result whether decryption is reported that some polymorphic viruses made in the case where larger than the fixed number of times, or the end of the file repeatedly,
    상기 제 2 실행코드가 존재하지 않거나, 또는 상기 제 2 실행코드가 위치한 특정주소가 반복 실행되지 않거나, 또는 상기 일정 값이 존재하지 않는 경우 제 3 업카운터를 카운트하고, The second execution code is not present, or the second run code has a specific address or repeatedly be executed in, or counting the third up-counter if the predetermined value does not exist,
    상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰지를 판단하며, And determining the count up by the third counter value is larger than a specified number of times,
    상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰 경우 그에 해당되는 메시지를 출력하는 것을 특징으로 하는 다형성 바이러스 진단시스템. Polymorphic virus diagnostic system, characterized in that the counting by the third up-counter value output messages corresponding thereto is larger than the specified number of times.
  5. 제 4 항에 있어서, 상기 제 1 실행코드는, 상기 특정 주소의 내용을 변경시키는 명령을 의미하며, 제 2 실행코드는 조건부 분기 명령을 의미하는 것을 특징으로 하는 다형성 바이러스 진단 The method of claim 4, wherein the first execution code, means a command to change the contents of the specified address, and a second run code polymorphic virus diagnostics, characterized in that the means for conditional branch instruction 시스템. system.
  6. 제 4 항에 있어서, 상기 일정회수는, 미리 설정된 진단용 바이러스 패턴의 최대 크기보다 크고, 미리 설정된 바이러스 검사 영역의 크기보다 크거나 같도록 설정되며, The method of claim 4, wherein the predetermined number of times, larger than the maximum size of the preset diagnosis of virus pattern is set to be equal to or greater than the size of the preset virus scan region,
    상기 지정회수는, 제 1 실행코드나 제 2 실행코드가 등장 할까지의 경험적 통계치에 근거한 예상스텝수로 설정됨을 특징으로 하는 다형성 바이러스 진단 시스템. The specified number of times, the polymorphic virus diagnostic system, characterized in that the first execution code or the second code is executed appearance do set to the expected number of steps based on empirical statistical fingers.
  7. (1) 사용자의 모의 실행 요청신호가 입력되는지를 판단하는 과정; (1) the steps of: determining whether the simulated execution request signal is input from the user;
    (2) 상기 사용자에 의해 모의 실행 요청신호가 입력되는 경우, 제 1 업카운터, 제 2 업카운터 및 제 3 업카운터를 초기화시키는 과정; (2) When the process of the simulated execution request signal input by the user, initialization of the first up-counter and the second up-counter and the third up-counter;
    (3) 상기 초기화 과정을 수행한 후 진단 영역으로부터 읽어들인 파일을 한 스텝씩 모의 실행하는 과정 (3) the process of simulation executed by a step to read the file from the diagnostic region after performing the initialization process,
    (4) 한 스텝씩 모의 실행한 직후 그 주소에 제 1 실행코드가 존재하는지를 판단하는 과정; (4) the steps of: determining whether the first execution code is present in one step by a simulation executed immediately after the address;
    (5) 상기 제 1 실행코드가 존재하는 경우, 제 1 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하여 반복하는 경우 제 1 업카운터를 카운트하는 과정; 5, the process of counting the first up-counter if the repetition is determined whether the code is present when the first execution, the first executable code is a specific address is executed repeatedly in;
    (6) 상기 제 1 실행코드가 존재하지 않거나, 또는 제 1 실행코드가 위치한 특정주소가 반복 실행되지 않는 경우 제 2 실행코드가 존재하는지를 판단하는 과정; 6, the steps of: determining the first execution code is not present, or if the first execution code is the second execution code, if a particular address is not repeatedly executed in;
    (7) 제 2 실행코드가 존재하는 경우, 제 2 실행코드가 위치한 특정주소가 반복 실행되는지를 판단하는 과정; 7, the steps of: determining whether the second execution code, if present, the second run code has a specific address is executed in repetition;
    (8) 상기 제 2 실행코드가 위치한 특정주소가 반복 실행되는 경우, 제 2 업카운터를 카운트하는 과정; (8) The process of the case where the second execution code is executed repeatedly in a specific address, count the second up counter;
    (9) 상기 제 1 업카운터에 의해 누적된 값이 제 2 업카운터에 의해 누적된 값에 일정 값을 곱하여 산출된 값과 일치하는지를 판단하고, 상기 일정 값이 존재하는지를 판단하는 과정; 9, the steps of: determining whether a first value and determine if the match, and the predetermined value calculated by multiplying a constant value a, the value accumulated by the up-counter accumulated by the second up counter value is present;
    (10) 상기 일정 값이 존재하는 경우,상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료되었는지를 판단하는과정; 10, the steps of: determining whether said first up-counter and the second up-up the count value by the counter to or greater than the fixed number of times, or repeating is terminated if said predetermined value is present;
    (11) 상기 제 1 업카운터, 제 2 업카운터에 의해 업카운트된 값이 일정회수보다 크거나, 또는 반복이 종료된 경우 파일의 모의실행결과 암호해제가 일부 이루어졌다고 보고 다형성 바이러스 감염여부를 진단하는 과정, 그렇지 않은 경우 (3)번부터 다시 수행하는 과정 11, the first up-counter, and the second is the up-count value by the up-counter to or greater than the fixed number of times, or repeated if the shutdown execution simulated file results decryption diagnostic whether reported that some place polymorphic virus process, otherwise (3) the process of re-perform from time to
    (12) 상기 제 2 실행코드가 존재하지 않거나, 또는 상기 제 2 실행코드가 위치한 특정주소가 반복 실행되지 않거나, 또는 상기 일정 값이 존재하지 않는 경우 제 3 업카운터를 카운트하는 과정; 12. The process of claim 2 wherein is not present the executable code, or the second run code has a specific address does not run repeatedly in, or counting the third up-counter if the predetermined value does not exist;
    (13) 상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰지를 판단하는 과정; 13. The process of the value counted by the third up-counter is determined greater than a specified number of times; And
    (14) 상기 제 3 업카운터에 의해 카운트된 값이 지정회수보다 큰 경우 그에 해당되는 메시지를 출력하는 과정 및 그렇지 않은 경우 상기 과정(3)부터 다시 수행하는 과정으로 이루어짐을 특징으로 하는 다형성 바이러스 진단 방법. 14 polymorphic virus diagnosis, characterized by constituted by any of the third process, and otherwise the process of the process from the process (3) again if it is to a value counted by the up counter outputs a message corresponding thereto is larger than the specified number of times Way.
  8. 제 7 항에 있어서, 상기 제 1 실행코드는, 상기 특정 주소의 내용을 변경시키는 명령을 의미하며, 제 2 실행코드는 조건부 분기 명령을 의미하는 것을 특징으로 하는 다형성 바이러스 진단방법. The method of claim 7, wherein the first execution code, means a command to change the contents of the specified address, and a second run code polymorphic virus diagnostic method characterized in that the means for conditional branch instructions.
  9. 제 7 항에 있어서, 상기 일정회수는, 미리 설정된 진단용 바이러스 패턴의 최대 크기보다 크고, 미리 설정된 바이러스 검사 영역의 크기보다 크거나 같도록설정되며, The method of claim 7, wherein the predetermined number of times, larger than the maximum size of the preset diagnosis of virus pattern is set to be equal to or greater than the size of the preset virus scan region,
    상기 지정회수는, 미리 설정된 파일 실행 중 제 1 실행코드나 제 2 실행코드가 등장하기까지 예상 스텝수보다 크거나 같도록 설정됨을 특징으로 하는 다형성 바이러스 진단방법. The specified number of times, the polymorphic virus diagnosis method as claimed preset file execution of the first execution code, and the second run code has appeared to expect greater than or equal to the number of steps to be set to.
KR20000014332A 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
KR20000014332A 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
KR20000014332A KR100367129B1 (en) 2000-03-21 2000-03-21 A polymorphic virus analysis system and a method thereof

Publications (2)

Publication Number Publication Date
KR20010089062A true 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
KR20000014332A 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
US8407785B2 (en) 2005-08-18 2013-03-26 The Trustees Of Columbia University In The City Of New York Systems, methods, and media protecting a digital data processing device from attack
US8074115B2 (en) 2005-10-25 2011-12-06 The Trustees Of Columbia University In The City Of New York Methods, media and systems for detecting anomalous program executions
WO2008055156A3 (en) 2006-10-30 2008-08-28 Univ Columbia Methods, media, and systems for detecting an anomalous sequence of function calls
RU2014112261A (en) 2011-09-15 2015-10-20 Зе Трастис Оф Коламбия Юниверсити Ин Зе Сити Оф Нью-Йорк The systems, methods and media for the detection of payloads return-oriented programming

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 Type
KR20010089062A (en) 2001-09-29 application

Similar Documents

Publication Publication Date Title
Castelluccia et al. On the difficulty of software-based attestation of embedded devices
Liang et al. Fast and automated generation of attack signatures: A basis for building self-protecting servers
Arora et al. Secure embedded processing through hardware-assisted run-time monitoring
US5696822A (en) Polymorphic virus detection module
Zhang et al. Cross-VM side channels and their use to extract private keys
US7779394B2 (en) Software self-defense systems and methods
US6880149B2 (en) Method for runtime code integrity validation using code block checksums
US20020120854A1 (en) Systems and methods for preventing unauthorized use of digital content
Barrantes et al. Randomized instruction set emulation
Ozdoganoglu et al. SmashGuard: A hardware solution to prevent security attacks on the function return address
Yu et al. Stranger: An automata-based string analysis tool for php
US6907396B1 (en) Detecting computer viruses or malicious software by patching instructions into an emulator
US7603713B1 (en) Method for accelerating hardware emulator used for malware detection and analysis
Tromer et al. Efficient cache attacks on AES, and countermeasures
Williams et al. Device Driver Safety Through a Reference Validation Mechanism.
Nachenberg Computer virus-antivirus coevolution
Hawblitzel et al. Ironclad Apps: End-to-End Security via Automated Full-System Verification.
US20060236125A1 (en) Hardware-based authentication of a software program
US20100107249A1 (en) Method, Apparatus, and Device for Protecting Against Programming Attacks and/or Data Corruption
Kozen Language-based security
US20050033972A1 (en) Dual virtual machine and trusted platform module architecture for next generation media players
US20040003278A1 (en) Secure and opaque type library providing secure data protection of variables
Konstantinou et al. Metamorphic virus: Analysis and detection
US7237123B2 (en) Systems and methods for preventing unauthorized use of digital content
Christodorescu et al. Static analysis of executables to detect malicious patterns

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
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