KR102592997B1 - Method of detecting software malfunction using Binary Image - Google Patents

Method of detecting software malfunction using Binary Image Download PDF

Info

Publication number
KR102592997B1
KR102592997B1 KR1020210178322A KR20210178322A KR102592997B1 KR 102592997 B1 KR102592997 B1 KR 102592997B1 KR 1020210178322 A KR1020210178322 A KR 1020210178322A KR 20210178322 A KR20210178322 A KR 20210178322A KR 102592997 B1 KR102592997 B1 KR 102592997B1
Authority
KR
South Korea
Prior art keywords
malfunction
software
control unit
sensing information
occurred
Prior art date
Application number
KR1020210178322A
Other languages
Korean (ko)
Other versions
KR20230060418A (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 경북대학교 산학협력단
Publication of KR20230060418A publication Critical patent/KR20230060418A/en
Application granted granted Critical
Publication of KR102592997B1 publication Critical patent/KR102592997B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Abstract

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법은 (A)소프트웨어의 오동작 검출시스템을 시동하여 소프트웨어의 오동작 검출을 시동하는 단계; (B)상기 오동작 검출시스템의 제어부가 센싱부로부터 다수의 센싱정보를 수신하는 단계; (C)상기 제어부가 상기 다수의 센싱정보를 이진화 처리하는 단계; (D)상기 제어부가 머신 러닝 신경망을 이용하여 비교 학습하는 단계; (E)상기 제어부가 소프트웨어의 오동작이 발생한지 여부를 판단하는 단계; 및 (F)상기 제어부가 출력부를 통해 상기 소프트웨어의 오동작 발생 여부를 문자 또는 소리로 출력하는 단계;를 포함한다. A software malfunction detection method according to an embodiment of the present invention includes the steps of (A) starting a software malfunction detection system to start detecting software malfunction; (B) A control unit of the malfunction detection system receiving a plurality of sensing information from a sensing unit; (C) the control unit binarizing the plurality of sensing information; (D) the control unit compares and learns using a machine learning neural network; (E) the control unit determining whether a software malfunction has occurred; and (F) the control unit outputting text or sound to indicate whether a malfunction of the software has occurred through an output unit.

Description

이진화 이미지를 이용한 소프트웨어의 오동작 검출방법{Method of detecting software malfunction using Binary Image} Method of detecting software malfunction using Binary Image}

본 발명은 이진화 이미지를 이용한 소프트웨어의 오동작 검출방법에 관한 것으로, 특히 소프트웨어의 런타임 실행흐름에 따른 센싱 정보를 이진화 이미지로 형상화하고 머신 러닝 신경망을 이용하여 오동작을 검출하는 소프트웨어의 오동작 검출방법에 관한 것이다. The present invention relates to a method of detecting malfunction of software using a binarized image, and in particular, to a method of detecting malfunction of software that shapes sensing information according to the runtime execution flow of software into a binarized image and detects malfunction using a machine learning neural network. .

종래에 자율주행 자동차, 인공지능로봇, 무인기기 등에 스마트 전자시스템이 적용됨에 따라, 복잡한 소프트웨어의 세부 블록간 순차적 계측적 연동에 의해 동작하도록 개발되고 있다. As smart electronic systems are being applied to self-driving cars, artificial intelligence robots, unmanned devices, etc., they are being developed to operate through sequential measurement linkage between detailed blocks of complex software.

이러한 스마트 전자시스템에서 특정 부분의 소프트웨어가 오동작을 일으키는 경우에 원인 분석이 매우 어려워, 해당 블록의 코드 오류에도 원인이 있을 수 있으나 연결된 다른 모듈간의 상호 작용에서 오류가 발생하는 경우에 원인 분석이 상당히 어려우며 패치 작업에 상당한 시간이 소요되어, 수작업으로 작업하는 것에 한계가 있다. In these smart electronic systems, when a specific part of the software malfunctions, it is very difficult to analyze the cause. Code errors in the block may also be the cause, but when errors occur in interactions between other connected modules, it is very difficult to analyze the cause. Patch work takes a considerable amount of time, so there are limitations to doing it manually.

특히, 종래의 스마트 전자시스템은 복잡한 소프트웨어로 제어되면서, 정적 코드가 아닌 동적 코드 실행에서 유발되는 다양한 형태의 코드 오류 패턴이 존재한다. 이때, 이러한 모든 사례별로 검출 코드를 코드 자체로 정의하는 것은 개발 복잡도를 상승시키고, 검사 코드 삽입시 코드 메모리의 용량을 증가시켜야하는 문제점이 있다. In particular, while conventional smart electronic systems are controlled by complex software, there are various types of code error patterns caused by dynamic code execution rather than static code execution. At this time, defining the detection code as the code itself for each of these cases increases development complexity and has the problem of increasing the capacity of the code memory when inserting the inspection code.

