VBA Protection.

VBA 보호는 어떻게 작동하나요?

이 서비스가 무엇을 지키고, 어디까지 지키는지 설명합니다.

1. 왜 필요한가

Excel 매크로(VBA) 코드는 기본적으로 누구나 편집기에서 열어볼 수 있어, 공들여 작성한 로직·수식이 그대로 노출됩니다. Excel VBA 편집기의 '프로젝트 잠금' 암호를 걸어도, 그 암호를 우회하는 도구가 인터넷에 널려 있어 비교적 쉽게 풀립니다.

VBA Protection은 이런 우회 도구로도 사용자의 매크로 코드가 쉽게 노출되지 않도록 보호합니다.

2. 두 겹의 방어

공격 도구 / 공격자 ① 숨김·차단·교란 편집기 잠금 우회 도구 교란 코드 정보 제거 대다수 자동 도구 차단 일부 통과 시 ② 난독화 이름·문자열·주석 변형·은닉 최후의 안전망 원본 코드 노출 방지

① 숨기고, 차단하고, 교란합니다

코드가 보이지 않아도 매크로는 정상 동작합니다. 코드는 파일에 남아 있고, 사용자에게 보이지 않게 처리된 것뿐입니다.

② 난독화 — 최후의 안전망

Excel은 VBA 코드를 '암호화'가 아니라 '인코딩'만 하기 때문에, 전용 도구로 파일에서 소스를 추출하는 공격을 100% 막을 수는 없습니다. 그래서 VBA Protection은 소스 자체를 난독화해 보관합니다. 설령 ①이 뚫려 코드가 추출되더라도, 원래의 온전한 소스로 복원하기 어렵고 의미 파악이 힘들게 만듭니다.

아래는 난독화된 코드의 예시입니다.

Option Explicit
Sub RenameFilenames()
Dim I As String
Dim l As Object
Dim II As Object
Dim Il As Long
I = ActiveSheet.Cells(1, 1).Value
Set l = CreateObject((ChrW(&H53) & ChrW(&H63) & ChrW(&H72) & ChrW(&H69) & ChrW(&H70) & ChrW(&H74) & ChrW(&H69) & ChrW(&H6E) & ChrW(&H67) & ChrW(&H2E) & ChrW(&H46) & ChrW(&H69) & ChrW(&H6C) & ChrW(&H65) & ChrW(&H53) & ChrW(&H79) & ChrW(&H73) & ChrW(&H74) & ChrW(&H65) & ChrW(&H6D) & ChrW(&H4F) & ChrW(&H62) & ChrW(&H6A) & ChrW(&H65) & ChrW(&H63) & ChrW(&H74)))
If Not l.FolderExists(I) Then
Exit Sub
End If
Set II = l.GetFolder(I)
Il = 1
Call RenameFilesInFolder(II, l, Il)
End Sub

3. 한계

VBA Protection으로 보호된 파일은 일반 사용자나 자동 우회 도구로는 쉽게 뚫리지 않습니다. 그러나 소스는 (난독화된 형태로) 파일에 남아 있으므로, 전문 공격자의 수동 분석으로는 난독화된 소스가 노출될 수 있습니다.

따라서 이 서비스는 ▲일반 사용자·자동 도구의 손쉬운 코드 열람을 차단하고 ▲최악의 경우에도 온전한 원본 대신 난독화된 코드만 남게 하는 것을 목적으로 합니다.

4. 보호 가능한 파일

5. 사용 시 주의

보호 과정에서 원본의 주석·줄바꿈 등이 사라지고 코드가 난독화됩니다. 많은 파일로 정상 동작을 확인했지만, 변환된 파일이 제대로 동작하는지 반드시 직접 확인하시고, 변환 전 원본 파일을 따로 백업해 두시기 바랍니다.

이 서비스는 상용 서비스가 아니며, 있는 그대로(as-is) 제공됩니다. 이용 여부의 결정과 변환 파일의 동작 확인·사용은 전적으로 사용자에게 있습니다. 운영자는 어떤 보증도 하지 않으며, 이 서비스 이용으로 발생하는 어떤 손해에 대해서도 책임지지 않습니다. 변환된 파일에 대한 소유권은 사용자에게 있으며, 이 사이트는 어떠한 권리도 주장하지 않습니다. (베타 서비스로, 예고 없이 변경·중단될 수 있습니다.)

6. 개인정보 보호

7. 참고

이 서비스는 Rust로 개발되었습니다.