본문 바로가기

Information Security

난독화 (Obfuscation)

반응형

* 난독화 : 코드의 가독성을 낮춰 역공학에 대한 대비책을 제공, 프로그램 코드의 일부 또는 전체를 변경하여 소스코드를 지키는 방법.

- 일반적인 난독화 컴파일러는 어휘 분석, 구문 분석, 의무 분석 이후 난독화를 수행

 

 

 

* 난독화 유형

유형 내용 예시
구획 난독화
(Layout Obfuscation)
프로그램에 큰 영향을 끼치지 않는 세부적 요소들을 변화/제거하는 기법 주석 제거 등
데이터 난독화
(Data Obfuscation)
변수들을 나누거나, 합치는 등 읽기 어렵게 하는 방향의 모든 기법 오더링, 인코딩, 스토리지 등
집합 난독화
(Aggregation Obfuscation)
순서를 이용해 코드를 난독화하거나 클래스를 분할하는 기법 자료 순서, 클래스 분할 등
제어 난독화
(Control Obfuscation)
제어를 어지럽게하고 프로그램이 묶이는 단위를 조절하는 기법 계산 변환, 집합 변환 등
예방 난독화
(Preventive Obfuscation)
알려진 역 난독화 방법을 알고, 그 방법을 미리 차단하는 기법 디버거 제거, 고유 방식 확인 등
패킹
(Packing)
실행 파일을 압축, 불필요한 부분을 제거, 압축을 통해 새로운 이미지를 생성 바이너리 패킹 등

 

 

반응형