특허문헌 : 등록특허공보 제 10-2088164호Patent Document: Registered Patent Publication No. 10-2088164

본 발명은 상기 문제점을 해소하기 위하여 안출된 것으로, 본 발명의 목적은 소프트웨어의 런타임 실행흐름에 따른 센싱 정보를 이진화 이미지로 형상화하고 머신 러닝 신경망을 이용하여 오동작을 검출하는 소프트웨어의 오동작 검출방법을 제공하는 데 있다. The present invention was created to solve the above problems, and the purpose of the present invention is to provide a software malfunction detection method that shapes sensing information according to the runtime execution flow of software into a binary image and detects malfunction using a machine learning neural network. There is something to do.

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법은 (A) 소프트웨어의 오동작 검출시스템을 시동하여 소프트웨어의 오동작 검출을 시동하는 단계; (B) 상기 오동작 검출시스템의 제어부가 센싱부로부터 다수의 센싱정보를 수신하는 단계; (C) 상기 제어부가 상기 다수의 센싱정보를 이진화(binarization) 처리하는 단계; (D) 상기 제어부가 머신 러닝 신경망을 이용하여 비교 학습하는 단계; (E) 상기 제어부가 소프트웨어의 오동작이 발생한지 여부를 판단하는 단계; 및 (F) 상기 제어부가 출력부를 통해 상기 소프트웨어의 오동작 발생 여부를 문자 또는 소리로 출력하는 단계;를 포함한다. A software malfunction detection method according to an embodiment of the present invention includes the steps of (A) starting a software malfunction detection system to start detecting software malfunctions; (B) a control unit of the malfunction detection system receiving a plurality of sensing information from a sensing unit; (C) the control unit binarizing the plurality of sensing information; (D) the control unit compares and learns using a machine learning neural network; (E) the control unit determining whether a software malfunction has occurred; and (F) the control unit outputting text or sound to indicate whether a malfunction of the software has occurred through an output unit.

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에서 상기 다수의 센싱정보는 프로그램 계수(program counter), 코드주소, 메모리 접근위치, CPU 레지스터(Rregisters), 메모리 사용량 및 변수 호출 중 어느 하나를 포함하는 것을 특징으로 한다. In the software malfunction detection method according to an embodiment of the present invention, the plurality of sensing information includes any one of program counter, code address, memory access location, CPU registers, memory usage, and variable call. It is characterized by

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에서 상기 (C)단계는 (C-1) 임계치(TH)에 관한 임계평면을 기준으로 상기 다수의 센싱정보 각각이 높은 부분을 1로 표시하고, 낮은 부분을 0으로 표시하는 단계; (C-2) 상기 1로 표시된 부분을 검은색의 픽셀로 표시하고, 상기 0으로 표시된 부분을 백색의 픽셀로 표시한 이진화된 이미지 행렬을 형성하는 단계; 및 (C-3) 상기 이진화된 이미지 행렬을 1차원 배열 이미지로 변환하는 단계;를 더 포함하는 것을 특징으로 한다. In the method for detecting malfunction of software according to an embodiment of the present invention, step (C) indicates (C-1) a portion where each of the plurality of sensing information is high based on a critical plane regarding the threshold value (TH) as 1, marking the low part as 0; (C-2) forming a binarized image matrix in which the portion marked as 1 is displayed with black pixels and the portion marked with 0 is displayed with white pixels; and (C-3) converting the binarized image matrix into a one-dimensional array image.

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에서 상기 (D)단계는 상기 1차원 배열 이미지 및 대응하는 정상 동작을 나타내는 1차원 배열 기준 이미지를 상기 머신 러닝 신경망에 함께 입력하여 비교 학습하는 것을 특징으로 한다. In the software malfunction detection method according to an embodiment of the present invention, step (D) involves inputting the one-dimensional array image and the corresponding one-dimensional array reference image representing normal operation into the machine learning neural network for comparative learning. Do it as

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에서 상기 (E)단계는 에러(error) 수치를 도출하고, 상기 에러 수치가 미리 설정된 오동작 기준 수치보다 높은지를 판단하여, 상기 오동작 발생 여부를 판단하는 것을 특징으로 한다. In the software malfunction detection method according to an embodiment of the present invention, step (E) derives an error value, determines whether the error value is higher than a preset malfunction reference value, and determines whether the malfunction has occurred. It is characterized by

