| 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 |
|