-
[2021/02/02][짤막한 이야기 - 코드 가상화]짤막한 이야기 2021. 2. 5. 14:24728x90반응형
[2021/02/02][짤막한 이야기 - 코드 가상화]
“코드 가상화”는 소프트웨어 보호 기술의 한 종류이다.
보호 대상이 되는 코드 영역에 변형을 가한다는 점에서는 “코드 패킹”과 유사하다.
그러나 “패킹된 코드”와는 달리 “가상화된 코드”는 다시 원본 코드로 복원될 필요가 없다.
패킹된 코드와 가상화된 코드 모두 CPU에서 올바르게 해석되지 않는다.
가상화된 코드의 경우 프로그램 내에 “가상CPU(VCPU)”가 코드 형태로 존재하고, 해당 가상CPU에서 코드를 해석한다.
즉, 가상화된 코드를 해석할 수 있는 VCPU와 해석 결과에 따라 실제로 기능을 실행하는 “핸들러 코드”가 존재하게 된다.
가상화된 코드를 에뮬레이션하는 형태의 보호기법이기 때문에, 원본 코드로 복원되지는 않지만 성능이 매우 크게 저하된다.
따라서 코드 가상화는 전체 프로그램에 적용하기 보다는 일부 영역에 대해서만 적용된다.
[관련된 짤막한 이야기 - 코드 패킹[2021/01/15]]
#이야기 #루니프 #소프트웨어보호 #가상화 #가상CPU #핸들러코드
[2021/02/02][Short Story - Code Virtualization]
“Code Virtualization” is a kind of software protection technique.
It is similar to “Code Packing” in that it transforms the code area to be protected.
However, unlike “Packed Code”, “Virtualized Code” does not need to be restored to the original code.
Neither packed code nor virtualized code is interpreted correctly by the CPU.
In the case of virtualized code, the “Virtual CPU(VCPU)” exists in the program in the form of code, and the code is interpreted by the virtual CPU.
In other words, there is a VCPU that can interpret the virtualized code and the “Handler Code” that actually executes the functionality according to the interpret result.
Because it is a protection technique that emulates virtualized code, it is not restored to the original code, but performance is greatly degraded.
Therefore, code virtualization is applied only to some regions rather than to the entire program.
[Related Short Story - Code Packing[2021/01/15]]
#Story #LootNiP #SoftwareProtection #Virtualization #VCPU #HandlerCode728x90반응형'짤막한 이야기' 카테고리의 다른 글
[2021/02/04][짤막한 이야기 - 해쉬 함수] (0) 2021.02.05 [2021/02/03][짤막한 이야기 - 일방향 함수] (0) 2021.02.05 [2021/01/30][짤막한 이야기 - 카이사르 암호] (0) 2021.02.05 [2021/01/29][짤막한 이야기 - 고전 암호] (0) 2021.02.04 [2021/01/28][짤막한 이야기 - 일회성 패드] (0) 2021.02.04