본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다.The features and advantages of the present invention will become more apparent from the following detailed description based on the accompanying drawings.

이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이고, 사전적인 의미로 해석되어서는 아니 되며, 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합되는 의미와 개념으로 해석되어야만 한다. Prior to this, terms or words used in this specification and claims should not be interpreted in their usual, dictionary meaning, and the inventor should appropriately define the concept of the term in order to explain his or her invention in the best way. It must be interpreted with meaning and concept consistent with the technical idea of the present invention based on the principle that it can be done.

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법은 임계 평면을 사용하여 센싱 정보를 이진화된 이미지로 변환함으로써, 데이터 손실을 최소화하고 데이터 크기를 줄일 수 있으며, 소프트웨어의 오동작을 용이하게 검출할 수 있는 효과가 있다. The software malfunction detection method according to an embodiment of the present invention converts sensing information into a binarized image using a critical plane, thereby minimizing data loss and reducing data size, and easily detecting software malfunction. It works.

도 1은 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법이 적용되는 소프트웨어의 오동작 검출시스템의 구성도.
도 2는 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법의 순서도.
도 3은 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 입력되는 센싱 정보의 예시도.
도 4는 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 입력된 센싱 정보를 이진화하는 과정을 나타낸 예시도.
도 5는 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 입력된 센싱 정보를 이진화한 결과를 나타낸 예시도.
도 6은 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 소프트웨어의 오동작 검출과정을 나타낸 예시도.
1 is a configuration diagram of a software malfunction detection system to which a software malfunction detection method according to an embodiment of the present invention is applied.
Figure 2 is a flow chart of a method for detecting malfunction of software according to an embodiment of the present invention.
Figure 3 is an example of sensing information input according to a method for detecting malfunction of software according to an embodiment of the present invention.
Figure 4 is an example diagram showing the process of binarizing input sensing information according to a method for detecting malfunction of software according to an embodiment of the present invention.
Figure 5 is an example diagram showing the result of binarizing input sensing information according to a method for detecting malfunction of software according to an embodiment of the present invention.
Figure 6 is an example diagram showing a software malfunction detection process according to a software malfunction detection method according to an embodiment of the present invention.

본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되는 이하의 상세한 설명과 바람직한 실시예로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.The objectives, specific advantages and novel features of the present invention will become more apparent from the following detailed description and preferred embodiments taken in conjunction with the accompanying drawings. In this specification, when adding reference numbers to components in each drawing, it should be noted that identical components are given the same number as much as possible even if they are shown in different drawings. Additionally, terms such as first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. Additionally, in describing the present invention, if it is determined that a detailed description of related known technologies may unnecessarily obscure the gist of the present invention, the detailed description will be omitted.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법이 적용되는 소프트웨어의 오동작 검출시스템의 구성도이다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings. 1 is a configuration diagram of a software malfunction detection system to which a software malfunction detection method according to an embodiment of the present invention is applied.

본 발명의 실시예에 따른 소프트웨어의 오동작 검출시스템(10)은 도 1에 도시된 바와 같이 제어부(11), 메모리부(12), 센싱부(13) 및 출력부(14)를 포함한다. The software malfunction detection system 10 according to an embodiment of the present invention includes a control unit 11, a memory unit 12, a sensing unit 13, and an output unit 14, as shown in FIG. 1.

제어부(11)는 내부에 적어도 하나의 머신 러닝(machine learning) 신경망을 구비하고, 소프트웨어의 오동작 검출시스템의 전반적인 동작을 제어하되, 소프트웨어 실행시에 센싱부(13)를 통해 수신한 센싱 정보를 메모리부(12)에 저장된 기준 정보와 비교하여 소프트웨어의 오동작을 검출하는 과정을 제어한다. The control unit 11 has at least one machine learning neural network inside, controls the overall operation of the software malfunction detection system, and stores the sensing information received through the sensing unit 13 when the software is executed. The process of detecting software malfunction is controlled by comparing it with the reference information stored in the unit 12.

메모리부(12)는 제어부(11)에 연결되고, 스마트 전자시스템의 운영에 관한 다수의 소프트웨어, 오동작 검출을 위한 기준 정보, 센싱부(13)를 통해 수신한 센싱 정보 등을 저장한다. The memory unit 12 is connected to the control unit 11 and stores a number of software related to the operation of the smart electronic system, reference information for detecting malfunctions, and sensing information received through the sensing unit 13.

