KR101157996B1 - 자바스크립트의 소스 코드 보호를 위해 난독화를 하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 - Google Patents
자바스크립트의 소스 코드 보호를 위해 난독화를 하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 Download PDFInfo
- Publication number
- KR101157996B1 KR101157996B1 KR1020100066932A KR20100066932A KR101157996B1 KR 101157996 B1 KR101157996 B1 KR 101157996B1 KR 1020100066932 A KR1020100066932 A KR 1020100066932A KR 20100066932 A KR20100066932 A KR 20100066932A KR 101157996 B1 KR101157996 B1 KR 101157996B1
- Authority
- KR
- South Korea
- Prior art keywords
- code
- obfuscation
- source code
- algorithm
- javascript
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
Description
도 2는 본 발명의 일 실시예에 따라, 자바 스크립트를 난독화하고 난독화된 자바 스크립트를 사용하는 웹페이지를 사용자의 요청에 의해 제공하기 위한 전체 시스템의 전체적인 구성을 개략적으로 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 웹서버의 세부 구성도이다.
도 4는 본 발명의 일 실시예에 따라 웹서버 내의 자바 스크립트 난독화부의 세부 구성도이다.
도 5는 본 발명의 일 실시예에 따라 형 이름(Type Name) 변경 알고리즘에 의한 난독화 작업을 나타내는 예시적인 화면이다.
도 6은 본 발명의 일 실시예에 따라 셔플(Shuffle) 알고리즘에 의한 난독화 작업을 나타내는 예시적인 화면이다.
도 7은 본 발명의 일 실시예에 따라 더미(Dummy) 알고리즘에 의한 난독화 작업을 나타내는 예시적인 화면이다.
Claims (17)
- 자바 스크립트 소스 코드의 난독화를 수행하기 위한 방법에 있어서,
난독화를 수행할 소스 코드를 선택하는 코드 선택 단계;
상기 선택된 소스 코드를 컴파일을 통해 분석하는 코드 분석 단계;
상기 분석된 코드를 대상으로 특정 알고리즘에 기반한 난독화 작업을 수행하는 코드 난독화 단계; 및
상기 난독화가 수행된 소스 코드를 저장하는 코드 저장 단계를 포함하되,
상기 특정 알고리즘은 형 이름(Type Name) 변경 알고리즘이며,
상기 형 이름 변경 알고리즘은 상기 분석된 코드 내의 함수명, 변수명 또는 상수를 소정 규칙에 의해 변경하는 알고리즘이고,
상기 난독화를 수행할 소스코드를 포함하고 있는 웹 페이지가 복수의 난독화를 수행할 소스코드 파일을 간접적으로 포함하고 있는 경우,
상기 코드 선택 단계, 상기 코드 분석 단계 및 상기 코드 난독화 단계는 각각의 소스코드에 대하여 수행되어 상기 복수의 난독화를 수행할 소스코드 각각을 난독화하며,
상기 코드 저장 단계는 상기 난독화된 복수의 소스코드들을 하나의 소스코드 파일로 통합하여 저장하고, 상기 웹페이지에 상기 난독화를 수행할 소스코드 파일들 각각을 간접적으로 포함하하는 구문을 삭제한 후 상기 통합 저장된 소스코드 파일을 간접적으로 포함하기 위한 구문을 삽입하는 것을 특징으로 하는 난독화 방법. - 청구항 1에 있어서,
상기 코드 선택 단계는,
데이터베이스에 저장된 소정 웹페이지를 읽어들이는 단계;
상기 웹페이지 내부에 자바 스크립트 소스 코드가 삽입된 경우 상기 삽입된 소스 코드를 선택하는 단계; 및
상기 웹페이지가 자바 스크립트 파일을 간접적으로 포함한 경우, 상기 간접적으로 포함된 자바 스크립트 파일을 선택하는 단계를 더 포함하는 것을 특징으로 하는 난독화 방법.
- 청구항 1에 있어서,
상기 코드 분석 단계는,
상기 선택된 소스 코드를 컴파일을 통해 토큰(token) 단위로 분해하는 단계; 및
상기 분해된 토큰들로 이루어진 파스 트리(parse tree)를 생성하는 파싱 (parsing) 단계를 더 포함하는 것을 특징으로 하는 난독화 방법. - 청구항 1에 있어서,
상기 특정 알고리즘은 셔플(Shuffle) 알고리즘 또는 더미(Dummy) 알고리즘 중 적어도 하나를 더 포함하는 것을 특징으로 하는 난독화 방법. - 청구항 1에 있어서,
상기 형 이름 변경 알고리즘은 상기 분석된 코드 내의 함수명, 변수명 또는 상수를 암호화 로직에 따라 암호화하며,
상기 코드 난독화 단계는 상기 암호화 로직에 따라 암호화된 정보를 복호화할 수 있는 복호화 함수를 상기 소스 코드에 추가하는 것을 특징으로 하는 난독화 방법. - 청구항 4에 있어서,
상기 셔플 알고리즘은,
상기 분석된 코드 내의 함수 선언 구문 또는 변수 선언 구문의 순서를 상기 소스 코드의 실행에 영향을 주지 않는 범위 내에서 변경하는 알고리즘인 것을 특징으로 하는 난독화 방법. - 청구항 4에 있어서,
상기 더미 알고리즘은,
미리 저장된 더미 코드 중 적어도 하나를 선택하여 상기 분석된 코드 내에 삽입하는 알고리즘인 것을 특징으로 하는 난독화 방법. - 청구항 1에 있어서,
상기 분석된 코드를 대상으로 필요 없는 공백이나 주석을 제거하는 압축 단계를 더 포함하는 것을 특징으로 하는 난독화 방법. - 청구항 1에 있어서,
상기 분석된 코드를 대상으로 오버헤드(overhead)를 줄이는 코드 최적화 단계를 더 포함하는 것을 특징으로 하는 난독화 방법. - 자바 스크립트 소스 코드의 난독화를 수행하기 위한 시스템에 있어서,
난독화를 수행할 소스 코드를 선택하는 코드 선택 모듈;
상기 선택된 소스 코드를 컴파일을 통해 분석하는 코드 분석 모듈;
상기 분석된 코드를 대상으로 특정 알고리즘에 기반한 난독화 작업을 수행하는 코드 난독화 모듈; 및
상기 난독화가 수행된 소스 코드를 저장하는 코드 저장 모듈을 포함하되,
상기 특정 알고리즘은 형 이름(Type Name) 변경 알고리즘이며,
상기 형 이름 변경 알고리즘은 상기 분석된 코드 내의 함수명, 변수명 또는 상수를 소정 규칙에 의해 변경하는 알고리즘이고,
상기 난독화를 수행할 소스코드를 포함하고 있는 웹 페이지가 복수의 난독화를 수행할 소스코드 파일을 간접적으로 포함하고 있는 경우,
상기 코드 선택 모듈, 상기 코드 분석 모듈 및 상기 코드 난독화 모듈은 각각의 소스코드에 대하여 수행되어 상기 복수의 난독화를 수행할 소스코드 각각을 난독화하며,
상기 코드 저장 모듈은 상기 난독화된 복수의 소스코드들을 하나의 소스코드 파일로 통합하여 저장하고, 상기 웹페이지에 상기 난독화를 수행할 소스코드 파일들 각각을 간접적으로 포함하하는 구문을 삭제한 후 상기 통합 저장된 소스코드 파일을 간접적으로 포함하기 위한 구문을 삽입하는 것을 특징으로 하는 난독화 시스템. - 청구항 10에 있어서,
상기 특정 알고리즘은 셔플(Shuffle) 알고리즘 또는 더미(Dummy) 알고리즘 중 적어도 하나를 더 포함하는 것을 특징으로 하는 난독화 시스템. - 청구항 10에 있어서,
상기 형 이름 변경 알고리즘은 상기 분석된 코드 내의 함수명, 변수명 또는 상수를 암호화 로직에 따라 암호화하며,
상기 코드 난독화 모듈은 상기 암호화 로직에 따라 암호화된 정보를 복호화할 수 있는 복호화 함수를 상기 소스 코드에 추가하는 것을 특징으로 하는 난독화 시스템. - 청구항 11에 있어서,
상기 셔플 알고리즘은,
상기 분석된 코드 내의 함수 선언 구문 또는 변수 선언 구문의 순서를 상기 소스 코드의 실행에 영향을 주지 않는 범위 내에서 변경하는 알고리즘인 것을 특징으로 하는 난독화 시스템. - 청구항 11에 있어서,
상기 더미 알고리즘은,
미리 저장된 더미 코드 중 적어도 하나를 선택하여 상기 분석된 코드 내에 삽입하는 알고리즘인 것을 특징으로 하는 난독화 시스템.
- 청구항 10에 있어서,
상기 코드 난독화 모듈은 상기 분석된 코드를 대상으로 필요 없는 공백이나 주석을 제거하는 압축 기능을 더 포함하는 것을 특징으로 하는 난독화 시스템. - 청구항 10에 있어서,
상기 코드 난독화 모듈은 상기 분석된 코드를 대상으로 오버헤드(overhead)를 줄이는 코드 최적화 기능을 더 포함하는 것을 특징으로 하는 난독화 시스템.
- 청구항 제1항 내지 제9항 중 어느 한 항에 기재된 방법의 각 단계를 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100066932A KR101157996B1 (ko) | 2010-07-12 | 2010-07-12 | 자바스크립트의 소스 코드 보호를 위해 난독화를 하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100066932A KR101157996B1 (ko) | 2010-07-12 | 2010-07-12 | 자바스크립트의 소스 코드 보호를 위해 난독화를 하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120006288A KR20120006288A (ko) | 2012-01-18 |
KR101157996B1 true KR101157996B1 (ko) | 2012-06-25 |
Family
ID=45612063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100066932A Expired - Fee Related KR101157996B1 (ko) | 2010-07-12 | 2010-07-12 | 자바스크립트의 소스 코드 보호를 위해 난독화를 하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101157996B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101429229B1 (ko) * | 2012-12-27 | 2014-08-12 | 한라대학교산학협력단 | 명령문 병합을 이용한 자바 난독화방법 |
KR101462114B1 (ko) | 2013-03-28 | 2014-11-17 | 네이버 주식회사 | 동기식 스크립트 지연 로딩 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체 |
KR101521765B1 (ko) * | 2015-01-08 | 2015-05-20 | 숭실대학교산학협력단 | 분간이 난해한 식별자 변환을 이용한 코드 난독화 장치 및 방법 |
KR101619458B1 (ko) * | 2016-03-02 | 2016-05-10 | (주)케이사인 | 애플리케이션 코드 난독화 장치 및 이를 이용한 애플리케이션 코드 난독화 방법 |
CN114090964A (zh) * | 2021-11-18 | 2022-02-25 | 北京五八信息技术有限公司 | 代码处理方法、装置、电子设备及可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
JP2004185064A (ja) | 2002-11-29 | 2004-07-02 | Matsushita Electric Ind Co Ltd | プログラムの難読化装置及び難読化方法 |
KR20090084529A (ko) * | 2008-02-01 | 2009-08-05 | 주식회사 안철수연구소 | 악성 스크립트 코드 복호화 방법 및 시스템 |
KR20100010749A (ko) * | 2008-07-23 | 2010-02-02 | 한국전자통신연구원 | 난독화된 악성 웹페이지 탐지 방법 및 장치 |
-
2010
- 2010-07-12 KR KR1020100066932A patent/KR101157996B1/ko not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
JP2004185064A (ja) | 2002-11-29 | 2004-07-02 | Matsushita Electric Ind Co Ltd | プログラムの難読化装置及び難読化方法 |
KR20090084529A (ko) * | 2008-02-01 | 2009-08-05 | 주식회사 안철수연구소 | 악성 스크립트 코드 복호화 방법 및 시스템 |
KR20100010749A (ko) * | 2008-07-23 | 2010-02-02 | 한국전자통신연구원 | 난독화된 악성 웹페이지 탐지 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20120006288A (ko) | 2012-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3440542B1 (en) | Applying bytecode obfuscation techniques to programs written in an interpreted language | |
EP2976709B1 (en) | Systems and methods for intercepting, processing, and protecting user data through web application pattern detection | |
JP6257754B2 (ja) | データの保護 | |
CN106778288B (zh) | 一种数据脱敏的方法及系统 | |
US8660976B2 (en) | Web content rewriting, including responses | |
US8131753B2 (en) | Apparatus and method for accessing and indexing dynamic web pages | |
US20180121680A1 (en) | Obfuscating web code | |
KR101157996B1 (ko) | 자바스크립트의 소스 코드 보호를 위해 난독화를 하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
KR20100023880A (ko) | 서버 측 분석 및 인스트루먼테이션을 통한 매쉬업 컴포넌트 격리 | |
CN109508437A (zh) | 一种搜索网站审计方法、系统及网关设备和存储介质 | |
CN110309631B (zh) | 一种编程语言结构混淆处理方法、智能终端及存储介质 | |
CN114282233A (zh) | Web性能优化方法、装置、计算机设备和存储介质 | |
CA3150187C (en) | Method and apparatus for protecting web script codes | |
CN107147645A (zh) | 网络安全数据的获取方法及装置 | |
CN111651781B (zh) | 日志内容保护方法、装置、计算机设备和存储介质 | |
Ablahd et al. | Using flask for SQLIA detection and protection | |
CN114978649B (zh) | 基于大数据的信息安全保护方法、装置、设备及介质 | |
Yang et al. | Exploring injection prevention technologies for security-aware distributed collaborative manufacturing on the Semantic Web | |
KR101296384B1 (ko) | 웹 페이지 무결성 검증 시스템 및 방법 | |
Le et al. | Webassembly: portability and risks | |
Satyanarayana et al. | Static analysis tool for detecting web application vulnerabilities | |
CN113590624A (zh) | 一种数据处理方法及电子装置 | |
CN118035958A (zh) | 基于动态链接库提高源码安全的方法、装置、设备及介质 | |
Chen et al. | Compiler support for effective XSL transformation | |
HK1202666B (en) | Method for data protection and device thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20100712 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20110819 Patent event code: PE09021S01D |
|
AMND | Amendment | ||
PG1501 | Laying open of application | ||
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20120326 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20110819 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
AMND | Amendment | ||
PX0901 | Re-examination |
Patent event code: PX09011S01I Patent event date: 20120326 Comment text: Decision to Refuse Application Patent event code: PX09012R01I Patent event date: 20111121 Comment text: Amendment to Specification, etc. |
|
PX0701 | Decision of registration after re-examination |
Patent event date: 20120605 Comment text: Decision to Grant Registration Patent event code: PX07013S01D Patent event date: 20120425 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I Patent event date: 20120326 Comment text: Decision to Refuse Application Patent event code: PX07011S01I Patent event date: 20111121 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I |
|
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20120613 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20120614 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20170328 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20170328 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180328 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20180328 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190325 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20190325 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20210324 Start annual number: 10 End annual number: 10 |
|
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20240324 |