22018, 1/1101 회원가입  로그인  
   benkim
   소스 코드 암호화

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=30936 [복사]


소스 코드를 암호화 했다는게 무슨뜻인가요?

  Hit : 10826     Date : 2013/06/10 07:35



    
junoim obstruction.
철자 맞나
난독화나

암호로 암호환후에
eval 같은 함수로 불러오는거죠.
2013/06/10  
Silk obfuscation. 이건 난독화고,
난독화라는건 가시성을 낮춘다는 말입니다.
즉,
int a =10 , b =20;
int c = a+b
라는 아주 쉬운코드를 난독화하면

#define CMODLmMMVMAAjf20sSJD typedef

CMODLmMMVMAAjf20sSJD int ClxM03sAA_302jAAjfjiik_ja@dj
CMODLmMMVMAAjf20sSJD int VVMWJ388849kDDJDSMAdjanDVDNdk

ClxM03sAA_302jAAjfjiik_ja@dj BJxxCCJk = root(4)+10299+sizeof(int)-2000392810-2018830-0xdeff2ef;
VVMWJ388849kDDJDSMAdjanDVDNdk JkklwidwaaldpiDfn_dDmVXXDkfj2342Sd = (BJxxCCJk >>2 + 0x4d7 ) & 0xffffff1;
ClxM03sAA_302jAAjfjiik_ja@dj MMVno2 = (BJxxCCJk - BJxxCCJk - JkklwidwaaldpiDfn_dDmVXXDkfj2342Sd - JkklwidwaaldpiDfn_dDmVXXDkfj2342Sd + BJxxCCJk) * (0x00 & 0x00) + BJxxCCJk + JkklwidwaaldpiDfn_dDmVXXDkfj2342Sd


이렇게 읽기 어려운 코드로 바꾸는걸 말합니다.
결과값이 동일하고 문법에 위배되지 않지만 단순히 변수명이나, 순서, 쓸모없는 코드를 집어넣음으로써 읽는걸 어렵게 만드는거죠.


난독화랑 암호화는 좀 다릅니다만,
보통 사회적 통념으로 봤을 때, 질문자님이 보신 소스코드를 암호화했다..라는 문장은
분명 누군가가 난독화와 암호화를 정확히 구분하지 못해서 쓴 말을 그대로 질문에 올리신걸로 생각됩니다.

하지만
굳이 구분짓자만 소스코드를 암호화했다면

단순히 읽기 어렵게 만든게 아니라,
DES나 AES , BASE64, 등등으로 키값이 있어야 정상적인 소스를 열람할 수 있도록 암호화했다는 말입니다.


쉽게말하자면,
난독화는 소스코드를 읽기 어렵게 만든거고.
암호화는 소스코드를 아무나 보지 못하게 금고에 넣어버린것과 같습니다.
2013/06/12