센싱부(13)는 제어부(11), 메모리부(12), 출력부(14) 및 시스템을 구성하는 다른 구성(도시하지 않음)에 각각 연결된 다수의 센서를 포함하고, 다수의 센서를 통해 소프트웨어 실행시의 센싱 정보를 수신하여 제어부(11)로 전달한다. 여기서, 센싱 정보는 소프트웨어의 실행시 시스템의 구성에서 검출되는 동작신호로서, 예컨대 메모리부(12)의 메모리 접근위치에 관한 스택 포인트(stack point)의 변동, 코드주소 변동, 메모리 사용량 변동, 변수 호출 변동 등을 포함한다. The sensing unit 13 includes a plurality of sensors each connected to the control unit 11, the memory unit 12, the output unit 14, and other components (not shown) constituting the system, and software is activated through the plurality of sensors. Sensing information during execution is received and transmitted to the control unit 11. Here, the sensing information is an operation signal detected in the system configuration when the software is executed, for example, a change in the stack point related to the memory access position of the memory unit 12, a change in the code address, a change in memory usage, and a variable call. Including changes, etc.

출력부(14)는 제어부(11)에 연결되어, 제어부(11)의 제어에 따라 소프트웨어의 오동작 여부를 문자로 디스플레이하거나 또는 소리로 알릴 수 있다. The output unit 14 is connected to the control unit 11 and, under the control of the control unit 11, can display text or sound to indicate whether the software is malfunctioning.

이와 같이 구성된 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법이 적용되는 소프트웨어의 오동작 검출시스템(10)은 제어부(11)가 소프트웨어 실행시에 센싱부(13)를 통해 수신한 센싱 정보를 이진화하고, 이진화된 센싱 이미지를 메모리부(12)에 저장된 기준 이진화 센싱 이미지와 함께 내부에 구비된 하나의 머신 러닝 신경망, 예컨대 LSVM(Linear Support Vector Machine)에 입력하고 비교 학습하여 소프트웨어의 오동작을 검출할 수 있다. In the software malfunction detection system 10 to which the software malfunction detection method according to the embodiment of the present invention configured as described above is applied, the control unit 11 binarizes the sensing information received through the sensing unit 13 when the software is executed. , malfunctions in the software can be detected by inputting the binarized sensing image, along with the standard binarized sensing image stored in the memory unit 12, into a machine learning neural network provided inside, such as LSVM (Linear Support Vector Machine), and comparing and learning. there is.

이하, 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 대해 도 2 내지 도 7을 참조하여 설명한다. 도 2는 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법의 순서도이고, 도 3은 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 입력되는 센싱 정보의 예시도이며, 도 4는 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 입력된 센싱 정보를 이진화하는 과정을 나타낸 예시도이며, 도 5는 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 입력된 센싱 정보를 이진화한 결과를 나타낸 예시도이며, 도 6은 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법에 따라 소프트웨어의 오동작 검출과정을 나타낸 예시도이다. Hereinafter, a method for detecting malfunction of software according to an embodiment of the present invention will be described with reference to FIGS. 2 to 7. Figure 2 is a flowchart of a method for detecting a software malfunction according to an embodiment of the present invention, Figure 3 is an example diagram of sensing information input according to a method for detecting a software malfunction according to an embodiment of the present invention, and Figure 4 is a flowchart of a method for detecting a software malfunction according to an embodiment of the present invention. It is an example diagram showing the process of binarizing the input sensing information according to the software malfunction detection method according to the embodiment of the present invention, and Figure 5 shows the binarization of the input sensing information according to the software malfunction detection method according to the embodiment of the present invention. This is an exemplary diagram showing the results, and Figure 6 is an exemplary diagram showing the software malfunction detection process according to the software malfunction detection method according to an embodiment of the present invention.

본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법은 먼저 도 1에 도시된 소프트웨어의 오동작 검출시스템(10)을 시동하여 소프트웨어의 오동작 검출을 시동한다(S210). The software malfunction detection method according to an embodiment of the present invention first starts the software malfunction detection system 10 shown in FIG. 1 to detect software malfunction (S210).

이에 따라, 제어부(11)는 센싱부(13)로부터 다수의 센싱정보를 수신한다(S220). Accordingly, the control unit 11 receives a plurality of sensing information from the sensing unit 13 (S220).

구체적으로, 제어부(11)는 스마트 전자시스템이 구동하여 소프트웨어를 실행함에 따라, 도 1에 도시된 소프트웨어의 오동작 검출시스템(10)을 시동하여 센싱부(13)에 포함된 다수의 센서를 통해 도 3에 도시된 바와 같이 센싱 정보, 즉 소프트웨어의 실행시에 나타나는 다양한 동작신호를 검출하여 시간에 따른 변동 그래프로 나타낸 센싱 정보를 수신할 수 있다. Specifically, as the smart electronic system runs and executes software, the control unit 11 starts the malfunction detection system 10 of the software shown in FIG. 1 and detects FIG. 1 through a plurality of sensors included in the sensing unit 13. As shown in Figure 3, sensing information, that is, sensing information expressed as a graph of changes over time, can be received by detecting various operation signals that appear when the software is executed.

