KR20150069844A - Arm 프로세서 기반의 파일 난독화 방법 - Google Patents

Arm 프로세서 기반의 파일 난독화 방법 Download PDF

Info

Publication number
KR20150069844A
KR20150069844A KR1020130156473A KR20130156473A KR20150069844A KR 20150069844 A KR20150069844 A KR 20150069844A KR 1020130156473 A KR1020130156473 A KR 1020130156473A KR 20130156473 A KR20130156473 A KR 20130156473A KR 20150069844 A KR20150069844 A KR 20150069844A
Authority
KR
South Korea
Prior art keywords
code
section
header
address
execution
Prior art date
Application number
KR1020130156473A
Other languages
English (en)
Other versions
KR101536920B1 (ko
Inventor
홍동철
김동선
홍민표
Original Assignee
주식회사 에스이웍스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에스이웍스 filed Critical 주식회사 에스이웍스
Priority to KR1020130156473A priority Critical patent/KR101536920B1/ko
Priority to PCT/KR2013/012057 priority patent/WO2015093671A1/ko
Publication of KR20150069844A publication Critical patent/KR20150069844A/ko
Application granted granted Critical
Publication of KR101536920B1 publication Critical patent/KR101536920B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Abstract

본 발명은 ARM 프로세서 기반의 ELF 파일 구조를 갖는 시스템에서의 실행파일과 라이브러리 모듈이 역공학을 통해 프로그램의 흐름을 파악하기 어렵도록 하기 위해, ARM 프로세서를 이용하는 ELF 파일의 실행파일 및 라이브러리 난독화 방법에 있어서, (a) 원본 실행파일 내의 실행 코드가 담겨 있는 섹션의 코드를 암호화하여 고유 섹션에 저장하는 단계; (b) 실행 코드 섹션의 고유 섹션에 암호화 저장 되어 있는 코드를 복호화하고 실행하는 코드를 삽입하는 단계; (c) 실행 시(Runtime) 실행 코드 섹션의 쓰기 권한을 획득하는 코드를 삽입하는 단계; (d) 실행 시(Runtime) 정확한 메모리 주소를 구해 실행코드 섹션의 코드에 덮어쓰는 코드를 삽입하는 단계; 및 (e) 디버깅 툴이 기계 명령어(Opcode)를 해석하기 어렵도록 바이너리의 헤더와 섹션을 조작하는 단계를 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법을 제공한다.

Description

ARM 프로세서 기반의 파일 난독화 방법{Method of Obfuscating Files Based on Advanced RISC Machine Processor}
본 발명은 ARM 프로세서 기반의 파일 난독화 방법에 관한 것으로, 보다 상세하게는 ARM 프로세서 기반의 ELF 파일 구조를 갖는 시스템에서의 실행파일에 역공학을 이용하여 프로그램의 흐름을 파악하기 어렵도록 하기 위한 ARM 프로세서 기반의 파일 난독화 방법에 관한 것이다.
보안 취약점 분석자들은 각종 보안 문제 분석에 역공학(Reverse engineering) 기술을 적극 활용하고 있다. 역공학은 소스코드 없이 윈도우즈 실행 파일(Portable Executable)이나, 자바 바이트코드 등을 직접 분석해서 프로그램이 어떤 기능을 수행하는지 파악하여 취약점을 찾아내는 기술이다.
필요하면 직접 프로그램 바이너리를 수정해 불법적인 일을 수행하게 만들기도 한다. 이에 대한 대응으로 코드를 복잡하게 만들어 알아보기 힘들게 하는 코드 난독화(Code Obfuscation) 기술이 발전하였다.
하지만, 이러한 코드 난독화를 이용하여 원본 소스코드를 난독화된 소스코드로 변환하여도 단순히 코드의 복잡도만 상승하였기 때문에 역컴파일로 인한 소스코드 노출이 가능하다.
이러한 문제를 해결하기 위하여 대한민국 등록특허공보 10-1097103호(2011.12.22.)에서는 소프트웨어를 구현하기 위한 알고리즘, 구조, 구성 등을 포함하는 소스코드를 난독화하고, 난독화를 위한 복원정보, 처리내역 등을 서버에서 관리토록하여 소스코드의 유출을 방지하기 위한 방법을 개시하고 있다.
한편, ARM(Advanced RISC Machine) 프로세서의 실행 파일은 기계어와 1:1 대응되는 코드인 Opcode와 프로그램의 정상적인 작동을 위해 필요한 데이터의 집합으로 구성되어 있다.
상기 Opcode는 아키텍처마다 제공하는 Opcode Table과 대조하면 이를 어셈블리 명령으로 번역하는 것이 가능하다.
대표적으로 GDB, objdump, IDA와 같은 분석 툴들이 어셈블리 형태로 변환하여 출력해주는 역할을 수행하고 보다 고도화된 툴인 Hex-Rays를 사용하면 어셈블리 형태가 아닌 원본 소스 코드와 거의 유사한 수준의 코드를 복원해 내는 역컴파일 기능을 제공한다.
이러한 역컴파일을 막기 위한 기존의 기술들은 대부분 윈도우의 실행파일인 PE(Portable Executable) 포맷에 대한 난독화 기법이기 때문에 ELF(Executable and Linking Format) 구조에서의 임베디드 ARM 프로세서의 난독화 기법 개발이 시급한 상황이다.
따라서, 본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 ARM 프로세서를 이용하는 ELF 파일의 실행 파일 및 라이브러리 모듈을 난독화하기 위한 ARM 프로세서 기반의 파일 난독화 방법을 제공함에 있다.
또한, 본 발명의 목적은 ARM 프로세서 기반의 ELF 파일 구조를 가지고 있는 시스템에서의 실행 파일 및 라이브러리 모듈에 난독화 기법을 적용하여 역공학을 통해 프로그램의 흐름을 파악하기 어렵도록 하기 위한 ARM 프로세서 기반의 파일 난독화 방법을 제공함에 있다.
상기한 본 발명의 목적은, ARM 프로세서를 이용하는 ELF 파일의 실행파일 및 라이브러리 난독화 방법에 있어서, (a) 원본 실행파일 내의 실행 코드가 담겨 있는 섹션의 코드를 암호화하여 고유 섹션에 저장하는 단계; (b) 실행 코드 섹션의 고유 섹션에 저장된 암호화되어 있는 코드를 복호화하고 실행하는 코드를 삽입하는 단계; (c) 실행 시(Runtime) 실행 코드 섹션의 쓰기 권한을 획득하는 코드를 삽입하는 단계; (d) 실행 시(Runtime) 정확한 메모리 주소를 구해 실행코드 섹션의 코드에 덮어쓰는 코드를 삽입하는 단계; 및 (e) 디버깅 툴이 기계 명령어(Opcode)를 해석하기 어렵도록 바이너리의 헤더와 섹션을 조작하는 단계를 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법을 통해서 달성된다.
또한 본 발명에 따르면, 상기 단계 (a)는, 특정 섹션을 생성하는 단계; 상기 특정 섹션으로 실행 섹션의 코드를 모두 이동하는 단계; 및 해당 섹션에 담긴 코드들을 암호화와 같은 역공학을 방지하기 위한 알고리즘들을 적용하는 단계를 포함하는 것을 특징으로 한다.
또한 본 발명에 따르면, 상기 단계 (b)는, 실행코드 섹션에 고유 섹션의 코드를 복호화와 같은 역공학을 방지하기 위한 알고리즘들을 해제하는 코드를 삽입하는 단계; 특정 세그먼트의 이름을 변경하는 단계; 변경된 이름의 세그먼트 속성을 삽입할 Opcode의 크기에 맞춰 수정하는 단계; 및 현재 Entry Point인 실행 코드 섹션에 변경된 세그먼트에 들어있는 암호화된 코드를 복호화 후 점프 코드를 삽입하는 단계를 포함하는 것을 특징으로 한다.
또한 본 발명에 따르면, 상기 단계 (c)는, 메모리 영역의 권한을 설정하는 시스템 콜을 사용하여 실행 코드 섹션의 쓰기 권한을 확보하는 코드를 삽입하는 것을 특징으로 한다.
또한 본 발명에 따르면, 상기 시스템 콜은 운영체제가 제공해주는 기능으로 주어진 파일을 현재 프로세스의 메모리 영역에 매핑(Mapping)시켜 주는 것을 특징으로 한다.
또한 본 발명에 따르면, 상기 단계 (d)는, (d-1) 현재 실행파일 헤더의 주소를 구하는 단계; (d-2) 실행파일 헤더의 정보를 참조해 섹션 헤더의 위치를 구하는 단계; (d-3) 섹션 헤더의 주소 + (섹션 헤더의 문자열 인덱스 ㅧ 바이너리 헤더의 크기)를 계산하는 단계; (d-4) 계산한 주소 값이 실행 코드 섹션의 주소인지 확인하는 단계; 및 상기 (d-1) 내지 (d-4)에서 구해진 실행 코드 섹션의 주소를 이용하여 Opcode로 작성된 시스템 콜 인자를 채워주는 코드를 삽입하는 단계를 포함하는 것을 특징으로 한다.
또한 본 발명에 따르면, 상기 단계 (e)는, 실행파일 헤더 만큼의 크기를 메모리 영역에 할당하는 단계; 실행파일 헤더의 주소를 이용해 섹션들의 주소를 구하는 단계; 구한 두 가지 섹션을 더미 데이터로 채우는 단계; 매핑한 메모리 맵과 동기화(Synchronize)하는 단계; 및 매핑한 메모리를 해제하는 코드를 삽입하는 단계를 포함하는 것을 특징으로 한다.
또한 본 발명에 따르면, 상기 단계 (e)는, 섹션의 이름을 변경하여 디버거에게 혼란을 주기 위해 바이너리 헤더의 주소를 구하는 단계; 및 내부 섹션들을 추출해서 소속된 세그먼트가 변경 대상인지를 확인하고, 변경 대상 세그먼트의 속성을 비정상적으로 변경하는 과정을 반복하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 ARM 프로세서 기반의 파일 난독화 방법에 의하면, 임베디드 ARM 시스템에서 동작하는 실행 파일 및 라이브러리 모듈을 난독화로 보호할 수 있으며, 스마트기기의 실행 파일 및 라이브러리 모듈을 난독화할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 ARM 프로세서 기반의 파일 난독화 과정의 전체 흐름을 나타낸 도면.
도 2는 본 발명의 실시예에 따른 섹션 코드 암호화 및 저장 과정을 나타낸 흐름도.
도 3은 본 발명의 실시예에 따른 난독화를 위한 복호화 및 실행코드 삽입 과정을 나타낸 흐름도.
도 4는 본 발명의 실시예에 따른 난독화를 위한 메모리 주소 덮어쓰기 과정을 나타낸 흐름도.
도 5는 본 발명의 실시예에 따른 난독화를 위한 바이너리 헤더 및 섹션 조작 과정을 나타낸 흐름도.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 고안의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
대부분의 임베디드 시스템과 스마트폰 운영체제는 ARM(Advanced RISC Machine) 프로세서를 이용하는 리눅스 기반의 운영체제를 이용하고 있으며, ARM 프로세서를 이용하는 ELF(Executable and Linking Format) 파일의 실행파일 및 라이브러리는 악의적인 목적의 사용자가 분석을 하기 용이하다.
따라서, ARM 프로세서 기반의 ELF 파일 구조를 가지고 있는 시스템에서의 실행파일에 난독화 기법을 적용하여 역공학을 통해 프로그램을 분석하기 어렵도록 하는 방법을 제공하고자 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 ARM 프로세서 기반의 파일 난독화 과정의 전체 흐름을 나타낸 도면이다.
도 1에 도시된 바와 같이, 원본 실행파일 내의 실행 코드가 담겨있는 섹션의 코드를 암호화하여 고유 섹션에 저장한다(S100).
실행 코드 섹션의 고유 섹션에 저장된 암호화되어 있는 코드를 복호화하고 실행하는 코드를 삽입한다(S200).
실행 시(Runtime) 실행 코드 섹션의 쓰기 권한을 얻는 코드를 삽입한다(S300).
쓰기 권한을 얻은 후, 런타임에서 정확한 메모리 주소를 구해 실행코드 섹션의 코드에 덮어 쓰는 코드를 삽입한다.(S400).
그리고, 바이너리의 헤더와 섹션을 조작하여 디버깅 툴이 기계 명령어(Opcode)를 해석하기 어렵도록 만든다(S500).
상기 본 발명의 난독화 과정을 도 2 내지 도 5를 통해 좀 더 상세히 설명하도록 한다.
도 2는 본 발명의 실시예에 따른 섹션 코드 암호화 및 저장 과정을 나타낸 흐름도이다.
도 2에 도시된 바와 같이, 원본 실행파일 내의 실행 코드가 담겨 있는 섹션의 코드를 암호화하여 고유 섹션에 저장하기 위해 특정 섹션을 생성한다(S102).
생성된 특정 섹션으로 실행 섹션의 코드를 모두 이동하고(S104), 해당 섹션에 담긴 코드들을 암호화와 같은 역공학을 방지하기 위한 알고리즘들을 적용한다(S106).
상기 Runtime 실행 코드 섹션의 쓰기 권한을 획득하는 단계(S300)는, 메모리 영역의 권한을 설정하는 시스템 콜을 사용하여 실행 코드 섹션의 쓰기 권한을 확보하는 코드를 삽입한다.
그리고, 상기 시스템 콜은 운영체제가 제공해주는 기능으로 주어진 파일을 현재 프로세스의 메모리 영역에 매핑(Mapping)시켜 준다.
도 3은 본 발명의 실시예에 따른 난독화를 위한 복호화 및 실행코드 삽입 과정을 나타낸 흐름도이다.
도 3에 도시된 바와 같이, 상기 고유 섹션의 암호화 코드 복호화 및 실행코드 삽입 단계(S200)는, 실행 코드 섹션의 고유 섹션에 암호화되어 저장되어 있는 코드를 복호화하고 실행하기 위한 코드를 삽입해야 한다.
이를 위해 실행 코드 섹션에 고유 섹션의 코드를 복호화와 같은 역공학을 방지하기 위한 알고리즘들을 해제하는 코드를 삽입한다(S202).
코드 삽입이 완료되면 특정 세그먼트의 이름을 변경하고(S204), 변경된 이름의 세그먼트 속성을 Opcode의 크기에 맞도록 수정한다(S206).
수정이 완료되면 현재 Entry Point인 실행 코드 섹션에 변경된 세그먼트에 들어있는 암호화된 코드를 복호화한 후, 점프하는 코드를 삽입한다(S208).
도 4는 본 발명의 실시예에 따른 난독화를 위한 메모리 주소 덮어쓰기 단계의 과정을 나타낸 흐름도이다.
도 4에 도시된 바와 같이, 실행 코드 섹션 코드에 메모리 주소를 덮어쓰는 단계(S400)는, 실행 코드 섹션의 주소를 구할 때, 모든 디바이스가 같은 Base Address를 가지고 실행되지 않아 매번 실행코드 섹션의 주소가 달라지는 문제를 해결하기 위한 것이다.
이 문제를 해결하기 위해 먼저, 현재 실행파일 헤더의 주소를 구한다(S402).
다음으로 실행파일 헤더의 정보를 참조해 섹션 헤더의 위치를 구하고(S404), 섹션 헤더의 주소 + (섹션 헤더의 문자열 인덱스 ㅧ 바이너리 헤더의 크기)를 계산한다(S406).
그리고, 계산한 주소 값이 실행 코드 섹션의 주소인지 확인한다(S408).
상기 단계 S402 ~ S408을 통해 얻어진 실행 코드 섹션의 주소를 이용하여 Opcode로 작성된 시스템 콜의 인자를 삽입하여 채워준다(S410).
도 5는 본 발명의 실시예에 따른 난독화를 위한 바이너리 헤더 및 섹션의 조작 과정을 나타낸 흐름도이다.
도 5에 도시된 바와 같이, 바이너리 헤더 및 섹션의 조작 단계(S500)는, 디버거가 참조하는 섹션들의 값을 더미 데이터로 채워서 디버거가 섹션 헤더 테이블을 제대로 참조하지 못하게 하여 프로그램 섹션을 구분하는데 혼란을 주도록 하는 것이다.
그러기 위해 먼저, 실행파일 헤더 만큼의 크기를 메모리 영역에 할당 한다(S502).
이후, 실행파일 헤더의 주소를 이용해 섹션들의 주소를 구하고(S504), 구한 두 가지 섹션을 더미 데이터로 삽입하여 채운다(S506).
매핑한 메모리 맵과 동기화(Synchronize)하고(S508), 매핑한 메모리를 해제한다(S510).
그리고, 섹션의 이름을 변경하여 디버거에게 혼란을 주기 위해 바이너리 헤더의 주소를 구한 후(S512), 내부 섹션들을 추출해서 소속된 세그먼트가 변경 대상인지를 확인한다(S514).
마지막으로, 변경 대상 세그먼트의 속성을 비정상적으로 변경하는 과정을 반복한다(S516).
상기와 같이, 실행 코드 섹션의 고유 섹션에 암호화 저장 되어 있는 코드를 복호화하고 실행하는 코드를 삽입하고, 원본 실행파일 내의 실행 코드가 담겨 있는 섹션의 코드를 암호화하여 고유 섹션에 저장하고, 실행 시(Runtime) 실행 코드 섹션의 쓰기 권한을 획득하고, 런타임에서 정확한 메모리 주소를 구해 실행코드 섹션의 코드에 덮어쓰고, 디버깅 툴이 기계 명령어(Opcode)를 해석하기 어렵도록 바이너리의 헤더와 섹션을 조작하여 ARM 프로세서 기반의 ELF 파일 구조를 갖는 시스템에서의 실행파일에 난독화 기법을 적용하여 역공학을 통해 프로그램을 분석하기 어렵도록 한다.
상기의 과정을 거쳐 생성된 난독화된 ARM ELF 파일(Obfuscated ARM ELF File)은 변환 구역(Transformation Layer), 암호화된 코드(Encrypted Code) 및 파일 조작(File format Manipulation)이 된 실행파일 및 라이브러리 모듈을 갖게 된다.

Claims (8)

  1. ARM 프로세서를 이용하는 ELF 파일의 실행파일 및 라이브러리 난독화 방법에 있어서,
    (a) 원본 실행파일 내의 실행 코드가 담겨 있는 섹션의 코드를 암호화하여 고유 섹션에 저장하는 단계;
    (b) 실행 코드 섹션의 고유 섹션에 저장된 암호화되어 있는 코드를 복호화하고 실행하는 코드를 삽입하는 단계;
    (c) 실행 시(Runtime) 실행 코드 섹션의 쓰기 권한을 획득하는 코드를 삽입하는 단계;
    (d) 실행 시(Runtime) 정확한 메모리 주소를 구해 실행코드 섹션의 코드에 덮어쓰는 코드를 삽입하는 단계; 및
    (e) 디버깅 툴이 기계 명령어(Opcode)를 해석하기 어렵도록 바이너리의 헤더와 섹션을 조작하는 단계를 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
  2. 제 1항에 있어서,
    상기 단계 (a)는,
    특정 섹션을 생성하는 단계;
    상기 특정 섹션으로 실행 섹션의 코드를 모두 이동하는 단계; 및
    해당 섹션에 담긴 코드들을 암호화와 같은 역공학을 방지하기 위한 알고리즘들을 적용하는 단계를 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
  3. 제 1항에 있어서,
    상기 단계 (b)는,
    실행코드 섹션에 고유 섹션의 코드를 복호화와 같은 역공학을 방지하기 위한 알고리즘들을 해제하는 코드를 삽입하는 단계;
    특정 세그먼트의 이름을 변경하는 단계;
    변경된 이름의 세그먼트 속성을 삽입할 Opcode의 크기에 맞춰 수정하는 단계; 및
    현재 Entry Point인 실행 코드 섹션에 변경된 세그먼트에 들어있는 암호화된 코드를 복호화 후 점프 코드를 삽입하는 단계를 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
  4. 제 1항에 있어서,
    상기 단계 (c)는,
    메모리 영역의 권한을 설정하는 시스템 콜을 사용하여 실행 코드 섹션의 쓰기 권한을 확보하는 코드를 삽입하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
  5. 제 4항에 있어서,
    상기 시스템 콜은 운영체제가 제공해주는 기능으로 주어진 파일을 현재 프로세스의 메모리 영역에 매핑(Mapping)시켜 주는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
  6. 제 1항에 있어서,
    상기 단계 (d)는,
    (d-1) 현재 실행파일 헤더의 주소를 구하는 단계;
    (d-2) 실행파일 헤더의 정보를 참조해 섹션 헤더의 위치를 구하는 단계;
    (d-3) 섹션 헤더의 주소 + (섹션 헤더의 문자열 인덱스 ㅧ 바이너리 헤더의 크기)를 계산하는 단계;
    (d-4) 계산한 주소 값이 실행 코드 섹션의 주소인지 확인하는 단계; 및
    상기 (d-1) 내지 (d-4)에서 구해진 실행 코드 섹션의 주소를 이용하여 Opcode로 작성된 시스템 콜 인자를 채워주는 코드를 삽입하는 단계를 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
  7. 제 1항에 있어서,
    상기 단계 (e)는,
    실행파일 헤더 만큼의 크기를 메모리 영역에 할당하는 단계;
    실행파일 헤더의 주소를 이용해 섹션들의 주소를 구하는 단계;
    구한 두 가지 섹션을 더미 데이터로 채우는 단계;
    매핑한 메모리 맵과 동기화(Synchronize)하는 단계; 및
    매핑한 메모리를 해제하는 코드를 삽입하는 단계를 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
  8. 제 7항에 있어서,
    상기 단계 (e)는,
    섹션의 이름을 변경하여 디버거에게 혼란을 주기 위해 바이너리 헤더의 주소를 구하는 단계; 및
    내부 섹션들을 추출해서 소속된 세그먼트가 변경 대상인지를 확인하고, 변경 대상 세그먼트의 속성을 비정상적으로 변경하는 과정을 반복하는 단계를 더 포함하는 것을 특징으로 하는 ARM 프로세서 기반의 파일 난독화 방법.
KR1020130156473A 2013-12-16 2013-12-16 Arm 프로세서 기반의 파일 난독화 방법 KR101536920B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130156473A KR101536920B1 (ko) 2013-12-16 2013-12-16 Arm 프로세서 기반의 파일 난독화 방법
PCT/KR2013/012057 WO2015093671A1 (ko) 2013-12-16 2013-12-24 Arm 프로세서 기반의 파일 난독화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130156473A KR101536920B1 (ko) 2013-12-16 2013-12-16 Arm 프로세서 기반의 파일 난독화 방법

Publications (2)

Publication Number Publication Date
KR20150069844A true KR20150069844A (ko) 2015-06-24
KR101536920B1 KR101536920B1 (ko) 2015-07-15

Family

ID=53403002

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130156473A KR101536920B1 (ko) 2013-12-16 2013-12-16 Arm 프로세서 기반의 파일 난독화 방법

Country Status (2)

Country Link
KR (1) KR101536920B1 (ko)
WO (1) WO2015093671A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989252A (zh) * 2015-12-12 2016-10-05 武汉安天信息技术有限责任公司 一种针对函数级别加壳的脱壳方法及系统
KR20190060181A (ko) * 2017-11-24 2019-06-03 (주)잉카엔트웍스 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650475A (zh) * 2016-12-02 2017-05-10 武汉斗鱼网络科技有限公司 一种隐藏so文件的方法及装置
CN108334754B (zh) * 2018-01-31 2020-12-08 山东奥太电气有限公司 嵌入式系统程序的加密解密方法及系统
CN115543586B (zh) * 2022-11-28 2023-03-17 成都安易迅科技有限公司 应用层系统进程的启动方法、装置、设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US20060288019A1 (en) * 2005-05-27 2006-12-21 Niclas Bauer Flexible data file format
US20120159193A1 (en) * 2010-12-18 2012-06-21 Microsoft Corporation Security through opcode randomization
US20130014267A1 (en) * 2011-07-07 2013-01-10 Farrugia Augustin J Computer protocol generation and obfuscation
KR101328012B1 (ko) * 2013-08-12 2013-11-13 숭실대학교산학협력단 애플리케이션 코드 난독화 장치 및 그 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989252A (zh) * 2015-12-12 2016-10-05 武汉安天信息技术有限责任公司 一种针对函数级别加壳的脱壳方法及系统
CN105989252B (zh) * 2015-12-12 2018-10-12 武汉安天信息技术有限责任公司 一种针对函数级别加壳的脱壳方法及系统
KR20190060181A (ko) * 2017-11-24 2019-06-03 (주)잉카엔트웍스 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법

Also Published As

Publication number Publication date
WO2015093671A1 (ko) 2015-06-25
KR101536920B1 (ko) 2015-07-15

Similar Documents

Publication Publication Date Title
CN108733988B (zh) 安卓平台上可执行程序的保护方法
KR101518420B1 (ko) 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법
US20160203087A1 (en) Method for providing security for common intermediate language-based program
KR101740134B1 (ko) 어플리케이션의 코드 난독화를 위한 시스템 및 방법
US9396313B2 (en) Apparatus for tamper protection of application code and method thereof
KR101623096B1 (ko) 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법
KR102433011B1 (ko) Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체
KR101536920B1 (ko) Arm 프로세서 기반의 파일 난독화 방법
CN104680039B (zh) 一种应用程序安装包的数据保护方法及装置
US20160239671A1 (en) Method and device for protecting an application and method and device for executing a protected application thus protected
KR101861341B1 (ko) 애플리케이션 코드의 역난독화 장치 및 이를 이용한 애플리케이션 코드의 역난독화 방법
CN109598107B (zh) 一种基于应用安装包文件的代码转换方法及装置
JP7285850B2 (ja) コンパイルデバイス及び方法
US20110271350A1 (en) method for protecting software
KR20140114769A (ko) 안드로이드에서의 dex파일 바이너리 난독화 방법
CN102576391A (zh) 嵌入在shell代码中的软件许可
CN104866739A (zh) 安卓系统中应用程序加密方法及系统
CN106228041B (zh) 一种针对Android预编译的代码保护方法
CN105095771A (zh) 一种共享目标文件的保护方法及装置
JP7242675B2 (ja) コンパイル装置及び方法
CN107871066B (zh) 基于安卓系统的代码编译方法及装置
KR101823226B1 (ko) 코드 보호 방법 및 시스템
WO2015058639A1 (zh) 一种应用程序保护系统和方法
CN104951705A (zh) 一种基于操作系统接口重写的安卓应用数据加密封装方法
CN108021790B (zh) 文件保护方法、装置、计算设备及计算机存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180813

Year of fee payment: 4