Obfuscation
코드 난독화는 프로그래밍 언어로 작성된 코드에 대해 읽기 어렵게 만드는 작업이다. 대표적인 사용 예로는 프로그램에서 사용된 아이디어나 알고리즘 등을 숨기는 것 등이 있다. 코드 난독화 과정을 거친 코드를 특정 기준에 의해 심사하는 대회도 있다.
코드 난독화는 프로그램 코드의 일부 또는 전체를 변경하는 방법 중 하나로, 코드의 가독성을 낮춰 역공학에 대한 대비책을 제공한다. 난독화를 적용하는 범위에 따라 소스 코드 난독화와 바이너리 난독화로 나눌 수 있다. 또한, 난독화의 목적에 따라 각각 기술의 무단복제와 불법으로 침입하려는 프로그램을 방지하는 것으로 나뉘기도 한다.
See also
- Reverse engineering
- C++ Obfuscator (CXX OBFUS) (상용/3개월 프리)
- pyarmor (Python)
- proguard
- Minification - 코드 압축/최소화
Favorite site
- Wikipedia (en) 난독화에 대한 설명 (일반적 의미의 난독화에 대한 설명이다.)
- Wikipedia (en) 소프트웨어 난독화에 대한 설명
- Can I create an object file using gcc that cannot be reverse engineered?
C/C++ 난독화 관련
JavaScript 난독화 관련
- Javascript obfuscation techniques by example – Trickster Dev - 예제로 알아보는 Javascript 난독화(Obfuscation) 기법
- Hex 문자열 코딩, 문자열 어레이 매핑, 데드 코드 인젝션, Scope 난독화, 제어 흐름 난독화, 맹글링, 코드 최소화, JSFuck