이때, 동작신호는 예컨대 프로그램 계수(program counter), 코드주소, 메모리 접근위치, CPU 레지스터(Rregisters), 메모리 사용량, 변수 호출 등의 다양한 변수들의 신호를 포함한다. At this time, the operation signal includes signals of various variables such as program counter, code address, memory access location, CPU registers, memory usage, and variable call.

다수의 센싱정보를 수신한 후, 제어부(11)는 수신한 센싱정보를 이진화(binarization) 처리한다(S230). After receiving a plurality of sensing information, the control unit 11 binarizes the received sensing information (S230).

구체적으로, 제어부(11)는 도 4에 도시된 센싱 정보를 수신하고, 도 4에 도시된 임계치(TH)에 관한 임계평면(101)을 기준으로 수신한 센싱 정보를 변환한다. 즉, 제어부(11)는 아래의 [수학식 1]을 이용하여 제 1 센싱 정보(S1)에서 도 4에 도시된 임계치(TH)에 관한 임계평면(101)보다 높은 부분(S11,S12)을 1의 값을 갖도록 하고, 제 2 센싱 정보(S2)에서 도 4에 도시된 임계치(TH)에 관한 임계평면(101)보다 높은 부분(S21)을 1의 값을 갖도록 하며, 제 3 센싱 정보(S3)에서 도 4에 도시된 임계치(TH)에 관한 임계평면(101)보다 높은 부분(S31,S32)을 1의 값을 갖도록 하며, 이외의 임계평면(101)보다 낮은 부분은 0의 값을 갖도록 한다. Specifically, the control unit 11 receives the sensing information shown in FIG. 4 and converts the received sensing information based on the critical plane 101 regarding the threshold TH shown in FIG. 4. That is, the control unit 11 uses [Equation 1] below to select portions (S11, S12) that are higher than the critical plane 101 regarding the threshold (TH) shown in FIG. 4 in the first sensing information (S1). It is set to have a value of 1, and in the second sensing information (S2), the part (S21) higher than the critical plane 101 with respect to the threshold (TH) shown in FIG. 4 is set to have a value of 1, and the third sensing information (S2) is set to have a value of 1. In S3), the parts (S31, S32) higher than the critical plane 101 with respect to the threshold TH shown in FIG. 4 are set to have a value of 1, and the other parts lower than the critical plane 101 are set to have a value of 0. Let's have it.

여기서, R(x,y)는 이진화된 이미지 행렬을 나타내고, r(x,y)는 센싱 정보의 좌표를 나타내며, TH는 임계치를 나타낸다. Here, R(x,y) represents the binarized image matrix, r(x,y) represents the coordinates of the sensing information, and TH represents the threshold.

이때, 임계치(TH)는 스마트 전자시스템의 민감도, 센싱 정보의 개수, 센싱 정보의 안정성 등에 따라 미리 설정될 수 있다. At this time, the threshold (TH) may be set in advance according to the sensitivity of the smart electronic system, the number of sensing information, and the stability of the sensing information.

이렇게 이진화 처리된 센싱 정보는 도 5에 도시된 바와 같이 시간(t)의 행에 대해 열방향으로 이진화 처리된 센싱 정보(s1,s2,s3)를 표시하여, "Ⅰ"과 같이 1의 값은 검은색으로 픽셀을 표시하고 "Ⅱ"와 같이 0의 값은 백색으로 픽셀을 표시한 이진화된 이미지 행렬(200)을 형성할 수 있다. As shown in FIG. 5, the binarized sensing information displays the sensing information (s1, s2, s3) binarized in the column direction for the row at time (t), and the value of 1, such as "Ⅰ", is A binarized image matrix 200 may be formed in which pixels are displayed in black and pixels with a value of 0, such as "II", are displayed in white.

