2017-01-19 9 views
0

SGX를 처음 접했고 간단하게 시작하려고했습니다. 다행히도, 나는 this very basic tutorial을 발견했다. 불행히도, 간단히 말해서 나는 그것을 작동시키지 못합니다. 코드가 실행되지만 출력에 오류가 있습니다.문제 SGX 인클로저 생성 및 실행

[sgx_create_enclavew ..\urts\win\urts.cpp:195] Couldn't open file with CreateFile() 

error 0x200f, failed to create enclave. 

Buffertests: 
Buffer before change: Hello World! 
Buffer after change: Hello World! 

Stringtests: 
Returned Secret: 
Saved Secret: My secret string 
Load Secret: 

Integertests: 
secretIntValue first load: 0 
saved a 1337 to the enclave. 
secretIntValue second load after 1337 was saved: 0 

error, failed to destroy enclave. 

image of output

자습서는 말한다 :

당신이 오류가 발생하는 경우 SGX는 영토 파일을 찾을 수 없습니다. 해결 방법은 encl_test_save.signed.dll을 app_test_save.exe가있는 폴더로 이동하는 것입니다.

나는 시도했지만 문제를 해결하지 못했습니다.

내가 사용하여 영토를 만들려고 :

sgx_create_enclave(ENCLAVE_FILE, SGX_DEBUG_FLAG, &token, &updated, &eid, NULL); 

가 반환 SGX_ERROR_ENCLAVE_FILE_ACCESS

이 문제가 비주얼 스튜디오의 다른 버전을 사용하는 결과가 될 수 있을까? (이 튜토리얼은 VS2015를 사용하는 동안 VS2015를 사용합니다.)

답변

0

면책 조항 : 다른 설정 (우분투, 이클립스)에서도 동일한 오류가 발생했기 때문에 어느 정도 도움이 될지 확신하지 못했습니다. initialize_enclave() 전에

이하는 chdir(absolutePath) 명령 absolutePath 요구는 실행 파일이 어디 있는지에 대한 절대 경로로 위치를 실행해야합니다 (다시 sgx_create_enclave()를 호출하는)라고합니다.

잘못된 경로로 인해 오류가 발생했습니다.

0

감사합니다. 해결했습니다. 나는 enclave_test_save.signed.dll을 루트 폴더에 .edl 파일로 저장해야하며 .exe 파일로 저장해서는 안된다는 것을 알게되었습니다.

0

명령 프롬프트 나 IDE에서 응용 프로그램을 실행 했습니까? IDE를 사용하는 경우 프로젝트 속성 -> 구성 속성 -> 디버깅 -> 작업 디렉토리 아래에서 디버깅 속성을 $ (OutDir)에서 $ (ProjecttDir)로 변경해야합니다 (영토 및 응용 프로그램 모두). 인텔 R) SGX 디버거.