엑셀의 VBA 코드에 대해서 Protection이 되어 있는 경우 암호를 모르면 VBA코드를 읽을 수 없다.
암호를 모르는 상태에서도 해제하는 방법은 다음과 같다.
대상파일을 a.xlam이라고 한다면
1)a.xlam을 7zip을 이용해서 연다. (탐색기에서 a.xlam을 선택하고 7-zip - 압축파일 열기)
2)xl/vbaProject.bin 파일만 뽑아낸다. (7-zip 프로그램 화면에서 해당파일을 탐색기쪽으로 드래그앤 드롭하고 7-zip에 있는 vbaProject.bin은 삭제)
3)뽑아낸 vbaProject.bin 파일을 바이너리 에디터로 연다. (HxD 프로그램 사용. https://mh-nexus.de/en/hxd/)
4)vbaProject.bin파일에서 "DPB"를 찾은 후 이를 "DPx"로 수정하고 저장
5)수정된 vbaProject.bin 파일을 7-zip에 열려있는 a.xlam안에 집어넣는다. (탐색기의 vbaProject.bin을 선택하고 7-zip 화면으로 드래그앤드롭)
6)a.xlam을 더블클릭해서 연다. 경고메시지가 나오더라도 무시하고 파일 계속 연다.
7)Alt-F11 눌러서 VBA 에디터를 연다. 만약 "Unexpected error" 뜨더라도 무시하고 계속 OK 클릭한다. 끝.
8)근데 만약 이 파일을 열때마다 signature가 틀린다는 경고메시지가 뜬다면,
. Alt-F11을 눌러 VBA 에디터 연다
. VBAProject 속성을 열어서 보호탭에서 '읽기 전용으로 프로젝트 잠금' 체크하고 새로운 암호를 입력한다.
. 파일을 저장하고 벗어난 후, 위의 1)~3번까지 수행한후,
. vbaProject.bin파일에서 DPx를 찾은 후, 이를 DPB로 수정하고 저장
. 이제 이 파일의 VBA코드를 볼때는 새로 입력한 암호를 사용하면 된다. 끝.
-끝-
'잡다 > 크랙' 카테고리의 다른 글
엑셀 VBA 코드 읽기 프로텍션 크랙 및 방어 방법 (0) | 2022.02.04 |
---|---|
엑셀(2010) 시트보호/통합문서보호 깨기_매크로 이용 (0) | 2019.11.02 |
엑셀(2010,2013) 시트보호/통합문서보호 깨기_XML 수정 방법 (0) | 2019.10.10 |