이렇게 이진화된 이미지 행렬(200)을 획득한 후, 제어부(11)는 아래의 [수학식 2]를 이용하여 이진화된 이미지 행렬(200)을 1차원 배열 이미지(200')로 변환한다. After obtaining the binarized image matrix 200, the control unit 11 converts the binarized image matrix 200 into a one-dimensional array image 200' using [Equation 2] below.

여기서, RP는 1차원 배열 이미지를 나타내고, R(x,y)는 이진화된 이미지 행렬을 나타낸다. Here, RP represents a one-dimensional array image, and R(x,y) represents a binarized image matrix.

1차원 배열 이미지(200')로 변환한 후, 제어부(11)는 1차원 배열 이미지(200')를 머신 러닝 신경망에 입력하고 비교 학습한다(S240). After converting the one-dimensional array image 200', the control unit 11 inputs the one-dimensional array image 200' into a machine learning neural network and compares and learns it (S240).

구체적으로, 제어부(11)는 도 6에 도시된 1차원 배열 이미지(200')를 획득하고, 획득한 1차원 배열 이미지(200')를 머신 러닝 신경망, 예컨대 LSVM(Linear Support Vector Machine) 신경망에 입력할 수 있다. 여기서, LSVM 신경망은 다른 신경망에 비해 상대적으로 용량이 작고 간단한 형태의 신경망으로 오동작 판단의 성능 효율성을 향상시킬 수 있다. 물론, LSVM 신경망 이외에 여타의 다른 머신 러닝 신경망을 사용할 수도 있다. Specifically, the control unit 11 acquires the one-dimensional array image 200' shown in FIG. 6, and applies the acquired one-dimensional array image 200' to a machine learning neural network, such as a Linear Support Vector Machine (LSVM) neural network. You can enter it. Here, the LSVM neural network is a simple neural network with a relatively small capacity compared to other neural networks, and can improve the performance efficiency of malfunction judgment. Of course, other machine learning neural networks can be used in addition to the LSVM neural network.

이에 제어부(11)는 도 6에 도시된 바와 같이 1차원 배열 이미지(200')를 대응하는 정상 동작을 나타내는 1차원 배열 기준 이미지(300)와 비교 학습할 수 있다. 여기서, 1차원 배열 기준 이미지(300)는 메모리부(12)에 오동작 검출을 위한 기준 정보에 포함되어 미리 저장된 상태에서 제어부(11)에 의해 선출되어 LSVM 신경망에 입력될 수 있다. Accordingly, the control unit 11 can learn by comparing the one-dimensional array image 200' with the one-dimensional array reference image 300 representing the corresponding normal operation, as shown in FIG. 6. Here, the one-dimensional array reference image 300 is included in the reference information for detecting malfunctions in the memory unit 12 and may be selected by the control unit 11 and input into the LSVM neural network.

이렇게 1차원 배열 이미지(200')와 1차원 배열 기준 이미지(300)를 비교 학습하여, 제어부(11)는 소프트웨어의 오동작이 발생한지 여부를 판단한다(S250). By comparing and learning the one-dimensional array image 200' and the one-dimensional array reference image 300, the control unit 11 determines whether a software malfunction has occurred (S250).

이때, 오동작 발생 여부의 판단은 LSVM 신경망에서 아래의 [수학식 3]을 이용하여 수행될 수 있다. At this time, determination of whether a malfunction has occurred can be performed using the LSVM neural network using [Equation 3] below.

여기서, RP는 1차원 배열 이미지(200')를 나타내고, td는 정상 동작을 나타내는 1차원 배열 기준 이미지(300)를 나타낸다. Here, RP represents the one-dimensional array image 200', and td represents the one-dimensional array reference image 300 indicating normal operation.

이러한 [수학식 3]을 이용한 오동작 발생 여부의 판단으로 3의 에러(error) 수치가 도출되고, 제어부(11)는 도출된 에러 수치가 미리 설정된 오동작 기준 수치보다 높은지를 판단하여 오동작 발생 여부를 판단할 수 있다. By determining whether a malfunction has occurred using [Equation 3], an error value of 3 is derived, and the control unit 11 determines whether a malfunction has occurred by determining whether the derived error value is higher than a preset malfunction standard value. can do.

예를 들어, 제어부(11)는 오동작 발생 여부의 판단으로 도출된 3의 에러 수치가 미리 설정된 1의 오동작 기준 수치보다 높으므로, 소프트웨어의 오동작이 발생한 것으로 판단할 수 있다. For example, the control unit 11 may determine that a software malfunction has occurred because the error value of 3 derived by determining whether a malfunction has occurred is higher than the preset malfunction reference value of 1.

이렇게 소프트웨어의 오동작 발생으로 판단함에 따라, 제어부(11)는 출력부(14)를 통해 소프트웨어의 오동작 발생을 문자로 디스플레이하거나 또는 소리로 알릴 수 있다(S260). As it is determined that a malfunction of the software has occurred, the control unit 11 can display the malfunction of the software in text or notify it with a sound through the output unit 14 (S260).

반면에, 오동작 발생 여부의 판단으로 도출된 에러 수치가 미리 설정된 오동작 기준 수치보다 낮으면, 제어부(11)는 센싱부(13)로부터 다수의 센싱정보를 수신하는 단계(S220)부터 다시 반복 수행한다. On the other hand, if the error value derived from the determination of whether a malfunction has occurred is lower than the preset malfunction reference value, the control unit 11 repeats the process again starting from the step (S220) of receiving a plurality of sensing information from the sensing unit 13. .

이와 같은 과정의 본 발명의 실시예에 따른 소프트웨어의 오동작 검출방법은 임계 평면(101)을 사용하여 센싱 정보를 이진화된 이미지로 변환함으로써, 데이터 손실을 최소화하고 데이터 크기를 줄일 수 있으며, 소프트웨어의 오동작을 용이하게 검출할 수 있다. The software malfunction detection method according to the embodiment of the present invention in this process converts the sensing information into a binarized image using the critical plane 101, thereby minimizing data loss and reducing the data size, and detecting malfunction of the software. can be easily detected.

본 발명의 기술사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 전술한 실시예들은 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. Although the technical idea of the present invention has been described in detail according to the above preferred embodiments, it should be noted that the above-described embodiments are for illustrative purposes only and are not intended for limitation.

또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위 내에서 다양한 실시가 가능함을 이해할 수 있을 것이다. Additionally, an expert in the technical field of the present invention will understand that various implementations are possible within the scope of the technical idea of the present invention.

10: 오동작 검출시스템 11: 제어부
12: 메모리부 13: 센싱부
14: 출력부 101: 임계 평면
200: 이진화된 이미지 행렬 200': 1차원 배열 이미지
300: 1차원 배열 기준 이미지
10: Malfunction detection system 11: Control unit
12: memory unit 13: sensing unit
14: output unit 101: critical plane
200: Binarized image matrix 200': One-dimensional array image
300: One-dimensional array reference image

Claims (5)

(A) 소프트웨어의 오동작 검출시스템을 시동하여 소프트웨어의 오동작 검출을 시동하는 단계;
(B) 상기 오동작 검출시스템의 제어부가 센싱부로부터 다수의 센싱정보를 수신하는 단계;
(C) 상기 제어부가 상기 다수의 센싱정보를 이진화(binarization) 처리하는 단계;
(D) 상기 제어부가 머신 러닝 신경망을 이용하여 비교 학습하는 단계;
(E) 상기 제어부가 소프트웨어의 오동작이 발생한지 여부를 판단하는 단계; 및
(F) 상기 제어부가 출력부를 통해 상기 소프트웨어의 오동작 발생 여부를 문자 또는 소리로 출력하는 단계;
를 포함하고,
상기 다수의 센싱정보는 프로그램 계수(program counter), 코드주소, 메모리 접근위치, CPU 레지스터(Registers), 메모리 사용량 및 변수 호출 중 어느 하나를 포함하는 것을 특징으로 하는 소프트웨어의 오동작 검출방법.
(A) starting the software malfunction detection system to detect software malfunction;
(B) a control unit of the malfunction detection system receiving a plurality of sensing information from a sensing unit;
(C) the control unit binarizing the plurality of sensing information;
(D) the control unit compares and learns using a machine learning neural network;
(E) the control unit determining whether a software malfunction has occurred; and
(F) the control unit outputting text or sound as to whether a malfunction of the software has occurred through an output unit;
Including,
A method of detecting malfunction of software, characterized in that the plurality of sensing information includes any one of program counter, code address, memory access location, CPU registers, memory usage, and variable call.
삭제delete 제 1 항에 있어서,
상기 (C)단계는
(C-1) 임계치(TH)에 관한 임계평면을 기준으로 상기 다수의 센싱정보 각각이 높은 부분을 1로 표시하고, 낮은 부분을 0으로 표시하는 단계;
(C-2) 상기 1로 표시된 부분을 검은색의 픽셀로 표시하고, 상기 0으로 표시된 부분을 백색의 픽셀로 표시한 이진화된 이미지 행렬을 형성하는 단계; 및
(C-3) 상기 이진화된 이미지 행렬을 1차원 배열 이미지로 변환하는 단계;
를 더 포함하는 것을 특징으로 하는 소프트웨어의 오동작 검출방법.
According to claim 1,
The step (C) is
(C-1) displaying a high part of each of the plurality of sensing information as 1 and a low part of each of the plurality of sensing information as 0 based on a critical plane regarding the threshold value (TH);
(C-2) forming a binarized image matrix in which the portion marked as 1 is displayed with black pixels and the portion marked with 0 is displayed with white pixels; and
(C-3) converting the binarized image matrix into a one-dimensional array image;
A software malfunction detection method further comprising:
제 3 항에 있어서,
상기 (D)단계는 상기 1차원 배열 이미지 및 대응하는 정상 동작을 나타내는 1차원 배열 기준 이미지를 상기 머신 러닝 신경망에 함께 입력하여 비교 학습하는 것을 특징으로 하는 소프트웨어의 오동작 검출방법.
According to claim 3,
The step (D) is a method of detecting malfunction of software, characterized in that the one-dimensional array image and the corresponding one-dimensional array reference image representing the normal operation are input together into the machine learning neural network for comparative learning.
제 1 항에 있어서,
상기 (E)단계는 에러(error) 수치를 도출하고, 상기 에러 수치가 미리 설정된 오동작 기준 수치보다 높은지를 판단하여, 상기 오동작 발생 여부를 판단하는 것을 특징으로 하는 소프트웨어의 오동작 검출방법.
According to claim 1,
The step (E) is a method of detecting malfunction of software, characterized in that it derives an error value, determines whether the error value is higher than a preset malfunction reference value, and determines whether the malfunction has occurred.
KR1020210178322A 2021-10-27 2021-12-14 Method of detecting software malfunction using Binary Image KR102592997B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210144432 2021-10-27
KR1020210144432 2021-10-27

Publications (2)

Publication Number Publication Date
KR20230060418A KR20230060418A (en) 2023-05-04
KR102592997B1 true KR102592997B1 (en) 2023-10-24

Family

ID=86379666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210178322A KR102592997B1 (en) 2021-10-27 2021-12-14 Method of detecting software malfunction using Binary Image

Country Status (1)

Country Link
KR (1) KR102592997B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268666A (en) * 2005-03-25 2006-10-05 Fujitsu Ltd Automatic test system with correction function, automatic test method, and program
US20130080843A1 (en) * 2011-09-23 2013-03-28 Fujitsu Limited Detecting Sensor Malfunctions Using Compression Analysis of Binary Decision Diagrams

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102030132B1 (en) * 2017-12-15 2019-10-08 서강대학교산학협력단 Malware detection system and method thereof
KR102088164B1 (en) 2019-08-27 2020-03-12 루나 주식회사 Method and apparatus for generating difference between old and new version of data for updating software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268666A (en) * 2005-03-25 2006-10-05 Fujitsu Ltd Automatic test system with correction function, automatic test method, and program
US20130080843A1 (en) * 2011-09-23 2013-03-28 Fujitsu Limited Detecting Sensor Malfunctions Using Compression Analysis of Binary Decision Diagrams

Also Published As

Publication number Publication date
KR20230060418A (en) 2023-05-04

Similar Documents

Publication Publication Date Title
KR101711882B1 (en) Method, device and terminal device for detecting a malicious vulnerability file
EP2713314A2 (en) Image processing device and image processing method
US4319331A (en) Curve follower
CN109688030B (en) Message detection method, device, equipment and storage medium
CN110197180B (en) Character defect detection method, device and equipment
CN112580734B (en) Target detection model training method, system, terminal equipment and storage medium
KR20190072074A (en) Malware detection system and method thereof
US5150425A (en) Character recognition method using correlation search
KR102592997B1 (en) Method of detecting software malfunction using Binary Image
CN113468905B (en) Graphic code identification method, graphic code identification device, computer equipment and storage medium
JP2018005500A (en) Image processing system, image processing method, and image processing program
JPH06282686A (en) Method for character recognition
JP7075057B2 (en) Image judgment device, image judgment method and image judgment program
CN114846513A (en) Motion analysis system and motion analysis program
KR102488049B1 (en) Automatic recognition system of text information based on deep learning model and automatic recognition method
US20180218231A1 (en) Image processing system, information processing device, information processing method, and information processing program
US11599827B2 (en) Method and apparatus for improving the robustness of a machine learning system
KR102662335B1 (en) System of detecting software abnormal operation using Comparative Neural Network Learning and method thereof
KR102022183B1 (en) Method for Acquiring Screen and Menu information using Artificial Intelligence
WO2018207481A1 (en) Automated inspection device
KR20230060407A (en) System of detecting software abnormal operation using Comparative Neural Network Learning and method thereof
CN111936942B (en) Method for controlling an actuator, computer system and computer program
CN116910758B (en) Malicious software detection method and device, electronic equipment, chip and storage medium
CN106446902A (en) Non-character image recognition method and device
CN116597237B (en) Belt start detection method, system, storage medium and computer

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant