클라이언트 분석을 어렵게 하기 위해 exe 암호화 툴이 필요하다.
써본 건 Asprotect랑 Themida 밖에 없는데...
요새 대세는 Themida 인 듯...
Asprotect는 USER_POLYBUFFER를 통해
특정 영역의 코드에 더미 코드를 집어넣는 방식이었다.
Themida는 분석하기 더 어렵게하기 위해 다음과 같은 기능을 추가로 제공한다.
## VM Macro
; VM_START ~ VM_END
; SecureEngine VM에서 코드 실행
* 주의
; iteration 피할 것
; switch 동작 안할 수 있음
; exception 동작 안할 수 있음
## VM Macro with v level
; VM_START_WITHLEVEL(x) ~ VM_END
; v level : 0 ~ 255
; 20 이상은 vm 코드가 커질 우려가 있음
; Dynamic Opcodes 옵션이 켜져 있어야 함
; for harder
## CodeReplace
; CODEREPLACE_START ~ CODEREPLACE_END
; application code를 garbage code로 변경
; 실제 코드는 secure engine 코드에 encrypt 해서 저장
; 실행될 때 dynamic하게 decrypt해서 실행
## Encode
; ENCODE_START ~ ENCODE_END
; ENCODE_START에서 코드 블럭 decrypt
; ENCODE_END에서 코드 블럭 encrypt
; ENCODE_END가 불리지 않고 return하지 않도록 주의
## Clear
; CLEAR_START ~ CLEAR_END
; 어플리케이션에서 한번 실행되는 코드에 사용
; 사용후 삭제됨
## Unprotected
; UNPROTECTED_START ~ UNPROTECTED_END
; unprotect 상태에서만 실행될 수 있는 코드
; unprotect된 코드가 릴리즈되는 실수를 막기 위해 사용
가장 이상적인 부분은 모든 것을 서버에서 처리하도록 해야하는데...
현실상 그럴 수 없으니 위와 같은 툴로 분석하게 힘들게라도 해서
해커를 귀찮게 해야한다. ㅡㅜ