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 이전에 개발됨