KR101265099B1 - Software security processing method and storage medium - Google Patents

Software security processing method and storage medium Download PDF

Info

Publication number
KR101265099B1
KR101265099B1 KR20110058169A KR20110058169A KR101265099B1 KR 101265099 B1 KR101265099 B1 KR 101265099B1 KR 20110058169 A KR20110058169 A KR 20110058169A KR 20110058169 A KR20110058169 A KR 20110058169A KR 101265099 B1 KR101265099 B1 KR 101265099B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
obfuscation
step
code
processing method
security processing
Prior art date
Application number
KR20110058169A
Other languages
Korean (ko)
Other versions
KR20120138586A (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

본 발명은 소프트웨어 보안처리 방법에 대한 것이다. The present invention relates to software security processing method. 본 발명에 의한 소프트웨어 보안처리 방법은, 인터넷상에서 각종 서비스제공을 위한 프로그램의 원본코드를 작성하는 단계와; Software security processing method according to the present invention includes the steps of creating a source code of the program for the various services provided on the Internet, and; 상기 원본코드를 기계어 코드로 번역하는 단계와; And the step of translating the source code into machine code; 상기 기계어 코드 번역된 것의 특정부분을 마킹하는 단계와; A step of marking a certain part of what is the machine code translation; 상기 기계어코드로 번역된 것 자체에 대한 코드 난독화를 수행하며, 마킹이 이루어진 부분에 대하여는 타 부분에 대하여 차등을 두어 고도의 난독화 과정을 수행하는 난독화단계와; Obfuscation performing a code obfuscation for the translation itself that the machine accord, and the marking is carried out a high degree of obfuscation process of placing the differential with respect to the other part with respect to the formed portion; 난독화된 프로그램을 테스트하여 정상적인 서비스제공이 이루어질 수 있는지를 판단하는 테스트단계와; To determine whether the obfuscation program to test the normal service can be made with the test phase; 상기 테스트 단계에서 테스트가 완료된 난독화된 파일을 배포서버롤 전송하여 인터넷상에서 배포함으로써 인터넷상에서 서비스제공을 수행하는 단계를 포함하여 구성되는 것을 특징으로 한다. By testing the rolling distribution server transmits the complete file obfuscation in the test phase, it is characterized in that comprises the step of performing a service provider on the internet by distribution over the Internet.

Description

소프트웨어 보안 처리방법 및 기록매체{A Method For Software Security Treatment And A Storage Medium} Software security processing method and recording medium {A Method For Software Security Treatment And A Storage Medium}

본 발명은 소프트웨어 보안 처리방법에 대한 것으로, 더욱 상세하게는 서비스제공을 위한 원본 파일의 기계어 코드 자체에 대한 고도 난독화를 수행하여 서비스제공을 수행하여 악의의 제3자에 의한 원본파일의 획득과 분석을 사전에 차단하는 것이 가능하면서도 파일사이즈의 증가를 최소로 하여 서비스의 품질을 향상시키는 것을 가능케 하는 소프트웨어 보안처리방법 및 기록매체에 대한 것이다. The present invention relates to a software security processing method, and more particularly, to the acquisition of the source file by a third party altitude perform obfuscated by performing a service provider or by a malicious for machine code itself of the source files for service provision and analysis is for a while to be possible to block the advance to the minimum the increase of the file size and the software security processing method which enables to improve the quality of service, and a recording medium.

해커들은 보안의 취약점을 찾기 위하여 역공학(reverse engineering)이라는 기술을 적극 활용하여 소스코드 없이 원본 파일 즉, 윈도우의 실행파일을 직접 분석하여 프로그램이 어떤 기능를 수행하는지 파악하여 취약점을 찾게 된다. Hackers are finding vulnerabilities to leverage the technology of reverse engineering (reverse engineering) to find the vulnerabilities of the security that is the source files without source code, to directly analyze the executable file of the program window to determine if they are performing some Functionality.

경우에 따라 프로그램의 취약점이 분석되면 해커는 실행프로그램의 바이너리 코드를 수정하여 실행 프로그램의 제어흐름을 바꾸어 자신의 의도대로 실행 프로그램이 동작하도록 하기도 한다. If in some cases, the program vulnerability analysis of the hacker changed the flow of control executed programs by modifying the executable binary code of the program and also to run their programs work as intended.

예컨대, 해커는 인터넷뱅킹 공인인증서의 비밀번호 비교코드를 역공학으로 찾아서 해당루틴을 수정하여 비교부분을 건너뛰게 하면 공인인증서 비밀번호는 그 의미를 상실하게 된다. For example, if a hacker bypasses the comparison section to find the password code comparison of internet banking certificate reverse engineering to modify the routine certificate password, it loses its meaning. 한편, 공용 PC 보안 및 불법 소프트웨어 설치 방지를 위해 시스템 재부팅시 하드웨어를 리셋시키는 시스템 관리자의 모드 비밀번호 검사 루틴을 찾아 건너뛰게 하면 보안기능이 상실된다. On the other hand, if the jump to find a common PC security and system administrator mode password checking routines to reset the hardware when the system is rebooted for the installation to prevent illegal software is a loss of security.

이와 같은 해커들의 역공학에 의한 소프트웨어 분석 대응을 하기 위해 보안 전문가들은 실행프로그램의 소스코드를 알아보기 힘들게 하는 코드난독화(code obfuscation) 기술을 적용하고 있다. Such security experts to make the corresponding analysis software by reverse-engineering hackers are applying the code obfuscation (code obfuscation) technology to run hard to learn the source code of the program.

도 1은 일반적인 소프트웨어 난독화 전후의 상태를 예시한 도면이고, 도 2는 종래 소프트웨어 코드 난독화를 수행하는 소프트웨어 보안방법의 각 단계를 보여준다. 1 is a view showing the state before and after the normal software obfuscation, Figure 2 shows the steps of the software security method of performing a conventional software code obfuscation.

종래의 소프트웨어 코드 난독화는 실행파일의 원본코드가 기계어로 번역되어 있는 것을 디컴파일 하고(제1단계), 각 코드 블럭별로 암호화하고(제2단계), 다시 전체코드에 대한 암호화가 수행된다(제3단계). Conventional software code obfuscation is decompiled in that the source code of the executable file is translated into machine language, and (step 1), the encryption for each code block, and (step 2), the re-encryption is performed on the complete code ( a third step). 다시 암호화된 파일을 기계어로 번역하고(제4단계), 암호를 복호하는 복호화 실행 파일을 난독화하여(제5단계), 암호화된 원본파일과 난독화된 복호화 실행 파일을 함께 서비스 수여자에 온오프라인으로 배포한다(제6단계). Re-translate the encrypted file to the machine, and (fourth step), to obfuscate the decryption executable file for decoding the encryption (step 5), the number of services with the encrypted source file, and obfuscated decrypted executable woman on the distribute offline (step 6).

또한 도 2에 도시된 바와 같이 종래에는 개발자 컴퓨터(10)마다 난독화 프로그램 CD를 설치하고 난독화 시스템을 동작시켜서 난독화 및 테스트를 수행한 후에 난독화가 완료된 파일을 배포서버(20)로 전송하는 구성에 의하며, 따라서 난독화 프로그램 자체가 CD를 통하여 광범위하게 배포가 이루어질 수밖에 없었다. Also to be transmitted to the prior art, a developer computer 10 each obfuscated by installing the program CD and operating the obfuscation systems obfuscation and after performing a test deployment of obfuscation painter has completed the file server 20 as shown in FIG. uihamyeo configuration, so that the obfuscation program itself had to be made is widely distributed throughout the CD.

하지만 종래의 상기와 같은 구성의 소프트웨어 보안방법에는 다음과 같은 문제점이 있어왔다. However, the software security method of the same configuration as the prior art, there has been the following problems.

난독화 프로그램 CD의 광범위한 배포에 의하여 해커들에 의한 난독화 알고리즘이 거의 분석이 되기에 이르렀고, 실제 원본 프로그램 코드에 대해서는 난독화를 하지 않고 원본코드에 대해서는 암호화만 하므로 악의의 제 3자는 쉽게 원본코드를 암호화한 파일(즉 원본파일을 포함한 파일들을 서비스 제공시 기본으로 제공되는 것이므로) 온오프라인을 통하여 손쉽게 얻을 수 있게 된다는 문제점이 있다. Obfuscation algorithms have reached to be almost analysis for the actual source program code without obfuscation, because only the encryption for the source code for third party easily source code of the evil caused by hackers by the broad distribution of the obfuscated program CD encrypt a file, there is a problem that can be obtained easily through online and offline (ie when the service file, including the original file because it is provided by default). 이 경우 복호화를 수행하는 프로그램을 얻게 되면 원본파일은 고스란히 악의의 제 3자에게 원형 그대로 제공되어 버린다. In this case, if I get a program that performs a decoding, the original file is still intact prototype becomes available to a third party of evil. 특히 난독화 프로그램의 광범위한 배포에 의하여 역난독화 프로그램이 악의의 제3자들에 의하여 인터넷상에 상당히 배포되기에 이르렀다. Especially by third parties by the broad distribution station obfuscated malicious programs of obfuscation programs came to be fairly distributed on the Internet.

본 발명의 목적은, 서비스제공을 위한 원본소스의 기계어 코드 자체에 대한 고도 난독화를 수행하여 서비스제공에 이용함으로써 악의의 제3자에 의한 원본파일의 획득과 분석을 사전에 차단하는 것이 가능하면서도 파일사이즈의 증가를 최소로 하여 서비스의 품질을 향상시키는 것을 가능케 하는 소프트웨어 보안처리방법 및 기록매체를 구현하는 것이다. An object of the present invention, the use of by performing the high obfuscation for machine code itself of the original source for the service provider to the service provider but it is possible to block the acquisition and analysis of the source file by a third party malicious beforehand to implement a software security processing method and recording medium that makes it possible to increase the file size to a minimum to improve the quality of service.

상기 목적을 달성하기 위한 본 발명에 의한 소프트웨어 보안처리방법은, 인터넷상에서 각종 서비스제공을 위한 프로그램의 원본코드를 작성하는 단계와; The method comprising software security processing method according to the present invention for achieving the above object, creating a source code of the program for the various services provided on the Internet, and; 상기 원본코드를 기계어 코드로 번역하는 단계와; And the step of translating the source code into machine code; 상기 기계어 코드 번역된 것의 특정부분을 마킹하는 단계와; A step of marking a certain part of what is the machine code translation; 상기 기계어코드로 번역된 것 자체에 대한 코드 난독화를 수행하며, 마킹이 이루어진 부분에 대하여는 타 부분에 대하여 차등을 두어 고도의 난독화 과정을 수행하는 난독화단계와; Obfuscation performing a code obfuscation for the translation itself that the machine accord, and the marking is carried out a high degree of obfuscation process of placing the differential with respect to the other part with respect to the formed portion; 난독화된 프로그램을 테스트하여 정상적인 서비스제공이 이루어질 수 있는지를 판단하는 테스트단계와; To determine whether the obfuscation program to test the normal service can be made with the test phase; 상기 테스트 단계에서 테스트가 완료된 난독화된 파일을 배포서버롤 전송하여 인터넷상에서 배포함으로써 인터넷상에서 서비스제공을 수행하는 단계를 포함하여 구성되는 것을 특징으로 한다. By testing the rolling distribution server transmits the complete file obfuscation in the test phase, it is characterized in that comprises the step of performing a service provider on the internet by distribution over the Internet.

상기 목적을 달성하기 위한 본 발명에 의한 소프트웨어 보안처리방법은, 각종 서비스제공을 위한 프로그램의 원본코드를 작성하는 단계와; The method comprising software security processing method according to the present invention for achieving the above object, creating a source code of the program for the various services provided with; 상기 원본코드를 기계어 코드로 번역하는 단계와; And the step of translating the source code into machine code; 상기 기계어 코드로 번역된 것의 특정부분을 마킹하는 단계와; The step of marking a certain part of what is translated into the machine language codes; 상기 기계어코드로 번역된 것 자체에 코드 난독화를 수행하며, 마킹이 이루어진 부분에 대하여는 타부분에 대하여 차등을 두어 고도의 난독화 과정을 수행하는 난독화단계와; Obfuscation performing a code obfuscation in the translation itself that the machine accord, and the marking is carried out a high degree of obfuscation process of placing the differential with respect to the other part with respect to the formed portion; 난독화된 프로그램을 테스트하여 정상적인 서비스제공이 이루어질 수 있는지를 판단하는 테스트단계와; To determine whether the obfuscation program to test the normal service can be made with the test phase; 상기 테스트 단계에서 테스트가 완료된 난독화된 파일을 배포서버로 전송하는 단계를 포함하여 구성되는 것을 특징으로 한다. Is characterized in that comprises the step of transmitting the obfuscated file test is complete, in the test phase to the Distribution Server.

상기 고도의 난독화는, 해당부분에 대응하는 API 주소 숨기기 기능을 포함하는 것을 특징으로 한다. Obfuscation of the altitude is characterized in that it comprises an API address hiding function corresponding to the section.

상기 고도의 난독화는, 해당부분에 대응하는 IAT 테이블 파괴를 포함하는 것을 특징으로 한다. Obfuscation of the altitude is characterized in that it comprises a table IAT destroyed corresponding to the section.

상기 고도의 난독화는, 코드가상화에 의한 기계어 코드의 난분해를 포함하는 것을 특징으로 한다. Obfuscation of the height I of the machine language code by a code virtualization characterized in that it comprises the decomposition.

상기 난독화 단계에서는, 복수개의 암호화 알고리즘 중에서 사용자에 의하여 특정의 것을 선택하여 사용할 수 있도록 구성되는 것을 특징으로 한다. In the obfuscation step, it characterized in that the configuration by the user from among a plurality of cryptographic algorithms to be used to select that particular.

상기 목적을 달성하기 위한 본 발명에 의한 기록매체는, 상기 소프트웨어 보안처리방법의 각 단계를 컴퓨터 시스템상에서 수행하는 컴퓨터 프로그램을 기록한 것을 특징으로 한다. The recording medium according to the present invention for achieving the above object is characterized by storing a computer program for performing the steps of the software security processing method on a computer system.

본 발명은 상기와 같은 구성에 의하여 인터넷상에서 제공되는 서비스를 위한 원본파일 자체를 난독화하여 제공하므로, 악의의 제 3자에서 서비스를 위한 원본파일 자체가 확보되기 곤란하며, 원본파일은 고도의 난독화 방법에 의해 난독화를 하여 악의의 제3자에 의한 소프트웨어 분석 및 시스템에 대한 침입을 사전에 방지하는 것을 가능케 하면서도 주요정보를 포함함 부분에 대한 선별적 고도 난독화가 가능하므로 난독화에 대한 시스템의 부하를 최소로 하는 것이 가능해진다. The invention therefore provides the screen by the same configuration as the obfuscated the source file itself, for service provided on the Internet, it is difficult to become a source for the service from a third party malicious file itself secure, the original file is high obfuscation of system for obfuscation and because of the malicious third party software analysis and makes it possible to prevent entry to the system in advance but can be selectively highly obfuscation for bin areas including key information painter according to the obfuscated by a screen method to the load to a minimum possible.

도 1은 일반적인 소스코드 난독화의 이전과 난독화 이후 상태를 예시한 개요도. Figure 1 is a schematic illustrating the before and after state of obfuscation common source code obfuscation.
도 2는 종래의 코드 난독화 과정을 예시한 흐름도. Figure 2 is a flow chart illustrating a conventional code obfuscation process.
도 3a는 본 발명의 일 실시예의 소프트웨어 보안처리 시스템의 바람직한 실시예의 구성을 예시한 개요도. Figure 3a is a schematic diagram illustrating a preferred embodiment of the software configuration of a secure processing system in one embodiment of the present invention.
도 3b는 본 발명의 실시예의 소프트웨어 보안처리 방법의 각 단계를 예시한 흐름도. Figure 3b is a flow chart illustrating the steps of an exemplary software security processing method of the present invention.
도 4는 본 발명의 일 실시예의 소프트웨어 보안처리 시스템의 바람직한 실시예의 구성을 예시한 개요도. Figure 4 is a schematic illustrating a preferred embodiment of the software configuration of a secure processing system in one embodiment of the present invention.
도 5는 본 발명의 실시예의 난독화장치의 구성을 예시한 개요도. Figure 5 is a schematic view illustrating the configuration of a device obfuscation embodiment of the present invention.
도 6은 본 발명의 실시예의 난독화장치에 의하여 난독화된 실행파일에 구현된 기능을 예시한 도표. Figure 6 illustrates the functions implemented in the obfuscated obfuscation executable by example apparatus embodiment of the invention Figure.
도 7a는 본 발명의 실시예의 난독화장치에 의하여 코드 가상화에 의한 난독화 전후 상태를 예시한 개요도. Figure 7a is a schematic diagram illustrating a state before and after the obfuscated code according to the virtualized by example obfuscation unit embodiment of the present invention.
도 7b는 본 발명의 실시예의 난독화장치에 의하여 코드 가상화에 의한 난독화 전후 상태를 예시한 개요도. Figure 7b is a schematic diagram illustrating a state before and after the obfuscated code according to the virtualized by example obfuscation unit embodiment of the present invention.
도 8은 본 발명의 실시예의 난독화장치의 장치보안수단의 동작상태를 예시한 흐름도. Figure 8 is a flow chart illustrating the operating state of the device security means of an obfuscation unit of the present invention.

이하 상기와 같은 구성을 갖는 본 발명에 의한 소프트웨어 보안처리 방법 및 기록매체의 바람직한 실시예의 구성을 첨부된 도면을 참조하여 상세하게 설명한다. Reference to the accompanying drawings, a preferred embodiment of a software security processing method and recording medium according to the present invention having a configuration as above will be described in detail below.

도 3a 및 도 3b에서, 본 발명의 실시예의 소프트웨어 보안처리 방법을 수행하는 소프트웨어 보안처리 시스템은, 소스 코딩이 수행되는 개발자 컴퓨터(110)와, 코드 난독화를 수행하는 난독화장치(120)와, 각 개발자 컴퓨터(110)로부터 소스 코딩이 완료된 파일을 수집하여 상기 난독화장치(120)로 입력하며 상기 난독화 장치(120)에서 난독화 완료된 파일을 수신하는 보안관리서버(130)와, 난독화 완료된 파일을 수신하며 난독화 완료된 파일에 대한 테스팅이 수행되는 테스팅서버(160)와, 테스트가 완료된 소프트웨어를 클라이언트에 배포하는 배포서버(180)를 포함하여 구성된다. In Fig 3a and 3b, software security processing system for performing an embodiment software security processing method of the present invention, the developer computer 110 to which the source coding is carried out, the obfuscation unit 120 for performing a code obfuscation , and a security management server 130, which collects the file, the source code is completed from each of the developer computer 110 and input to the obfuscation unit 120 receives the obfuscated complete file from the obfuscation unit 120, the obfuscation receiving a screen file is complete, and is configured to include the testing server 160, a distribution server 180 distributing the test is complete, the client software that testing is performed on the obfuscation complete file.

본 실시예의 개발자 컴퓨터(110)에서는 소스 코딩을 수행하며, 이를 기계어로 전환을 하여 보안관리서버(130)로 전송한다. In this embodiment, the developer computer 110 performs the source coding, to convert it to the machine and transmits it to the security management server 130. 이때, 해당 프로그램이 EXE, DLL, OCX, BPL 등 32Bit 실행파일인 경우에 기계어에서 외부에 노출되서는 안되는 중요한 부분 즉 고도의 난독화를 필요로 하는 부분을 마킹하여 보안관리 서버로 전송한다(도 7a 및 도 7b 참조). At this time, the program is transferred to the EXE, DLL, OCX, BPL, etc. doeseo in the machine when the 32Bit executable exposed to the outside by marking the parts that require a significant portion that is highly obfuscation of should not security management server (Fig. 7a and FIG. 7b).

이 경우 마킹은 난독화장치(120)에서 식별가능한 방식과 수단에 의해 행해지며, 마킹의 방식과 수단에 따라 난독화의 종류와 정도를 차등화할 수 있도록 설정하는 것이 가능하며, 실시예에 따른 변형이 있을 수 있다. In this case, marking is modified in accordance with an embodiment is possible, and to set to differentiate the type and degree of obfuscation in accordance with the methods and means of the done by the identifiable manner and means in the obfuscation unit 120, a marking This can be.

본 실시예에서 개발자 컴퓨터(110), 보안관리 서버(130), 난독화장치(120) 테스팅서버(160) 및 배포서버(180)는 TCP/IP 프로토콜 소켓통신에 의하여 파일 송수신이 이루어질 수 있으며, 예컨대 소켓은 본 실시예의 보안시스템에서 제공되는 DLL 파일에 의해서만 난독화장치(120)에 접근 가능하며 보안관리서버(130)와 난독화장치(120)는 오직 난독화대상 파일 및 난독화가 완료된 파일의 교환만이 가능하도록 구성되며, 네트워크에서 난독화장치(120)에 대한 다른 목적의 접근은 불가하도록 난독화장치(120)의 시스템 세팅이 이루어진다. In this embodiment, the developer computer 110 and the security management server 130, the obfuscation unit 120, the testing server 160 and distribution server 180 may be a file transfer by the TCP / IP protocol, a socket communication, for example, the socket is accessible to the obfuscation unit 120 only by the DLL file to be provided by the example security system of the present embodiment, and the security management server 130 and the obfuscation unit 120 is only obfuscated object file and obfuscation painter complete file being arranged to enable only the exchange, access to another object of the obfuscation unit 120 in the network is made to the system settings of the obfuscation unit 120 is not possible.

본 발명의 실시예의 보안관리서버(130)는 네트워크 내 다수의 개발자 컴퓨터(110)에 연결되어 소스코딩 및 기계어번역이 된 파일을 수신하여 이를 난독화장치(120)로 입력하며, 난독화가 완료된 파일을 난독화장치(120)로부터 반환받으며, 반환받은 파일을 테스팅서버(160)로 입력하여 정상동작여부에 대한 테스팅이 수행되게 할 수 있다. Embodiment of the security management server 130 of the present invention is connected to a plurality of developer computer 110, the network receives a source code and machine code of the translation file type it to the obfuscation unit 120, a file obfuscation painter has completed It receives the return from the obfuscation unit 120, may be input to the received file return to the testing server 160 to perform the testing of whether the normal operation.

또한, 보안관리서버(130)는 테스팅 서버(160)로부터 난독화 및 테스팅 완료된 파일을 수신하여 배포서버(180)로 전송하며, 수정/보완이 필요한 파일은 해당 개발자 컴퓨터(110)로 반환한다. In addition, the security management server 130 transmits to the testing server 160 is obfuscated and testing to receive a file distribution server 180 is completed from the file to be modified / complementary required is returned to the developer computer 110.

도 4에 도시된 바와 같이, 본 발명의 다른 실시예에서는 난독화장치(120)에서 반환받은 난독화 완료된 파일 테스팅이 직접 보안관리서버(130)에서 수행되도록 구성되는 것이 가능하며, 보안관리서버(130)는 난독화 및 테스팅이 완료된 파일을 직접 배포서버(180)로 전송하는 구성에 의할 수 있다. As shown in Figure 4, in another embodiment of the invention, and can be configured to be performed in the obfuscation unit 120 obfuscation complete file testing a direct security management server 130 receives the return from the security management server ( 130) can be of the obfuscation and configured to test the transmission of the completed file to direct the distribution server 180. the

또한, 본 발명의 또 다른 실시예에서는 네트워크상에서 개발자 컴퓨터(110)와 난독화장치(120)가 소켓통신에 의하여 연결되어 있으며, 개발자 컴퓨터(110)에서 소스코딩 및 기계어번역과 마킹이 이루어진 난독화대상 파일은 시스템에서 제공하는 dll 파일에 의하여 난독화장치(120)로 전달되며, 난독화장치(120)는 난독화가 완료된 파일을 해당 개발자컴퓨터(110)나 테스팅서버(160)로 전달하여 테스팅이 이루어지고 다시 배포서버(180)로 전달되는 구성에 의할 수 있다. In yet another embodiment, and the developer computer 110 and the obfuscation unit 120 on the network it is connected by a socket communication, obfuscated in the developer computer 110 consisting of the source code and machine code translation and the marking of the present invention target file is the testing are delivered to the obfuscation unit 120 by dll file provided by the system, by passing the obfuscation unit 120 includes a file obfuscation upset completed by the developer computer 110 and the testing server 160 It made and may be of a configuration that is passed back to the distribution server 180. the

본 발명의 실시예의 보안관리서버(130)와 난독화장치(120)는 보안이 유지될 수 있는 내부망에 위치하는 것이 바람직하다. Embodiment of the security management server 130 and the obfuscation unit 120 of the present invention is preferably located in the internal network which can be secured.

본 실시예의 난독화장치(120) 소켓은 보안시스템에서 제공된 DLL 파일을 통하여 보안관리서버(130), 테스팅서버(160) 또는 개발자 컴퓨터(110)와 통신을 하며 난독화 대상 파일을 수신하거나 난독화 완료파일을 송신한다. Of this embodiment obfuscation unit 120, the socket receives the security management server 130, the testing server 160 or the developer computer 110 and the communication to and obfuscation target file via a DLL file that is provided in a security system, or obfuscated and transmits completed files.

도 5에서 본 실시예의 난독화장치(120)는, 메인 프로세서(121)와, 자체보안수단(122) 및 난독화프로그램(123)을 저장하는 저장장치(125)와, 난독화 대상 파일 및 난독화 완료된 파일을 저장하는 데이터베이스(126)와, 보안관리서버와의 소켓통신을 위한 통신수단(127)과, 난독화프로그램 수정 또는 업데이트를 위한 데이터입출력수단(128) 및 디스플레이수단(129)을 포함한다. Also this embodiment obfuscation unit 120 at 5, the main processor 121, with its own security means 122 and the obfuscated program 123, the storage device 125 to store, obfuscated object file and obfuscation It includes a flower complete communication means 127 and obfuscated data input means for the program edit or update 128 and display means 129 for socket communication with the database 126, and a security management server for storing the file do.

본 실시예의 자체 보안수단(122)은 상기 난독화장치(120)에 내장된 내부 파일시스템에 권한 없는 제 3자의 접근을 사전 차단하는 프로그램보안수단(122a)과, 상기 난독화 프로그램이 내장된 하드디스크를 떼내어 다른 장치에서 실행시키는 경우에 그 하드디스크에 저장된 난독화 프로그램을 포함한 파일시스템을 깨뜨리고 해당 하드디스크를 포맷하는 장치보안수단(122b)을 포함한다. This embodiment own security device 122 is program security means (122a) and the obfuscated program is built-in hard to pre-block the first access third party without authorization within a file system built in the obfuscation unit 120 breaking the file system, including the obfuscated program stored in the hard disk in case of a disk ttenae control run on a different device comprises a security device means (122b) to format the hard disk.

본 실시예의 난독화장치(120)의 프로그램보안수단(122a)은, 고도의 보안알고리즘에 의해 생성된 암호에 의하여만 난독화장치(120)에의 접근이 가능하므로 난독화장치 관리자 이외에는 난독화장치(120)에 대한 어떠한 조작도 불가하며, 파일시스템에 대한 역공학 등에 의한 접근시 난독화 장치(120)는 서비스를 거부하며 경우에 따라 시스템을 재부팅하거나 파일시스템을 삭제하는 등의 동작을 수행할 수 있다. Program security means (122a) of the present embodiment, obfuscation unit 120, so only by a password generated by the security algorithm of the height accessible to the obfuscation unit 120 other than the obfuscation device manager obfuscation unit ( not perform any operation for a 120) and is accessible when obfuscation unit 120 due to reverse-engineering for the file system is to reboot the system in some cases, deny service or perform some action, such as deleting a file system have.

한편, 본 발명의 실시예에서 장치보안수단(122b)은 물리적인 분해에 의해 난독화장치(120)의 저장장치(인 하드디스크를 꺼내어 제3의 장치에서 동작시키는 경우 기존 난독화장치의 CPU 및 네트워크 카드를 포함한 구성요소 하드웨어들의 고유번호와 개발자 고유의 알고리즘 및 보안표에 의해 장치를 식별하게 되므로 원래의 장치 이외의 제 3의 장치에서는 하드디스크를 동작시키는 것 자체가 불가능하도록 구현된다. On the other hand, the existing obfuscation unit when an embodiment the device security means (122b) in the present invention is taken out of the storage device (the hard disk in the obfuscation unit 120 by the physical decomposition behavior in the third unit CPU and therefore identifies the device by the hardware components of the unique number and the unique algorithm, and the developer of the security table containing the network card is implemented in other than the original device, the third device is itself of operating a hard disk that can not.

예컨대, 도 8에 도시된 바와 같이 하드웨어를 동작시키는 경우 1차적으로, 동작시키는 시스템의 CPU 고유번호 및 네트워크 카드 등의 하드웨어들의 고유번호로부터 시스템의 키 값(Key value)을 생성하며, 이를 하드웨어에 설치된 소프트웨어 보안처리 시스템 프로그램 설치본의 키 값과 비교하여 같은 경우에만 서비스가 개시될 수 있다(제60단계 내지 제63단계). For example, primarily the case of the operation of hardware as shown in Figure 8, and from the hardware of the serial number of the system's CPU serial number and the network card or the like to operate to generate the key value (Key value) of the system, which in the hardware installed software security system processing program may be installed for the service to start only when such compared to the key value of the present (the step 60 to step 63).

또한, 해당 키 값에 대응하는 권한 그룹 데이터 값(Admin Group Data Value) 및 권한 사용자 데이터 값(Admin User Data Value)을 저장하며, 권한 그룹의 변경이나 유저 권한에 대한 정보 변경을 감시하며, 변경이 발생하여 상기 저장한 값과 불일치가 발생하는 경우에는 시스템 침입 대응시스템을 구동한다(제64단계 내지 제80단계). Also, store the authorized group of data values ​​(Admin Group Data Value), and the rights that the user data value (Admin User Data Value) corresponding to the key value, and monitors the change information for the authorized group change or user rights, changes the If that occurs and the stored value and a mismatch occurs, it drives the intrusion response system (the step 64 to the step 80). 예컨대, 해당 서비스를 종료하고, 하드디스크의 모든 파일시스템을 삭제하며, 시스템을 재부팅하게 된다. For example, shut down the service, and to delete all the file system on your hard disk, and to reboot the system. 또한, 파일시스템을 삭제하기 이전에 파일시스템을 파괴하여 파일시스템의 복원을 방지함으로써 권한 없는 제 3자에 의하여 하드디스크의 보안알고리즘 및 난독화 프로그램에 대한 접근을 사전에 차단한다(제81단계 내지 제83단계). In addition, blocks the access of the security algorithm on the hard disk by the third party to destroy the file system prior to delete the file system without permission by preventing restoration of the file system and the obfuscated program in advance (the 81st step to step 83).

도 6에 도시된 바와 같이, 본 실시예의 난독화 장치(120)에는 기계어코드에 대한 난독화를 수행하는 난독화수단이 구비되며, 본 실시예의 난독화수단은 난독화된 실행파일에 대하여 원본코드 추적방해기능과, 안티디버깅기능, 안티패치기능, 암호화기능 등을 부가하도록 하기 위한 난독화 프로그램을 구비하며, 상기 난독화 프로그램에 의해 난독화를 거친 파일에 대한 제3자의 역공학 등 부당한 접근시에는 난독화에 의해 구현된 상기 기능들에 의하여 제 3자의 시스템 해독을 사전에 방지하므로 강화된 소프트웨어 보안을 유지할 수 있게 된다. 6, the present embodiment obfuscation unit 120 is equipped the obfuscation means for performing obfuscation of the machine accord, this embodiment obfuscation means is source code for the obfuscated executables tracking disturbance function and, anti-debugging features, anti patches, further comprising the obfuscated program to be added to such encryption, when the improper access, such as a third party reverse-engineering for a rough file the obfuscated by the obfuscated program There prevent a third party system decrypted by the above function is implemented by the obfuscated in advance because it is possible to maintain the enhanced security software.

예컨대, 본 실시예에서 원본코드 추적방해기능은, API(Application Programming Interface, 이하 동일) 래퍼(Wrapper) 기능과, API 주소 숨기기, IAT(Import Address Table) 테이블 파괴, Flow 수정기능을 포함한다. For example, source code tracking interrupt feature in this embodiment, includes an API (Application Programming Interface, hereinafter the same), the wrapper (Wrapper) function and, API address hiding, IAT (Import Address Table) table destruction, Flow correction.

본 실시예에서 API 래퍼(Wrapper) 기능은 디버거를 통한 분석 및 추적을 어렵게 만들기 위해 정상 API 코드에 여러 가지 더미코드를 삽입하는 것을 의미한다. API wrapper (Wrapper) functions in this embodiment are means for inserting a number of dummy code to the normal code API to make it difficult to analyze and track via the debugger. API 주소 숨기기는 디버거가 메모리에 존재하는 주소값 중 윈도우 API를 가르키는 경우 문자열값으로 치환해서 코드 분석을 용이하게 할 수 있기 때문에 디버거가 아예 주소를 인식하지 못하도록 주소값을 변경해버리는 것을 의미한다. The API address Hide means that the debugger will discard change the address to prevent the debugger to recognize the even address because it can facilitate case pointing to the Windows API of the address value present in the memory code analysis by replacing a string value.

IAT 테이블 파괴는 디스어셈블을 통한 역추적이 불가능하도록 디스어셈블러가 윈도우 API를 찾기 위해 참조하는 IAT 테이블을 파괴시킴으로써 윈도우 API를 찾을 수 없게 하는 것을 의미한다. The IAT table destructive means to become a disassembler to disassemble impossible backtracking through the Windows API can be found by destroying the IAT table to reference in order to find the Windows API. Flow 수정기능은 코드분석을 어렵게 하기 위해 실행 코드의 흐름을 변경하여 간단한 코드의 흐름도 복잡하게 수정하는 것을 의미한다. Flow correction means for modifying the complex flow diagram of a simple code, by changing the flow of the executed code to the code analysis difficult.

본 실시예에서 안티디버깅기능은, 디버거를 통한 소프트웨어 분석을 차단하기 위해 각종 디버거 툴의 동작자체를 감지 및 차단하는 디버거탐지기능, 모니터링 도구를 통한 소프트웨어 분석 차단을 위한 모니터링 도구 탐지기능, 가상환경에서 소프트웨어를 복사한 후, 구동하여 분석하는 행위를 감지 및 차단하는 가상환경 탐지기능을 포함한다. Anti-debugging features, in this embodiment, debugger detection capability to detect and block the behavior itself of various debugger tools for combating software analysis through the debugger, and monitoring tools for software analysis blocked by a monitoring tool detection, in a virtual environment after copying the software, including virtual environments detection feature that detects and blocks the action of driving analysis.

본 실시예의 안티패치기능은 소프트웨어 제품을 구성하는 각종 파일들을 수정하여 제품의 보안기능을 우회하는 것을 차단하기 위해 파일 변형 유무 인지를 수행하는 파일변형 검사와, 실행된 소프트웨어의 메모리를 해킹하여 코드의 실행 구조를 변경하는 행위 감지를 하는 메모리 변형검사를 포함한다. In this embodiment anti-patched function of file modification tests and, to crack the memory of a running software code that performs that the file variations presence to block to bypass the security functions of the product, by modifying the various files that make up the software product a memory strain test to detect the behavior of changing the run structure.

본 실시예의 암호화기능은 소프트웨어의 코드영역을 암호화하여 디스어셈블을 통한 역추적을 사전에 차단할 수 있도록 하는 암호기능을 의미하며, AES, ARIA등의 다양한 알고리즘을 탑재하며, 사용자가 원하는 알고리즘을 선택할 수 있도록 구성된다. Cases encryption of this embodiment means a password function which allows to block the traceback through the disassembled by encrypting the code area of ​​the software in advance and, and with a variety of algorithms, such as AES, ARIA, the user can select the desired algorithm It is configured to allow.

한편, 본 실시예의 난독화장치는, 소프트웨어 난독화의 다양한 기존 기술 예컨대, 구획난독, 데이터 난독, 집합난독, 제어난독 등의 난독화 기법을 구비하고 있어서 더미코드를 삽입하거나, 가변코드를 생성하거나, 제어흐름을 변환시키고, 코드를 가상화시키는 등의 방식으로 실행파일을 난독화한다. On the other hand, this embodiment obfuscation cosmetic value, a variety of conventional techniques, for example, compartment obfuscation, data obfuscation, a set of software obfuscation having the obfuscation techniques such as obfuscation, control obfuscation, and in inserting a dummy code, generate a variable code, or converting the control flow, and obfuscate the executable in a manner such as to screen the virtual code.

또한, 본 실시예의 난독화장치(120)은 상기 개발자 컴퓨터에서 개발자가 마킹한 기계어의 특정부분에 대하여는 코드 가상화 및 고유의 특수코드에 의한 고도의 난독화 과정을 추가로 수행한다. Further, the obfuscation unit 120 of this embodiment is carried out by adding a high level of obfuscation process by the virtualization code and a unique special codes with respect to a specific part of the machine developer marking in the developer computer.

예컨대, 도 7a, 도 7b에 도시된 바와 같이 개발자에 의해 마킹된 영역의 기계어 부분은 해당 장치 또는 업체에 고유한 특수코드로 구성된 명령어들로 변환시키며, 이를 해석할 수 있는 가상 CPU를 구성하며, 경우에 따라 다수개의 가상 CPU에 의하여 구성을 하여 해커가 특수코드 및 가상 CPU의 전체 의미를 분석하기 전에는 프로그램의 해독 자체가 불가하도록 구성되므로, 해커의 시스템 분석을 매우 곤란하게 하며 해커에 의한 공격을 사전에 차단할 수 있게 된다. For example, the machine parts of the marked region by the developer, as shown in Figure 7a, Figure 7b is sikimyeo converted into commands consisting of a special code that is unique to that device, or business, and configuring a virtual CPU that can interpret them, If so the configuration by a number of virtual CPU, depending on the hacker special code, and before analyzing the full meaning of the virtual CPU configured to decrypt the program itself to be impossible, and it is very difficult for a hacker's system analyzes the attacks by hackers it is possible to prevent in advance.

한편, 본 발명의 바람직한 일 실시예에서는 난독화장치(120)에 내장되는 난독화 프로그램들은 권한 없는 제 3자의 무단 접근에 대응하여 상기 난독화 프로그램에 의해 난독화된 실행파일에 구현된 것과 동일한 난독화 기법 및 기능들에 의하여 난독화 처리가 되는 것이 가능하다. On the other hand, in an embodiment of the present invention obfuscated program that is embedded in the obfuscation unit 120 are the same obfuscation as those implemented in the executable obfuscated by the obfuscated program in response to the unauthorized access party unauthorized third by the technique and functional it is possible that the obfuscation process.

다음은 상기와 같은 구성을 갖는 본 발명의 실시예의 소프트웨어 보안처리 시스템에 의해 수행되는 소프트웨어 보안처리 방법의 각 단계를 도 3b를 참조하여 설명한다. It will now be described with reference to Figure 3b each step in the software security process performed by the embodiment of the security software processing system of the method of the present invention having the configuration as described above.

본 실시예의 난독화장치(120)가 네트워크 내부망에 대한 설치가 이루어지면, 난독화장치(120)에 의해 수행되는 난독화의 종류와 순서에 대한 최종세팅이 이루어지며, 이 과정은 해당 난독화장치(120)에 대하여 난독화되는 실행파일의 보안정책 및 실행파일의 실행속도 보장을 위해 적절한 난독화 방식·회수·순서 등의 조합을 정하게 되며, 이에 의해 난독화의 난이도가 결정되게 된다. Example obfuscation unit 120 of this embodiment is when done, the installation of the network, internal network, the last settings for the type and order of the obfuscation performed by the obfuscation unit 120 is made, the process is screen the obfuscation tenderly the combination of proper obfuscated manner, collection and run speed in order to ensure the security policy and the execution file of the obfuscated executable file for the device 120 and, whereby the difficulty level of obfuscation is to be determined.

사용자 컴퓨터(110)에서는 온오프라인 서비스 제공을 위한 원본코드에 대한 코딩이 이루어지며, 사용자에 의한 원본코드의 작성 및 테스팅이 완료되면 해당 원본코드는 기계어로 번역이 된다(제50단계,제51단계). The user computer 110 is made to code for the source code for the entire off-line service provider, when the creation and testing is completed, the source code by a user, the source code is translated into machine code (operation 50, claim 51 step ).

본 실시예의 사용자 컴퓨터(110)에서는 원본코드의 내용이 외부에 유출되면 안되는 범위를 설정하여 본 실시예의 소프트웨어 보안처리 시스템에서 제공하는 방식에 따라 해당 범위에 대한 마킹을 수행한다. In the example user computer 110 of this embodiment performs a marking for the range in accordance with the method provided by the information, the present embodiment sets the range should not leak to the outside when the example security software processing system of the source code. 한편, 본 발명의 바람직한 실시예에서 마킹의 방식과 종류를 달리하는 것에 의하여 난독화의 정도를 달리할 수 있도록 구성되는 것도 가능하다(제53단계). On the other hand, it can be configured to be able to vary the degree of obfuscation by being different in type and manner of marking the preferred embodiment of the present invention (step 53).

본 실시예의 사용자 컴퓨터(110)에서 작성된 실행파일에 대한 기계어번역 및 마킹이 완료된 파일은 네트워크 소켓을 통하여 보안관리서버(130)로 입력된다. Files are machine language translation, and marking for the executable file created by the example user computer 110 of this embodiment is completed is input to the security management server 130 via the network socket.

본 실시예의 보안관리서버(130)는 각 사용자컴퓨터(120)로부터 난독화 대상 파일을 수집하며, 소프트웨어 보안처리 시스템에서 제공되는 dll 파일을 통하여 난독화장치(120)로 난독화 대상 파일을 전달한다(제53단계). Example security management server 130 of the present embodiment collects the obfuscation target file from each of the user computer 120, passes the obfuscated object file as obfuscation unit 120 via the dll file provided by the software security processing system (step 53).

난독화장치(120)는 보안관리서버(130)로부터 입력받은 난독화 대상 파일을 데이터베이스(126)에 저장하며, 기 설정된 난독화의 방식·회수·순서 등의 조합에 따라 저장장치(125)에 저장된 난독화 프로그램을 호출하여 난독화 대상 파일에 대한 난독화를 수행한다(제54단계). The obfuscation unit 120, a security management server save the obfuscation target file received from the 130 to the database 126 and, based storage device 125 in accordance with a combination of such methods, recovering and order of the set obfuscation and a call to the stored obfuscated program performing the obfuscated obfuscation for the target file (step 54).

또한, 사용자 컴퓨터(110)에서 마킹이 수행된 부분에 대하여는 코드가상화에 의한 기계어 코드의 특수코드로의 전환 및 가상 CPU에 의한 난분해를 포함하는 고도의 난독화 과정에 의하여 난독화 대상 파일을 난독화하며, 난독화 완료된 파일은 데이터베이스에 저장된다(제55단계). Furthermore, obfuscated code virtualization obfuscation destination file by the switching, and the virtual CPU of a special code in machine code I by the high obfuscation process comprising a degradation by with respect to the marking is carried out part of the user computer 110 Chemistry and obfuscation completed files are stored in the database (step 55).

본 실시예의 난독화 장치(120)는 난독화가 완료된 실행파일을 보안관리서버(130)로 반환하며, 보안관리서버(130)에서는 난독화 완료된 파일을 테스팅서버(160)로 입력한다(제56단계). This embodiment obfuscation unit 120, the input to obfuscate completed file to the testing server 160 returns the executable obfuscation painter has completed a security management server 130, a security management server 130 (Step 56 ).

테스팅서버(160)에서는 난독화 완료된 파일이 원본 코드와 동일한 기능을 구현하고 있는지 여부 및 난독화에 의하여 구현된 디버거탐지기능, 모니터링 도구를 통한 소프트웨어 분석 차단을 위한 모니터일 도구 탐지기능, 가상환경에서 소프트웨어를 복사한 후 구동하여 분석하는 행위를 감지 및 차단하는 가상환경 탐지기능 등의 적절한 동작여부 및 실행파일이 적절한 동작속도를 구현하고 있는지 여부 테스팅될 수 있도록 한다(제57단계). Testing server 160. The obfuscation completed file debugger detection capabilities implemented by if and obfuscation that implements the same functionality as the original code, monitor, monitor one tool for software analysis blocked by a tool detection, in a virtual environment so that the act of driving analyzed copy the software detection and appropriate action, such as a virtual environment detection block, and whether an executable file may be testing whether or not the implementation of the appropriate operating speed (57 steps).

본 실시예에서 테스팅 과정에 설정 기준에 부합하지 못하는 파일은 보안관리서버(130)를 통하여 해당 사용자컴퓨터(110)로 반환되며, 기준에 부합하는 파일은 보안관리서버(130)를 통하여 배포서버(180)로 전달되며, 인터넷을 통하여 고객에 배포되거나 오프라인으로 고객에 배포되어 서비스가 제공될 수 있게 된다(제58단계). In this embodiment, the file does not meet the criteria set in the testing procedure is returned to the user computer 110 through the security management server 130, a file that meets the criteria is distributed through the security management server 130, the server ( 180) is transmitted to, via the Internet or distributed to customers is distributed to the customer off-line it is possible that services may be provided (step 58).

본 실시예에 의하는 경우는 원본코드를 기계어 번역하고 이 기계어코드 자체에 대한 난독화를 수행하기 때문에 원본 기계어 코드가 제 3자에게 확보되기 어렵고, 역공학에 의하는 경우에도 원본코드를 재생하는 것 자체가 불가능하기 때문에 제3자가 시스템 해킹에 앞서 시스템의 구성을 파악하는 것을 사전에 차단할 수 있다. If depend on the embodiment it is difficult to machine language translation of the source code and secured to the machine Accord itself, the original machine code, the third party because it performs the obfuscation on, for reproducing the original file, but if depend on reverse engineering since it is impossible to own a third party can prevent in advance to determine the configuration of the system prior to the system hack.

본 발명의 권리범위는 상기 실시예에 한정되는 것이 아니라 특허청구범위에 기재된 사항에 의해 정해지며, 특허청구범위에 기재된 사항과 균등범위에서 당업자가 행한 다양한 변형과 개작을 포함함은 자명하다. The scope of the present invention is not limited to the above embodiment is determined by the items described in the claims, including various modifications and adaptations those skilled in the art is carried out in the details and equivalent scope described in the claims will be apparent.

110.........개발자 컴퓨터 120........난독화장치 110 ......... ........ developer computer 120 obfuscation unit
122.........자체보안수단 122a.......프로그램 보안수단 122 ......... own security means 122a ....... security program means
122b........장치 보안수단 123........난독화 프로그램 122b ........ device security means 123 ........ obfuscated program
125.........저장장치 130........보안관리서버 125 ......... ........ storage device 130. Security Management Server
160.........테스팅 서버 180........배포서버 ......... ........ 180 160 Testing server deployment server

Claims (7)

  1. 인터넷상에서 각종 서비스제공을 위한 프로그램의 원본코드를 작성하는 단계와; Steps to create the source code of the program for the various services offered on the Internet, and;
    상기 원본코드를 기계어 코드로 번역하는 단계와; And the step of translating the source code into machine code;
    상기 기계어 코드 번역된 것의 특정부분을 마킹하는 단계와; A step of marking a certain part of what is the machine code translation;
    상기 기계어코드로 번역된 것 자체에 대한 코드 난독화를 수행하며, 마킹이 이루어진 부분에 대하여는 타 부분에 대하여 차등을 두어 상대적으로 고도의 난독화 과정을 수행하는 난독화단계와; Obfuscation method comprising performs code obfuscation for the translation itself that the machine Accord, marking a relatively perform the obfuscation process of a couple of highly differentiated with respect to the other part with respect to the formed portion;
    상기 난독화단계에서 난독화된 프로그램을 테스트하여 상기 원본코드에 의한 것과 같은 정상적인 서비스제공이 이루어질 수 있는 것인지를 판단하는 테스트단계와; Test step of testing the obfuscated program from the obfuscation step determines whether there is a normal service provider, such as by the source code may be made and;
    상기 테스트 단계에서 테스트가 완료된 난독화된 파일을 배포서버로 전송하여 인터넷상에서 배포함으로써 인터넷상에서 서비스제공을 수행하는 단계를 포함하여 구성되는 것을 특징으로 하는 소프트웨어 보안처리 방법. Software security processing method characterized in that comprises the step of transmitting the obfuscated file test is complete, in the testing phase by the distribution server performs the service provider on the internet by distribution over the Internet.
  2. 각종 서비스제공을 위한 프로그램의 원본코드를 작성하는 단계와; Steps to create the source code of the program for various services, and;
    상기 원본코드를 기계어 코드로 번역하는 단계와; And the step of translating the source code into machine code;
    상기 기계어 코드로 번역된 것의 특정부분을 마킹하는 단계와; The step of marking a certain part of what is translated into the machine language codes;
    상기 기계어코드로 번역된 것 자체에 코드 난독화를 수행하며, 마킹이 이루어진 부분에 대하여는 타부분에 대하여 차등을 두어 상대적으로 고도의 난독화 과정을 수행하는 난독화단계와; And obfuscation performing a code obfuscation in the translation itself that the machine Accord and relatively perform the obfuscation process of a high degree of marking is placed a differential with respect to the other part with respect to the formed part;
    상기 난독화단계에서 난독화된 프로그램을 테스트하여 상기 원본코드에 의한 것과 같은 정상적인 서비스제공이 이루어질 수 있는지를 판단하는 테스트단계와; Test step of testing the obfuscated program from the obfuscation step determines whether the normal service provider can be made, such as by the source codes;
    상기 테스트 단계에서 테스트가 완료된 난독화된 파일을 배포서버로 전송하는 단계를 포함하여 구성되는 것을 특징으로 하는 소프트웨어 보안처리 방법. Software security processing method characterized in that comprises the step of transmitting the obfuscated file test is complete, in the test phase to the Distribution Server.
  3. 청구항 1 또는 2에 있어서, 상기 고도의 난독화는, 해당부분에 대응하는 API(Application Programming Interface) 주소 숨기기 기능을 포함하는 것을 특징으로 하는 소프트웨어 보안처리방법. The method according to claim 1 or 2, and obfuscation of the altitude, the software security processing method comprising the API (Application Programming Interface) address hiding function corresponding to the section.
  4. 청구항 1 또는 2에 있어서, 상기 고도의 난독화는, 해당부분에 대응하는 IAT(Import Address Table) 테이블 파괴를 포함하는 것을 특징으로 하는 소프트웨어 보안처리방법. The method according to claim 1 or 2, and obfuscation of the altitude, the software security processing method comprising the IAT (Import Address Table) table corresponding to the destroyed area.
  5. 청구항 1 또는 2에 있어서, 상기 고도의 난독화는, 코드가상화에 의한 기계어 코드의 난분해를 포함하는 것을 특징으로 하는 소프트웨어 보안처리방법. The method according to claim 1 or 2, and obfuscation of the altitude, the software security processing method comprising the I decomposition of machine language code by a code virtualization.
  6. 청구항 1 또는 2에 있어서, 상기 난독화 단계에서는, 복수개의 암호화 알고리즘 중에서 사용자에 의하여 특정의 것을 선택하여 사용할 수 있도록 구성되는 것을 특징으로 하는 소프트웨어 보안처리방법. The method according to claim 1 or 2, wherein the obfuscation step, software security processing method as being configured by a user from among a plurality of cryptographic algorithms to be used to select that particular.
  7. 청구항 1 또는 2에 있어서의 소프트웨어 보안처리방법의 각 단계를 컴퓨터 시스템상에서 수행하는 컴퓨터 프로그램을 기록한 것을 특징으로 하는 기록매체. Recording medium for each step in the software security processing method according to claim 1 or 2, characterized in that storing a computer program for executing on a computer system.
KR20110058169A 2011-06-15 2011-06-15 Software security processing method and storage medium KR101265099B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20110058169A KR101265099B1 (en) 2011-06-15 2011-06-15 Software security processing method and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20110058169A KR101265099B1 (en) 2011-06-15 2011-06-15 Software security processing method and storage medium

Publications (2)

Publication Number Publication Date
KR20120138586A true KR20120138586A (en) 2012-12-26
KR101265099B1 true KR101265099B1 (en) 2013-05-20

Family

ID=47905364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20110058169A KR101265099B1 (en) 2011-06-15 2011-06-15 Software security processing method and storage medium

Country Status (1)

Country Link
KR (1) KR101265099B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101350390B1 (en) * 2013-08-14 2014-01-16 숭실대학교산학협력단 A apparatus for code obfuscation and method thereof
KR101436741B1 (en) 2013-05-27 2014-09-01 (주)스마일게이트엔터테인먼트 The method and system for applying security solution program
WO2015046655A1 (en) * 2013-09-27 2015-04-02 숭실대학교 산학협력단 Application code obfuscation device based on self-conversion and method therefor
WO2016200045A1 (en) * 2015-06-12 2016-12-15 서울대학교 산학협력단 Hardware-based kernel code insertion attack detecting device and method therefor

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9207969B2 (en) 2013-01-25 2015-12-08 Microsoft Technology Licensing, Llc Parallel tracing for performance and detail
US9021262B2 (en) 2013-01-25 2015-04-28 Concurix Corporation Obfuscating trace data
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
WO2014142430A1 (en) * 2013-03-15 2014-09-18 주식회사 에스이웍스 Dex file binary obfuscation method in android system
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
CN105765528A (en) 2013-11-13 2016-07-13 微软技术许可有限责任公司 Application execution path tracing with configurable origin definition
KR101671336B1 (en) * 2014-02-27 2016-11-16 (주)스마일게이트엔터테인먼트 Method of unpacking protection with code separation and apparatus thereof
KR101629379B1 (en) * 2014-08-04 2016-06-13 주식회사 엔씨소프트 Method of distributing original data with recovery data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266887A (en) 2004-03-16 2005-09-29 Kddi Corp Program encryption apparatus, program distribution system and computer program
US20100306854A1 (en) 2009-06-01 2010-12-02 Ab Initio Software Llc Generating Obfuscated Data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266887A (en) 2004-03-16 2005-09-29 Kddi Corp Program encryption apparatus, program distribution system and computer program
US20100306854A1 (en) 2009-06-01 2010-12-02 Ab Initio Software Llc Generating Obfuscated Data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ASE’07, NOVEMBER 49, 2007, ATLANTA, GEORGIA, USA.

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436741B1 (en) 2013-05-27 2014-09-01 (주)스마일게이트엔터테인먼트 The method and system for applying security solution program
KR101350390B1 (en) * 2013-08-14 2014-01-16 숭실대학교산학협력단 A apparatus for code obfuscation and method thereof
WO2015023023A1 (en) * 2013-08-14 2015-02-19 숭실대학교 산학협력단 Device for obfuscating code and method for same
US8984299B1 (en) 2013-08-14 2015-03-17 Soongsil University Research Consortium Techno-Park Apparatus for code obfuscation and method thereof
WO2015046655A1 (en) * 2013-09-27 2015-04-02 숭실대학교 산학협력단 Application code obfuscation device based on self-conversion and method therefor
WO2016200045A1 (en) * 2015-06-12 2016-12-15 서울대학교 산학협력단 Hardware-based kernel code insertion attack detecting device and method therefor

Also Published As

Publication number Publication date Type
KR20120138586A (en) 2012-12-26 application

Similar Documents

Publication Publication Date Title
Sandhu et al. Peer-to-peer access control architecture using trusted computing technology
Vidas et al. All Your Droid Are Belong to Us: A Survey of Current Android Attacks.
Parno et al. Bootstrapping trust in commodity computers
Bugiel et al. AmazonIA: when elasticity snaps back
US7360097B2 (en) System providing methodology for securing interfaces of executable files
US6173402B1 (en) Technique for localizing keyphrase-based data encryption and decryption
US6523119B2 (en) Software protection device and method
US20130042115A1 (en) Systems and methods for implementing security in a cloud computing environment
US6961852B2 (en) System and method for authenticating software using hidden intermediate keys
US8452988B2 (en) Secure data storage for protecting digital content
US6836888B1 (en) System for reverse sandboxing
US20090193074A1 (en) Method for protecting client and server
US20090204964A1 (en) Distributed trusted virtualization platform
US20090249492A1 (en) Fabrication of computer executable program files from source code
US20030140238A1 (en) Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US20100050249A1 (en) Payment card industry (pci) compliant architecture and associated methodology of managing a service infrastructure
US20020083318A1 (en) Method and system for software integrity control using secure hardware assist
US7181603B2 (en) Method of secure function loading
US20050060568A1 (en) Controlling access to data
US20070180509A1 (en) Practical platform for high risk applications
US20090319782A1 (en) Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments
US20080005033A1 (en) Secure device licensing
Binsalleeh et al. On the analysis of the zeus botnet crimeware toolkit
US20070022285A1 (en) Administration of data encryption in enterprise computer systems
US20120216242A1 (en) Systems and Methods for Enhanced Security in Wireless Communication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee