본문 바로가기

분류 전체보기

(272)
엑셀 매크로 소스코드 비밀번호 없이 추출하는 방법 엑셀에 있는 (워드나 파워포인트도 마찬가지지만) 매크로 코드 (= VBA 코드, VBA: Visual Basic for Application)를 다른 사람이 함부로 볼 수 없게 하기 위해 비밀번호를 걸어 놓을 수 있다. 그러나, 이 방법은 너무 쉽게 무력화되고, 그 무력화하는 방법이 인터넷에 너무 많이 알려져서, 개발자 수준도 아니고 일반 사용자가 쉽게 암호를 모르고도 매크로 코드를 볼 수 있다. 그래서, 다른 방식으로 매크로 코드를 보호하는 툴이 있고, 유상으로 판매하기도 한다. 암호 없이 매크로 코드(VBA 소스코드)를 보는 방법 정리 가장 널리 알려지고 손쉬운 방법은, 엑셀 파일를 구성하는 부속 파일인 vbaProject.bin 파일의 내용 중 일부(암호에 관련된 값)를 수정하는 것이다. 이 방법을..
[파워포인트 팁]사용되지않는 마스터 장표 찾아서 자동 삭제하는 VBA 코드 쓰레기 마스터 장표가 쌓이는 경우 특히 회사에서 이런 경우가 많은데, 템플릿처럼 사용되는 파워포인트 파일을 계속 재활용하여 작성하다 보면, 슬라이드 마스터 장표가 계속해서 쌓이고, 어느 순간부터는 이 파일에 대해서 파워포인트가 버벅대며 동작을 잘 안하게 된다. 문제는 슬라이드 마스터 장표가 너무 많아서이다.!!! 그것도 실제 사용은 안되면서 자리만 차지하는. 이것을 수동으로 일일이 지울 수도 있는 데, 수십 개를 넘어가면 막노동이 된다. 일일이 지우다가 짜증이나서, 프로그램을 만들었다. 간단한 VBA 프로그래밍으로 해결할 수 있다. (Excel용 VBA는 꽤 많이 보이는데, 파워포인트로는 잘 안 보인다. 파워포인트에서도 VBA를 활용하면, 막노동을 줄일 수 있다.) 해결책 1. 수동으로 사용되지 않는 마..
엑셀 VBA 코드 보호 및 크랙 방법 엑셀 파일 자체를 보호하는 것은 파일을 저장할 때 패스워드를 지정하면 된다. Excel 2016까지는 패스워드를 무력화 시키는 쉬운 방법들이 있는데( 앞 글 참조), Excel 2019부터는 쉽지 않다. 엑셀 파일 자체를 보호하는 것과 별개로, VBA(Visual Basic for Application) 코드를 보호하는 것은 또 다른 일이다. 일반적으로 VBA코드에 암호화를 하는 이유는, 엑셀 파일 자체는 이용할 수 있게 배포하면서, VBA 코드는 자신의 노하우가 들어 있기에, 사용자가 볼 수 없게 하려는 것이 대부분의 이유 따라서, 엑셀 파일 암호화를 해도, 그 암호는 알려줘야하고, 단 VBA 코드에 대한 패스워드는 알려주지 않아서 사용자가 VBA 코드를 보지 못하게 해야 한다. 주식 거래용 기능을 엑..
비밀번호에 의해 보호된 엑셀 파일 보호 해제 방법(Excel 97 - 2016) 엑셀 파일을 저장할 때 비밀번호를 지정하면, 비밀번호를 암호화 키로해서 파일 전체가 암호화된다. 열기 암호: 파일 전체가 암호화된다. 쓰기 암호: 파일을 수정 후 저장하려고 할 때 인증용으로 사용 암호를 지정하는 방법은 : "다른 이름으로 저장 - 도구 - 일반 옵션"에서 사용할 암호를 입력 후 "확인"클릭 스펙상으로, 파일 암호화에 사용될 수 있는 방법은 4가지. (출처: MS사의 MS-OFFCRYPTO 문서) XOR RC4 CAPI or CryptoAPI ECMA-376 실제 엑셀 버전별 사용된 암호화 알고리즘은, Excel 97 - 2003: RC4 사용 RC4 알고리즘 자체의 취약성으로, password를 모르고도 Decryption 가능 (참조) Excel 2007 - 2013: AES-128 ..
엑셀 파일 종류별(통합문서, 매크로, 추가기능) 파일 포맷 자료 엑셀에서 자주 사용되는 파일 형태인 '통합 문서', '매크로 포함 통합문서', '엑셀 추가기능' 파일에 대해서, 각 포맷을 정리해 둔다. 파일 종류 확장자 지원되는 엑셀 버전 설명 통합 문서 .xls Excel 5.0, Excel 95 BIFF5 포맷 .xls Excel 97 - Excel 2003 BIFF8 포맷, 설명 페이지 .xlsx Excel 2007 부터 - 설명 페이지 매크로 통합 문서 .xlsm Excel 2007, Excel 2010, Excel 2013, Excel 2016 설명 페이지 추가 기능 .xla Excel 97 - Excel 2003 위 xls와 xlsm 설명 페이지와 동일 .xlam Excel 2007, Excel 2010 - - - MS Office 문서 암호화에 대한 설명..
[목차]푸리에 변환의 모든 것 01. 푸리에 변환이란 https://infograph.tistory.com/220 01. 푸리에 변환이란 통신 이론, 디지털 신호, 음성처리 , 영상처리 등에서 항상 나오는 이론이 푸리에 변환이고, 가장 어려워하는 것이고, 내용을 이해하려고 많은 노력을 기울이면서도 정작 잘 파악이 안 되고, 다 infograph.tistory.com 02. 푸리에 급수 : 주기신호, 삼각 함수(사인, 코사인 그래프) https://infograph.tistory.com/221 02. 푸리에 급수 : 주기신호, 삼각 함수(사인, 코사인 그래프) 푸리에 변환을 바로 설명하기 전에 푸리에 급수부터 파악해볼 것이다. 푸리에 변환은 주기적인 신호이건 아니건, 모든 신호에 대해 적용할 수 있는 변환 방법이다. 반면에 푸리에 급수..
[07-7 Code]FFT source code for C 1. fft.h int fft(long N, double XR[], double XI[]); char * cplxStr(double re, double im); 2. fft.c /* fft.c */ /* 2022.8.7 Created by HJ */ #include #include #define PI 3.14159265358979 int fft(long N, double XR[], double XI[]){ /* 1. check 2^n count -> if else then return -1 */ if ((N !=0) && ((N & (N-1)) != 0) ) return -1; /* 2. calculate W */ long N2 = N >> 1; double WR[N2], WI[N2]; /* Real a..
07-7. C로 짠 FFT Code C나 C++로 된 FFT 코드는 예전부터 많이 있을 것이기에, C용 FFT 코드는 잘 되어 있는 코드를 소개만 하려고 했었다. 그러나, 여러 코드들을 구글링해서 찾아봤으나, 예상외로 맘에 드는 코드를 찾지 못했다. 간단히 짤 수 있을 거 같은데, 복잡하게 짰거나, 너무 길게 짠 코드가 대부분이었다. 그래서, 계획에 없었으나 C로 FFT를 짜기로 한다. 코드 작성 방침 가능한 간단히 짠다. 최상의 속도가 나오도록 한다. 포인터를 사용하지 않는다. 신호데이터를 double형 배열로 처리 기본 제공되는 cos 함수 정도만 사용하고, 특수한 함수를 사용하지 않는다. 입력 데이터의 개수 제한을 하지 않는다. 메모리가 허용하는 한 쿨리-튜키 알고리즘 사용 fft만 구현 (ifft는 구현하지 않음) 2^n 사이즈의 ..
Notepad++에서 작성한 한글이 cmd에서 깨질 때 C나 C++에서 한글이 print 되도록 했는데, cmd에서 실행했을 때 깨져서 나온다면, 대부분 인코딩 불일치 때문이다. Notepad++와 cmd 창의 인코딩 종류를 일치시켜주면 해결된다. 해결 방법 Notepad++과 cmd창 모두 인코딩을 같은 것으로 맞춰준다. (예를 들어 UTF-8로 통일) 1. Notepad++에서의 인코딩 설정 방법 "인코딩" 메뉴에서 "UTF-8"이 설정되어 있는지 확인한다. 만약 안되어 있으면 "UTF-8"로 설정 2. cmd 창에서의 인코딩 설정 1) cmd 창을 연다 "윈도우키 + R" 키를 누르고, "실행" 창에서 "cmd"라고 타이핑 후 "확인" 버튼 누른다. 2) cmd 창에서 "chcp 65001"이라고 타이핑하고 엔터 chcp 명령은 "chnage code ..
[07-6 Code] FFT program for Java This page introduce FFT sourece code. There are 4 java soure file and 1 text file. - fourier/FFT.java - fourier/Complex.java - fourier/CMath.java - test/Test_FFT.java - data/input.txt 1. fourier/FFT.java package fourier; public class FFT { private static double log2(double a) { return Math.log(a) / Math.log(2); } /** * Check the number is power of 2 or not. * @param N * @return * 0 : it is power..