전에도 이런글 올린적 있는 것같은데 크흠...
0.독자적인 방어 라이브러리를 만들고 사용한다.
C언어나 C++언어로 네이티브 라이브러리를 만들어 내부적으로 사용하면 디스어셈블리나 리버스 엔지니어링 당하지 않는 이상 뚫리지 않습니다.
1.암호화
암호화는 가장 흔한 방식중 하나이죠.
배포전에 파일을 하나하나 암호화 해서 실행한 후에 복호화 해서 메모리에 올려둔 다음 (임시파일로 저장하면 유출될 가능성이 큼)재정의된 파일 로드 함수에서 해당 메모리에 적재된 복호화된 파일을 불러오는겁니다.
다만 메모리 점유율에 대해서 큰 타격을 입겠쬬.
1.1 부분적 암호화 및 캐싱
부분적 암호화 및 캐싱을 하면 보안수준은 좀 떨어지지만 복호화 속도 및 메모리 공간은 그만큼 향상됩니다.
암호화된 부분의 대응 값을 메모리에서 불러와서 치환만하면됩니다.
2.독자적인 파일 포맷
포맷 구조가 너무 단순하거나 리버스 엔지니어링당하지 않는 이상 가장 강려크한 방법입니다.
복호화 되어 리소스가 유출되더라도 편집 및 사용할 방법이 전혀 없으니 거의 포기하게되죠.
하지만 그만큼 개발 난이도가 엄청 높습니다...