신지덤

  1. 신기술
    1. 신기술

코드 난독화(마스킹)

개념
- 프로그램 소스코드를 변형하는 방법으로 가독성을 현저히 떨어트려 리버스엔지리어닝을 통한 정보 해킹 공격을 막는 기술

I. 코드 난독화

     프로그램 소스코드를 변형하는 방법으로 가독성을 현저히 떨어트려  리버스엔지리어닝을 통한 정보 해킹 공격을 막는 기술


II. 필요성  

     1) 부득이하게 소스 코드를 릴리즈(release)해야 하는 경우.
     2) AJAX의 경우, 자바스크립트(JavaScript)로 작성된 코드가 브라우저에 그대로 노출됨 (JavaScript Obfuscator)
     3) JAVA소스는 디컴파일해보면 원래 소스 코드의 대부분이 복구됨


III. 코드 난독화 방법

     치환,셔플,숫자날짜변경,암호화,널처리
         1) 스페이스, 탭 등을 없앤다
         2) 바이너리 심볼제거 - 바이너리에서 사람이 이해가능한 정보제거(C/C++) - JAVA는 심볼 변경
         3) 복잡한 코드생성 - 실행되지 않는 함수 추가 -  Simple code 위배
         4) 무의미한 코드생성 - Empty 함수 중간 삽입 - dead code 제거 위배
         5) 코드 복사, 무빙 - 관련코드 분리, 관련없는 함수 묶기  - 성능을 고려 해야 함
         6) 데이터 인코딩 - Incoding 후 필요시만 Decoding - 중요정보 보호
         7) 그외 변수,순환재귀함수,변수이름,내부변수 치환,변수 난독화
 

댓글