Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

pcode

해독하기 어려운 실행 파일 만들기

설명

예제

pcode(item)은 검색 경로에 있는 .m 파일 또는 폴더의 코드를 난독 처리하고 확장자가 .p인 P 파일을 생성합니다. item.m 파일이면 결과 파일은 item.p입니다. item이 폴더인 경우 이 폴더에 있는 모든 스크립트나 함수 파일이 현재 폴더에서 난독 처리됩니다. P 파일은 대응하는 .m 파일을 수정한 후에도 .m 파일보다 실행 우선 순위가 높습니다.

참고

pcode 함수는 프로그램 파일을 난독 처리한 후 암호화하지 않으므로 P 파일이 안전한 것으로 간주해서는 안 됩니다. 지적 재산을 보호하기 위해 파일을 P 코딩하는 것은 권장되지 않습니다.

pcode(item1,item2,...,itemN)은 쉼표로 구분된 목록에 지정된 각 .m 파일 또는 폴더에 대해 개별 P 파일을 만듭니다.

예제

pcode(___,'-inplace')는 입력값과 동일한 폴더에 P 파일을 만듭니다. 다른 모든 입력 인수 다음에 '-inplace'를 지정합니다.

예제

모두 축소

함수 파일을 P 파일로 변환합니다.

현재 폴더에서 myfunc.m이라는 파일에 3차 다항식의 제곱근을 반환하는 함수를 정의합니다.

function y = myfunc(x)
y = sqrt(x.^3 + x.^2 + x + 1);
end

myfunc.m에서 P 파일을 만듭니다. myfunc를 호출할 때 MATLAB®이 사용해야 하는 파일을 정의해 둡니다.

pcode myfunc
a = myfunc(3);
which myfunc
c:\myMATLABfiles\myfunc.p

sparfun 폴더에서 선택한 파일을 P 파일로 변환합니다.

임시 폴더를 만들고 .m 파일의 기존 경로를 정의합니다.

tmp = tempname;
mkdir(tmp)
cd(tmp)
filename = fullfile(matlabroot,'toolbox','matlab','sparfun','spr*.m');

P 파일을 만듭니다.

pcode(filename)
dir(tmp)
.            ..           sprand.p     sprandn.p    sprandsym.p  sprank.p     

이제 임시 폴더는 인코딩된 P 파일을 포함합니다.

클래스의 일부인 입력 파일에서 P 파일을 생성합니다. (패키지의 일부인 파일에도 동일한 절차를 적용할 수 있습니다.) 이 예제에서는 기존 MATLAB 예제 클래스를 사용합니다.

classfolder.m 파일이 포함된 기존 클래스 폴더로 정의합니다.

classfolder = fullfile(docroot,'techdoc','matlab_oop', ...
    'examples','@BankAccount')
dir(classfolder)
classfolder =

C:\Program Files\MATLAB\R2019a\help\techdoc\matlab_oop\examples\@BankAccount


.              ..             BankAccount.m  

임시 폴더를 만듭니다. 지금 이 폴더에는 클래스 구조체가 없습니다.

tmp = tempname;
mkdir(tmp)
cd(tmp)
dir(tmp)
.            .. 

경로 classfolder에 있는 모든 .m 파일에 대해 P 파일을 만듭니다. 입력 파일은 클래스의 일부이므로, MATLAB은 출력 파일이 동일한 클래스에 속하도록 폴더 구조체를 만듭니다.

pcode(classfolder)
dir(tmp)
.             ..            @BankAccount 

P 파일은 동일한 폴더 구조체에 있습니다.

dir('@BankAccount')
.              ..             BankAccount.p  

입력 파일과 동일한 폴더에 P 파일을 생성합니다.

여러 개의 .m 파일을 임시 폴더에 복사합니다.

filename = fullfile(matlabroot,'toolbox','matlab','sparfun','spr*.m');
tmp = tempname;
mkdir(tmp)
copyfile(filename,tmp)
dir(tmp)
.            ..           sprand.m     sprandn.m    sprandsym.m  sprank.m 

원래 .m 파일과 동일한 폴더에 P 파일을 만듭니다.

pcode(tmp,'-inplace')
dir(tmp)
.            sprand.m     sprandn.m    sprandsym.m  sprank.m     
..           sprand.p     sprandn.p    sprandsym.p  sprank.p  

입력 인수

모두 축소

난독 처리할 .m 파일 또는 폴더로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

  • 파일 확장자가 없거나 폴더 이름이 아닌 입력 인수는 MATLAB 경로나 현재 폴더에 있는 함수여야 합니다.

  • 와일드카드 문자 *를 사용하면 pcode.m 확장자가 없는 모든 파일을 무시합니다.

  • pcode 함수는 라이브 스크립트 또는 함수(.mlx)를 지원하지 않습니다.

  • item이 패키지 또는 클래스 폴더 내에 있으면 pcode는 동일한 패키지 또는 클래스 구조체를 만들어 결과 P 파일을 담습니다.

.m 파일 또는 폴더 목록으로, 문자형 벡터 또는 string형 스칼라의 쉼표로 구분된 목록으로 지정됩니다. 이 목록에는 파일과 폴더가 혼합되어 포함될 수 있습니다.

세부 정보

모두 축소

릴리스 호환성

pcode 알고리즘은 MATLAB 버전 R2007b에서 다시 설계되었습니다. P 파일이 R2007b 이전 버전에서 생성된 경우 R2015b 버전 이상에서는 실행되지 않습니다. R2007b 이상에서 생성된 파일은 R2007a 이하에서 실행되지 않습니다.

관련 파일을 P 코딩하기

프로그램 외에도 프로그램이 종속된 다른 함수와 스크립트를 난독 처리할 수 있습니다. 프로그램을 실행하는 데 필요한 파일을 확인하려면 matlab.codetools.requiredFilesAndProducts 함수를 사용하십시오.

코드 난독 처리하기

P 파일은 난독 처리된 실행 전용 형식의 MATLAB 코드입니다. P 파일은 MATLAB 편집기 또는 라이브 편집기에서 열 수 없습니다.

R2006a 이전에 개발됨