KR101217668B1 - Malicious program hooking prevention apparatus and method - Google Patents
Malicious program hooking prevention apparatus and method Download PDFInfo
- Publication number
- KR101217668B1 KR101217668B1 KR1020110044657A KR20110044657A KR101217668B1 KR 101217668 B1 KR101217668 B1 KR 101217668B1 KR 1020110044657 A KR1020110044657 A KR 1020110044657A KR 20110044657 A KR20110044657 A KR 20110044657A KR 101217668 B1 KR101217668 B1 KR 101217668B1
- Authority
- KR
- South Korea
- Prior art keywords
- function
- address
- operating system
- hooking
- execution command
- Prior art date
Links
Images
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Debugging And Monitoring (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
Abstract
악성 프로그램 후킹(hooking) 방지 장치 및 방법이 개시된다. 본 발명의 실시예들은 CPU(Central Processing Unit)의 분기 추적(Branch Trace) 기능을 이용하여 악성 프로그램에 의한 분기 실행 명령을 추적하고, 악성 프로그램 함수에 포함된 원본 실행 명령을 추출하여 상기 추출된 원본 실행 명령을 기초로 상기 후킹된 운영체제의 함수를 복원하는 기법을 제공함으로써, 악성 프로그램에 의한 후킹(hooking) 행위를 방지하고, 후킹된 운영체제의 함수를 원래의 함수로 복원할 수 있다.An apparatus and method for preventing malware hooking is disclosed. Embodiments of the present invention track branch execution instructions by a malicious program using a branch trace function of a central processing unit (CPU), extract an original execution instruction included in a malicious program function, and extract the original source. By providing a technique for restoring a function of the hooked operating system based on an execution command, it is possible to prevent a hooking behavior by a malicious program and to restore the function of the hooked operating system to an original function.
Description
악성 프로그램 후킹 방지 장치 및 방법이 개시된다. 특히, 본 발명의 실시예들은 악성 프로그램에 의해 운영체제(Operating System)의 함수들에 대해 발생하는 후킹(hooking)을 방지하는 기법에 대한 것이다.An apparatus and method for preventing malware hooking is disclosed. In particular, embodiments of the present invention are directed to a technique for preventing hooking caused by functions of an operating system by a malicious program.
근래의 악성 프로그램들은 운영체제(Operating System)에서 제공하는 다양한 함수들의 실행 명령을 후킹(hooking)함으로써, 자기 보호 또는 은폐 행위 등을 시도하고 있다.Recently, malicious programs have attempted self-protection or concealment by hooking execution commands of various functions provided by an operating system.
이와 관련하여 다양한 보안 프로그램들은 이러한 악성 프로그램들을 진단하고, 제거하기 위해 악성 프로그램들의 후킹에 의해 운영체제의 함수에 포함된 실행 명령이 변경된 것을 변경 이전의 실행 명령으로 복구함으로써, 악성 행위가 더 이상 진행되지 않도록 하고 있다.In this regard, various security programs can recover malicious programs by recovering changes in the execution commands included in the operating system function by the hooking of the malicious programs to the previous execution commands to diagnose and remove these malicious programs. I do not.
하지만, 최근의 악성 프로그램들은 자신의 후킹 정보가 제거된 것을 감지하여 재후킹을 시도하거나 보안 프로그램이 실행 명령을 복구하기 위해 운영체제의 파일들로부터 정보를 추출한다는 점을 알아내어 보안 프로그램의 상기 파일에 대한 접근을 방해함으로써, 복구를 어렵게 하고 있다.However, recent malicious programs detect that their hooking information has been removed, attempt to rehook, or find that the security program extracts information from the operating system's files in order to recover execution instructions. By impeding access, it makes recovery difficult.
따라서, 악성 프로그램들에 의한 피해를 최소화하기 위해 상기 악성 프로그램들의 후킹에 의해 변경된 실행 명령을 복구하는 기법에 대한 연구가 필요하다.Therefore, in order to minimize the damage caused by malicious programs, a study on a technique for recovering an execution command changed by the hooking of the malicious programs is needed.
본 발명의 실시예들은 CPU(Central Processing Unit)의 분기 추적(Branch Trace) 기능을 이용하여 악성 프로그램에 의한 분기 실행 명령을 추적하고, 악성 프로그램 함수에 포함된 원본 실행 명령을 추출하여 상기 추출된 원본 실행 명령을 기초로 상기 후킹된 운영체제의 함수를 복원하는 기법을 제공함으로써, 악성 프로그램에 의한 후킹(hooking) 행위를 방지하고, 후킹된 운영체제의 함수를 원래의 함수로 복원할 수 있도록 한다.Embodiments of the present invention track branch execution instructions by a malicious program using a branch trace function of a central processing unit (CPU), extract an original execution instruction included in a malicious program function, and extract the original source. By providing a technique for restoring a function of the hooked operating system based on an execution command, it is possible to prevent hooking behavior by a malicious program and to restore a function of the hooked operating system to an original function.
본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 장치는 CPU(Central Processing Unit)의 분기 추적(Branch Trace) 기능을 활성화하여 운영체제의 함수 내에서 분기 실행 명령이 위치하는 주소를 확인하고, 상기 분기 실행 명령에 따라 분기된 후킹 함수 내에서 상기 운영체제의 함수로의 복귀 실행 명령이 위치하는 주소를 확인하는 분기 확인부, 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한지 여부를 판단하는 판단부, 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한 경우, 상기 분기 실행 명령이 위치하는 주소와 상기 복귀 실행 명령이 위치하는 주소를 기초로 상기 분기된 후킹 함수로부터 상기 운영체제의 함수에 대한 원본 실행 명령을 추출하는 추출부 및 상기 추출된 원본 실행 명령을 기초로 상기 운영체제의 함수를 복원하는 복원부를 포함한다.The anti-malware hooking prevention device according to an embodiment of the present invention activates a branch trace function of a central processing unit (CPU) to check an address where a branch execution instruction is located in a function of an operating system, and executes the branch. A branch check unit for checking an address where a return execution command is located in a hooking function branched according to an instruction, and an argument value last stored on the stack associated with the branched hooking function calls a function of the operating system. And a determining unit to determine whether the argument value is the same as the specified argument value. When the argument value last stored in the stack associated with the branched hooking function is the same as the argument value specified when the function of the operating system is called, the branch execution command is executed. From the branched hooking function based on the address at which it is located and the address at which the return execution instruction is located. And an extracting unit for extracting an original execution command for a function of the operating system and a restoring unit for restoring a function of the operating system based on the extracted original execution command.
또한, 본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 방법은 CPU의 분기 추적 기능을 활성화하여 운영체제의 함수 내에서 분기 실행 명령이 위치하는 주소를 확인하는 단계, 상기 분기 실행 명령에 따라 분기된 후킹 함수 내에서 상기 운영체제의 함수로의 복귀 실행 명령이 위치하는 주소를 확인하는 단계, 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한지 여부를 판단하는 단계, 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한 경우, 상기 분기 실행 명령이 위치하는 주소와 상기 복귀 실행 명령이 위치하는 주소를 기초로 상기 분기된 후킹 함수로부터 상기 운영체제의 함수에 대한 원본 실행 명령을 추출하는 단계 및 상기 추출된 원본 실행 명령을 기초로 상기 운영체제의 함수를 복원하는 단계를 포함한다.In addition, the malicious program hooking prevention method according to an embodiment of the present invention to activate the branch tracking function of the CPU to check the address where the branch execution command is located in the function of the operating system, the hooking branched according to the branch execution command Ascertaining an address at which a return execution instruction to a function of the operating system is located within a function, wherein an argument value last stored on a stack associated with the branched hooking function is the same as an argument value specified when calling a function of the operating system; Determining whether the last stored argument value on the stack associated with the branched hooking function is the same as the argument value specified when invoking the function of the operating system; From the branched hooking function to the function of the operating system based on the location address In step and based on the extracted run original command to extract the original execution command includes the step of restoring the function of the operating system.
본 발명의 실시예들은 CPU(Central Processing Unit)의 분기 추적(Branch Trace) 기능을 이용하여 악성 프로그램에 의한 분기 실행 명령을 추적하고, 악성 프로그램 함수에 포함된 원본 실행 명령을 추출하여 상기 추출된 원본 실행 명령을 기초로 상기 후킹된 운영체제의 함수를 복원하는 기법을 제공함으로써, 악성 프로그램에 의한 후킹(hooking) 행위를 방지하고, 후킹된 운영체제의 함수를 원래의 함수로 복원할 수 있다.Embodiments of the present invention track branch execution instructions by a malicious program using a branch trace function of a central processing unit (CPU), extract an original execution instruction included in a malicious program function, and extract the original source. By providing a technique for restoring a function of the hooked operating system based on an execution command, it is possible to prevent a hooking behavior by a malicious program and to restore the function of the hooked operating system to an original function.
도 1은 악성 프로그램에 의해 운영체제의 함수가 후킹된 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 장치의 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 방법을 도시한 순서도이다.1 is a diagram illustrating an example in which a function of an operating system is hooked by a malicious program.
2 is a diagram illustrating a structure of an anti-malware hooking device according to an embodiment of the present invention.
3 is a flowchart illustrating a malicious program hooking prevention method according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
악성 프로그램들은 후킹(hooking) 핸들러를 통해 운영체제(Operating System)의 함수에 포함된 실행 명령을 변경함으로써, 시스템에 대한 공격을 수행할 수 있다.Malicious programs can attack the system by changing the execution instructions included in the functions of the operating system through a hooking handler.
이와 관련하여, 도 1에는 악성 프로그램에 의해 운영체제의 함수가 후킹된 예가 도시되어 있다.In this regard, FIG. 1 shows an example in which a function of an operating system is hooked by a malicious program.
도 1을 참조하면, 도면부호 110은 상기 운영체제의 함수의 원본을 도시한 예이고, 도면부호 120은 상기 도면부호 110에 도시된 운영체제의 함수의 원본이 악성 프로그램에 의해 후킹된 예를 도시한 것이다.Referring to FIG. 1,
도면부호 120에 도시된 바와 같이, 악성 프로그램이 "JMP"(121) 명령과 같은 분기(Branch) 실행 명령을 실행하여 소정의 악성 프로그램 함수(122)를 호출하면, 상기 호출된 악성 프로그램 함수(122)는 소정의 악성 행위(123)를 실행하고, 상기 운영체제의 함수에 포함된 원본 실행 명령들(126, 127)을 실행한 후 다시 "JMP"(125)와 같은 분기 실행 명령을 실행하여 상기 운영체제의 함수가 다시 실행될 수 있도록 할 수 있다.As shown at 120, when a malicious program executes a branch execution command such as a "JMP" 121 command and calls a predetermined
이와 관련하여 좀 더 상세히 설명하면 다음과 같다.A more detailed description thereof is as follows.
먼저, 악성 프로그램은 운영체제의 함수를 후킹하여 상기 운영체제의 함수가 도면부호 120과 같이 변경되도록 할 수 있다.First, a malicious program may hook a function of an operating system so that the function of the operating system is changed as indicated by
이때, 상기 후킹된 운영체제의 함수가 실행되면, 도면부호 110에 도시된 바와 같이 "PUSH EBP"(111)가 먼저 실행되는 것이 아니라, 도면부호 120에 도시된 바와 같이 "JMP"(121)가 먼저 실행되어 악성 프로그램 함수(122)가 호출될 수 있다.At this time, when the function of the hooked operating system is executed, as shown by
악성 프로그램 함수(122)가 호출되면, 악성 프로그램 함수(122)는 악성 행위(123)를 실행하고, 악성 행위(123)의 실행이 완료되면, 원래 운영체제의 함수에 포함된 실행명령인 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)를 실행한 후 상기 운영체제의 함수가 계속 실행될 수 있도록 복귀 실행 명령인 "JMP"(125)를 실행하여 상기 운영체제의 함수로 복귀할 수 있다.When the
악성 프로그램 함수(122)에서 복귀 실행 명령인 "JMP"(125)가 실행되면, 상기 운영체제의 함수는 "JMP"(125)에서 지시한 주소에 포함된 실행명령인 "PUSH EDI"(124)를 실행한 후 그 이후의 실행명령들을 실행할 수 있다.When the execution command "JMP" 125 is executed in the
이렇게 악성 프로그램에 의한 후킹 행위를 방지하고, 후킹된 운영체제의 함수를 원래의 함수로 복원하기 위해 본 발명의 실시예들에서는 CPU(Central Processing Unit)의 분기 추적(Branch Trace) 기능을 이용하여 악성 프로그램에 의한 분기 실행 명령을 추적하고, 악성 프로그램 함수에 포함된 원본 실행 명령을 추출하여 상기 추출된 원본 실행 명령을 기초로 상기 후킹된 운영체제의 함수를 복원하는 기법을 제공하고자 한다.Thus, in order to prevent the hooking behavior by the malicious program and to restore the function of the hooked operating system to the original function, embodiments of the present invention utilize a branch trace function of a central processing unit (CPU). It is to provide a technique for tracing the branch execution command by, extracting the original execution command included in the malicious program function and restoring the function of the hooked operating system based on the extracted original execution command.
도 2는 본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 장치의 구조를 도시한 도면이다.2 is a diagram illustrating a structure of an anti-malware hooking device according to an embodiment of the present invention.
도 2를 참조하면, 악성 프로그램 후킹 방지 장치(210)는 분기 확인부(211), 판단부(212), 추출부(213) 및 복원부(214)를 포함한다.Referring to FIG. 2, the malicious program
분기 확인부(211)는 CPU의 분기 추적 기능을 활성화하여 운영체제의 함수 내에서 분기 실행 명령이 위치하는 주소를 확인하고, 상기 분기 실행 명령에 따라 분기된 후킹 함수 내에서 상기 운영체제의 함수로의 복귀 실행 명령이 위치하는 주소를 확인한다.The
여기서, CPU의 분기 추적 기능은 실행 명령어 중 분기에 관한 명령인 "JMP"나 "CALL" 등이 실행될 때에만 미리 지정된 인터럽트(interrupt) 1번 핸들러를 실행시킴으로써, 분기 실행 명령에 대한 정보를 전달하는 기능을 의미한다.Here, the branch tracking function of the CPU transmits information on the branch execution instruction by executing the interrupt # 1 designated in advance only when "JMP" or "CALL", which is a branch instruction among execution instructions, is executed. It means function.
분기 확인부(211)의 동작과 관련하여 도 1을 참조하여 좀 더 상세히 설명하면 다음과 같다.The operation of the
분기 확인부(211)는 CPU의 분기 추적 기능을 활성화하여 운영체제의 함수 내에서 분기 실행 명령인 "JMP"(121)가 위치하는 주소를 확인할 수 있다.The
그리고, 분기 확인부(211)는 상기 CPU의 분기 추적 기능을 이용하여 분기된 후킹 함수(악성 프로그램 함수)(122) 내에서 상기 운영체제의 함수로의 복귀 실행 명령인 "JMP"(125)가 위치하는 주소를 확인할 수 있다.Then, the
이때, 본 발명의 일실시예에 따르면, 분기 확인부(211)는 CPU의 마지막 분기 기록(Last Branch Record) 기능을 활성화하여 상기 분기 실행 명령이나 상기 복귀 실행 명령이 실행되었을 때, 상기 CPU 내의 레지스터(register)를 통해 상기 분기 실행 명령이 위치하는 주소와 상기 복귀 실행 명령이 위치하는 주소를 확인할 수 있다.At this time, according to one embodiment of the present invention, the
판단부(212)는 상기 분기된 함수와 연관된 스택(stack)에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한지 여부를 판단한다.The
추출부(213)는 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한 경우, 상기 분기 실행 명령이 위치하는 주소와 상기 복귀 실행 명령이 위치하는 주소를 기초로 상기 분기된 후킹 함수로부터 상기 운영체제의 함수에 대한 원본 실행 명령을 추출한다.When the argument value last stored in the stack associated with the branched hooking function is the same as the argument value specified when the function of the operating system is called, the
판단부(212) 및 추출부(213)의 동작과 관련하여 도 1을 참조하여 좀 더 상세히 설명하면 다음과 같다.The operation of the
운영체제의 함수에서 상기 분기 실행 명령이 실행되어 상기 분기된 후킹 함수인 악성 프로그램 함수(122)가 호출되면, 판단부(212)는 악성 프로그램 함수(122)에서 상기 복귀 실행 명령인 "JMP"(125)가 실행된 이후, 악성 프로그램 함수(122)와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한지 여부를 판단한다.When the branch execution command is executed in a function of an operating system and the
도 1의 예에서는 상기 복귀 실행 명령인 "JMP"(125)가 실행되기 바로 직전에 위치하는 실행 명령인 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)가, 상기 운영체제의 함수가 처음 호출될 때 실행되는 실행 명령인 "PUSH EBP(111)" 및 "MOV EBP, ESP(112)"와 동일하므로, 상기 복귀 실행 명령인 "JMP"(125)가 실행된 이후, 악성 프로그램 함수(122)와 연관된 스택에 마지막으로 저장된 인수 값은 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일하다.In the example of FIG. 1, execution instructions "PUSH EBP" 126 and "MOV EBP, ESP" 127 which are positioned immediately before the execution execution command "JMP" 125 are executed are functions of the operating system. Is the same as the execution commands "
따라서, 추출부(213)는 악성 프로그램 함수(122)에 포함된 실행 명령인 "PUSH EBP"(126)와 "MOV EBP, ESP"(127) 이전에 위치하는 실행 명령들을 악성 행위를 유발하는 실행 명령들로 확인할 수 있고, 악성 프로그램 함수(122)를 호출하기 위한 분기 실행 명령인 "JMP"(121)가 위치하는 주소와 복귀 실행 명령인 "JMP"(125)가 위치하는 주소를 기초로 악성 프로그램 함수(122)로부터 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)를 추출함으로써, 후킹에 의해 변경된 운영체제의 함수에 포함된 원본 명령인 "PUSH EBP"(111)와 "MOV EBP, ESP"(112)를 알아낼 수 있다.Accordingly, the extracting
본 발명의 일실시예에 따르면, 추출부(213)는 제1 연산부(217), 제2 연산부(218) 및 실행 명령 추출부(219)를 포함할 수 있다.According to an embodiment of the present invention, the
제1 연산부(217)는 상기 분기 실행 명령이 위치하는 주소와, 상기 복귀 실행 명령이 실행된 이후 상기 운영체제의 함수의 시작 위치 주소 간 위치 차이를 연산한다.The
제2 연산부(218)는 상기 분기된 후킹 함수 내에서 상기 복귀 실행 명령이 위치하는 주소로부터 제1 연산부(217)가 연산한 위치 차이만큼 감소시킨 주소를 연산한다.The
실행 명령 추출부(219)는 상기 분기된 후킹 함수 내에서 제2 연산부(218)가 연산한 주소로부터 상기 복귀 실행 명령이 위치하는 주소 직전까지 위치하는 실행 명령을 상기 원본 실행 명령으로 추출한다.The execution
이하에서는 도 1을 참조하여 제1 연산부(217), 제2 연산부(218) 및 실행 명령 추출부(219)의 동작에 대해 상세히 설명한다.Hereinafter, operations of the
제1 연산부(217)는 상기 운영체제의 함수 내에서 분기 실행 명령인 "JMP"(121)가 위치하는 주소와, 악성 프로그램 함수(122) 내에서 복귀 실행 명령인 "JMP"(125)가 실행된 이후 상기 운영체제의 함수의 시작 위치에 있는 실행 명령인 "PUSH EDI"(124)가 위치하는 주소 간 위치 차이를 연산한다.The
그리고 나서, 제2 연산부(218)는 악성 프로그램 함수(122) 내에서 복귀 실행 명령인 "JMP"(125)가 위치하는 주소로부터 상기 제1 연산부(217)에서 연산된 위치 차이만큼 감소시킨 주소를 연산한다.Then, the
이때, 제2 연산부(218)에서 연산된 주소는 "PUSH EBP"(126)가 위치하는 주소가 될 수 있다.In this case, the address calculated by the
실행 명령 추출부(219)는 악성 프로그램 함수(122) 내에서 "PUSH EBP"(126)가 위치하는 주소로부터 복귀 실행 명령인 "JMP"(125)가 위치하는 주소 직전까지 위치하는 실행 명령인 "MOV EBP, ESP"(127)가 위치하는 주소까지의 실행 명령을 상기 운영체제의 함수에 대한 원본 실행 명령으로 추출할 수 있다.Execution
본 실시예에서 실행 명령 추출부(219)는 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)를 추출할 수 있다.In this embodiment, the
복원부(214)는 상기 추출된 원본 실행 명령을 기초로 상기 운영체제의 함수를 복원한다.The
복원부(214)의 동작과 관련하여 도 1을 이용하여 설명하면, 추출부(213)가 악성 프로그램 함수(122)로부터 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)를 추출할 수 있으므로, 복원부(214)는 후킹된 운영체제의 함수에서 "PUSH EBP"(111)와 "MOV EBP, ESP"(112)가 변경되었음을 알 수 있고, 상기 추출된 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)를 이용하여 상기 후킹된 운영체제의 함수를 복원할 수 있다.The operation of the
본 발명의 일실시예에 따르면, 악성 프로그램 후킹 방지 장치(210)는 실행 명령 확인부(215) 및 주소 호출부(216)를 더 포함할 수 있다.According to an embodiment of the present invention, the malicious program hooking
실행 명령 확인부(215)는 상기 분기된 후킹 함수 내에서 상기 추출된 원본 실행 명령이 위치하는 주소를 확인한다.The execution
주소 호출부(216)는 상기 운영체제의 함수가 호출될 경우, 상기 추출된 원본 실행 명령이 위치하는 주소를 직접 호출한다.When the function of the operating system is called, the
본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 장치(210)는 복원부(214)를 통해 후킹된 운영체제의 함수를 복원할 수도 있지만, 실행 명령 확인부(215)와 주소 호출부(216)를 이용하여 후킹된 운영체제의 함수를 복원하는 대신, 상기 운영체제의 함수가 실행될 때, 상기 분기된 후킹 함수 내에 포함되어 있는 원본 실행 명령이 위치하고 있는 주소를 직접 호출함으로써, 운영체제의 함수를 정상 동작시킬 수 있다.The anti-malware hooking
이하에서는 도 1을 참조하여 실행 명령 확인부(215)와 주소 호출부(216)의 동작을 좀 더 상세히 설명한다.Hereinafter, the operation of the execution
먼저, 추출부(213)가 악성 프로그램 함수(122)로부터 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)를 추출할 수 있으므로, 실행 명령 확인부(215)는 악성 프로그램 함수(122) 내에서 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)가 위치하는 주소를 확인할 수 있다.First, since the
그리고 나서, 향후 호스트에서 상기 운영체제의 함수가 호출될 경우, 주소 호출부(216)는 악성 프로그램 함수(122) 내에서 "PUSH EBP"(126)와 "MOV EBP, ESP"(127)가 위치하는 주소를 직접 호출할 수 있다.Then, when the function of the operating system is called in the future host, the
이 결과, 상기 운영체제의 함수가 실행되면, "PUSH EBP"(126)와 "MOV EBP, ESP"(127)가 먼저 호출되어 실행되고, 그 이후에 다시 "PUSH EDI"(124)가 호출되어 실행됨으로써, 악성 프로그램 후킹 방지 장치(210)는 정상적인 운영체제의 함수가 실행되는 것과 동일한 결과를 제공할 수 있다.As a result, when the function of the operating system is executed, "PUSH EBP" 126 and "MOV EBP, ESP" 127 are called and executed first, and then "PUSH EDI" 124 is called and executed again. As a result, the malicious program hooking
도 3은 본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 방법을 도시한 순서도이다.3 is a flowchart illustrating a malicious program hooking prevention method according to an embodiment of the present invention.
단계(S310)에서는 CPU의 분기 추적 기능을 활성화하여 운영체제의 함수 내에서 분기 실행 명령이 위치하는 주소를 확인한다.In step S310, the branch tracking function of the CPU is activated to check the address where the branch execution instruction is located in a function of the operating system.
단계(S320)에서는 분기 실행 명령에 따라 분기된 후킹 함수 내에서 상기 운영체제의 함수로의 복귀 실행 명령이 위치하는 주소를 확인한다.In step S320, the address where the return execution instruction to the function of the operating system is located in the hooking function branched according to the branch execution instruction is checked.
단계(S330)에서는 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한지 여부를 판단한다.In step S330, it is determined whether an argument value last stored in a stack associated with the branched hooking function is the same as an argument value specified when calling a function of the operating system.
단계(S340)에서 단계(S330)에 대한 판단을 수행한 결과, 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일하지 않은 경우, 상기 악성 프로그램 후킹 방지 방법은 단계(S320)을 다시 수행한다.As a result of performing the determination on the step S330 in step S340, if the argument value last stored on the stack associated with the branched hooking function is not the same as the argument value specified when calling the function of the operating system, The malicious program hooking prevention method performs step S320 again.
하지만, 단계(S340)에서 단계(S330)에 대한 판단을 수행한 결과, 상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한 경우, 단계(S350)에서는 상기 분기 실행 명령이 위치하는 주소와 상기 복귀 실행 명령이 위치하는 주소를 기초로 상기 분기된 후킹 함수로부터 상기 운영체제의 함수에 대한 원본 실행 명령을 추출한다.However, as a result of performing the determination on step S330 in step S340, if the argument value last stored in the stack associated with the branched hooking function is the same as the argument value specified when calling the function of the operating system, step In operation S350, an original execution command for a function of the operating system is extracted from the branched hooking function based on the address where the branch execution command is located and the address where the return execution command is located.
이때, 본 발명의 일실시예에 따르면, 단계(S350)에서는 상기 분기 실행 명령이 위치하는 주소와, 상기 복귀 실행 명령이 실행된 이후 상기 운영체제의 함수의 시작 위치 주소 간 위치 차이를 연산하는 단계를 포함할 수 있다.In this case, according to an embodiment of the present invention, in step S350, calculating a position difference between an address where the branch execution command is located and a start position address of a function of the operating system after the return execution command is executed. It may include.
그리고 나서, 단계(S350)에서는 상기 분기된 후킹 함수 내에서 상기 복귀 실행 명령이 위치하는 주소로부터 상기 연산된 위치 차이만큼 감소시킨 주소를 연산하는 단계 및 상기 분기된 후킹 함수 내에서 상기 위치 차이 만큼 감소시킨 주소로부터 상기 복귀 실행 명령이 위치하는 주소 직전까지 위치하는 실행 명령을 상기 원본 실행 명령으로 추출하는 단계를 더 포함할 수 있다.Then, in step S350, calculating the address reduced by the calculated position difference from the address where the return execution instruction is located in the branched hooking function and decreasing by the position difference within the branched hooking function. The method may further include extracting, as the original execution command, the execution command located from the address to the address immediately before the return execution command.
단계(S360)에서는 상기 추출된 원본 실행 명령을 기초로 상기 운영체제의 함수를 복원한다.In step S360, a function of the operating system is restored based on the extracted original execution command.
이때, 본 발명의 일실시예에 따르면, 상기 악성 프로그램 후킹 방지 방법은 단계(S350)이후에 상기 분기된 후킹 함수 내에서 상기 추출된 원본 실행 명령이 위치하는 주소를 확인하는 단계 및 상기 운영체제의 함수가 호출될 경우, 상기 추출된 원본 실행 명령이 위치하는 주소를 직접 호출하는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, the malicious program hooking prevention method, after the step (S350) to check the address in which the extracted source execution command is located in the branched hooking function and the function of the operating system When is called, the method may further include directly calling an address where the extracted original execution command is located.
이상, 도 3을 참조하여 본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 방법은 도 2를 이용하여 설명한 악성 프로그램 후킹 방지 장치(210)의 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, the malicious program hooking prevention method according to an embodiment of the present invention was described with reference to FIG. Here, since the malicious program hooking prevention method according to an embodiment of the present invention may correspond to the configuration of the malicious program hooking
본 발명의 일실시예에 따른 악성 프로그램 후킹 방지 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Malicious program hooking prevention method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. In the present invention as described above has been described by the specific embodiments, such as specific components and limited embodiments and drawings, but this is provided to help a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations are possible from these descriptions.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .
210: 악성 프로그램 후킹 방지 장치
211: 분기 확인부 212: 판단부
213: 추출부 214: 복원부
215: 실행 명령 확인부 216: 주소 호출부
217: 제1 연산부 218: 제2 연산부
219: 실행 명령 추출부210: Anti-malware hooking device
211: branch confirmation unit 212: determination unit
213: extracting unit 214: restoring unit
215: execution command confirmation unit 216: address call unit
217: first operation unit 218: second operation unit
219: execution command extracting unit
Claims (7)
상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한지 여부를 판단하는 판단부;
상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한 경우, 상기 분기 실행 명령이 위치하는 주소와 상기 복귀 실행 명령이 위치하는 주소를 기초로 상기 분기된 후킹 함수로부터 상기 운영체제의 함수에 대한 원본 실행 명령을 추출하는 추출부; 및
상기 추출된 원본 실행 명령을 기초로 상기 운영체제의 함수를 복원하는 복원부
를 포함하는 악성 프로그램 후킹 방지 장치.Activate the branch trace function of the central processing unit (CPU) to check the address where the branch execution instruction is located in the function of the operating system, and to the function of the operating system in the hooking function branched according to the branch execution instruction. A branch confirmation unit for confirming an address where the return execution command of the terminal is located;
A determination unit that determines whether an argument value last stored on the stack associated with the branched hooking function is equal to an argument value specified when calling a function of the operating system;
If the argument value last stored on the stack associated with the branched hooking function is equal to the argument value specified when invoking the function of the operating system, based on the address where the branch execution instruction is located and the address where the return execution instruction is located An extraction unit for extracting an original execution command for a function of the operating system from the branched hooking function; And
A restoration unit for restoring a function of the operating system based on the extracted original execution command;
Anti-malware hooking prevention device comprising a.
상기 분기된 후킹 함수 내에서 상기 추출된 원본 실행 명령이 위치하는 주소를 확인하는 실행 명령 확인부; 및
상기 운영체제의 함수가 호출될 경우, 상기 추출된 원본 실행 명령이 위치하는 주소를 직접 호출하는 주소 호출부
를 더 포함하는 악성 프로그램 후킹 방지 장치.The method of claim 1,
An execution command confirmation unit confirming an address where the extracted original execution command is located in the branched hooking function; And
When the function of the operating system is called, an address caller for directly calling the address where the extracted original execution command is located
Anti-malware hooking prevention device further including.
상기 추출부는
상기 분기 실행 명령이 위치하는 주소와, 상기 복귀 실행 명령이 실행된 이후 상기 운영체제의 함수의 시작 위치 주소 간 위치 차이를 연산하는 제1 연산부;
상기 분기된 후킹 함수 내에서 상기 복귀 실행 명령이 위치하는 주소로부터 상기 연산된 위치 차이만큼 감소시킨 주소를 연산하는 제2 연산부; 및
상기 분기된 후킹 함수 내에서 상기 제2 연산부가 연산한 주소로부터 상기 복귀 실행 명령이 위치하는 주소 직전까지 위치하는 실행 명령을 상기 원본 실행 명령으로 추출하는 실행 명령 추출부
를 포함하는 악성 프로그램 후킹 방지 장치.The method of claim 1,
The extracting unit
A first calculator configured to calculate a position difference between an address where the branch execution command is located and a start position address of a function of the operating system after the return execution command is executed;
A second calculator configured to calculate an address reduced by the calculated position difference from an address at which the return execution command is located in the branched hooking function; And
An execution command extracting unit configured to extract an execution command located from the address calculated by the second operation unit to just before the address where the return execution command is located in the branched hooking function as the original execution command;
Anti-malware hooking prevention device comprising a.
상기 분기 실행 명령에 따라 분기된 후킹 함수 내에서 상기 운영체제의 함수로의 복귀 실행 명령이 위치하는 주소를 확인하는 단계;
상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한지 여부를 판단하는 단계;
상기 분기된 후킹 함수와 연관된 스택에 마지막으로 저장된 인수 값이 상기 운영체제의 함수를 호출할 때 지정한 인수 값과 동일한 경우, 상기 분기 실행 명령이 위치하는 주소와 상기 복귀 실행 명령이 위치하는 주소를 기초로 상기 분기된 후킹 함수로부터 상기 운영체제의 함수에 대한 원본 실행 명령을 추출하는 단계; 및
상기 추출된 원본 실행 명령을 기초로 상기 운영체제의 함수를 복원하는 단계
를 포함하는 악성 프로그램 후킹 방지 방법.Activating a branch trace function of a central processing unit (CPU) to identify an address where a branch execution instruction is located in a function of an operating system;
Identifying an address where a return execution command to a function of the operating system is located in a hooking function branched according to the branch execution command;
Determining whether an argument value last stored on a stack associated with the branched hooking function is equal to an argument value specified when calling a function of the operating system;
If the argument value last stored on the stack associated with the branched hooking function is equal to the argument value specified when invoking the function of the operating system, based on the address where the branch execution instruction is located and the address where the return execution instruction is located Extracting an original execution command for a function of the operating system from the branched hooking function; And
Restoring a function of the operating system based on the extracted original execution command;
How to prevent malware hooking, including.
상기 분기된 후킹 함수 내에서 상기 추출된 원본 실행 명령이 위치하는 주소를 확인하는 단계; 및
상기 운영체제의 함수가 호출될 경우, 상기 추출된 원본 실행 명령이 위치하는 주소를 직접 호출하는 단계
를 더 포함하는 악성 프로그램 후킹 방지 방법.5. The method of claim 4,
Identifying an address at which the extracted original execution instruction is located in the branched hooking function; And
When the function of the operating system is called, directly calling an address where the extracted original execution command is located
How to prevent malware hooking further comprising.
상기 추출하는 단계는
상기 분기 실행 명령이 위치하는 주소와, 상기 복귀 실행 명령이 실행된 이후 상기 운영체제의 함수의 시작 위치 주소 간 위치 차이를 연산하는 단계;
상기 분기된 후킹 함수 내에서 상기 복귀 실행 명령이 위치하는 주소로부터 상기 연산된 위치 차이만큼 감소시킨 주소를 연산하는 단계; 및
상기 분기된 후킹 함수 내에서 상기 위치 차이 만큼 감소시킨 주소로부터 상기 복귀 실행 명령이 위치하는 주소 직전까지 위치하는 실행 명령을 상기 원본 실행 명령으로 추출하는 단계
를 포함하는 악성 프로그램 후킹 방지 방법.5. The method of claim 4,
The extracting step
Calculating a position difference between an address at which the branch execution instruction is located and a start position address of a function of the operating system after the return execution instruction is executed;
Calculating an address reduced by the calculated position difference from an address at which the return execution command is located in the branched hooking function; And
Extracting, as the original execution instruction, an execution instruction located from the address reduced by the position difference within the branched hooking function to just before the address where the return execution instruction is located;
How to prevent malware hooking, including.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110044657A KR101217668B1 (en) | 2011-05-12 | 2011-05-12 | Malicious program hooking prevention apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110044657A KR101217668B1 (en) | 2011-05-12 | 2011-05-12 | Malicious program hooking prevention apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120126667A KR20120126667A (en) | 2012-11-21 |
KR101217668B1 true KR101217668B1 (en) | 2013-01-02 |
Family
ID=47511949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110044657A KR101217668B1 (en) | 2011-05-12 | 2011-05-12 | Malicious program hooking prevention apparatus and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101217668B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101444929B1 (en) * | 2012-12-04 | 2014-09-26 | 주식회사 안랩 | Abnormal call detecting device and abnormal call detecting method |
KR101341328B1 (en) * | 2012-12-18 | 2013-12-13 | 주식회사 잉카인터넷 | User definition api function creation |
KR101861952B1 (en) * | 2017-01-25 | 2018-05-28 | 한양대학교 에리카산학협력단 | Anti-debugging method for preventing software break point and apparatus therefor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040031778A (en) * | 2001-07-31 | 2004-04-13 | 발리디 | Method for protecting a software using a so-called temporal dissociation principle against its unauthorized use |
KR20040032859A (en) * | 2001-07-31 | 2004-04-17 | 발리디 | Method for protecting a software using a so-called conditional jump principle against its unauthorized use |
KR20080092813A (en) * | 2007-04-13 | 2008-10-16 | 삼성전자주식회사 | Processor having indirect branch validation unit for secure program execution |
KR20090067569A (en) * | 2007-12-21 | 2009-06-25 | (주) 세인트 시큐리티 | Windows kernel protection system using virtualization |
-
2011
- 2011-05-12 KR KR1020110044657A patent/KR101217668B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040031778A (en) * | 2001-07-31 | 2004-04-13 | 발리디 | Method for protecting a software using a so-called temporal dissociation principle against its unauthorized use |
KR20040032859A (en) * | 2001-07-31 | 2004-04-17 | 발리디 | Method for protecting a software using a so-called conditional jump principle against its unauthorized use |
KR20080092813A (en) * | 2007-04-13 | 2008-10-16 | 삼성전자주식회사 | Processor having indirect branch validation unit for secure program execution |
KR20090067569A (en) * | 2007-12-21 | 2009-06-25 | (주) 세인트 시큐리티 | Windows kernel protection system using virtualization |
Also Published As
Publication number | Publication date |
---|---|
KR20120126667A (en) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101921052B1 (en) | Method and apparatus for identifying security vulnerability and cause point thereof of executable binaries | |
JP6494744B2 (en) | Transparent detection and extraction of return-oriented programming attacks | |
JP4518564B2 (en) | Method for preventing unauthorized code execution, program for preventing unauthorized code execution, and recording medium for program for preventing unauthorized code execution | |
CN106326743A (en) | Method and system for malware detection in virtual machines | |
JP2008129714A (en) | Abnormality detection method, abnormality detection device, abnormality detection program, and learning model generation method | |
US10395033B2 (en) | System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks | |
US10817211B2 (en) | Method for completing a secure erase operation | |
CN104536810B (en) | A kind of method for detecting abnormality and device based on stack | |
WO2015176433A1 (en) | Hard disk repairing method and device based on partition table | |
KR101217668B1 (en) | Malicious program hooking prevention apparatus and method | |
US20160171213A1 (en) | Apparatus and method for controlling instruction execution to prevent illegal accesses to a computer | |
CN107766734A (en) | Clean boot RAID card method, apparatus, equipment and computer-readable recording medium | |
CN103955649A (en) | Method for safely starting terminal equipment | |
US20220292201A1 (en) | Backdoor inspection apparatus, backdoor inspection method, and non-transitory computer readable medium | |
KR101626967B1 (en) | Method and apparatus for operating application to prevent hacking | |
KR101308228B1 (en) | Method for automatic detecting malware code | |
CN104636661A (en) | Method and system for analyzing Android application program | |
US20170116417A1 (en) | Apparatus and method for detecting malicious code | |
US20220284109A1 (en) | Backdoor inspection apparatus, backdoor inspection method, and non-transitory computer readable medium | |
CN103679024A (en) | Virus treating method and device | |
US20240061931A1 (en) | Executable file unpacking system and method for static analysis of malicious code | |
JP4643201B2 (en) | Buffer overflow vulnerability analysis method, data processing device, analysis information providing device, analysis information extraction processing program, and analysis information provision processing program | |
CN104407994A (en) | Method and device for identifying storage equipment inserted into slots of computer | |
CN113312201A (en) | Abnormal process handling method and related device | |
JP2011154465A (en) | Management device, management method, and management program for information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151228 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161226 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171226 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20181226 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20191226 Year of fee payment: 8 |