언리얼 어드밴스드 보안 적용하기

어드밴스드 보안 적용을 통해 코드를 암호화 하실 수 있습니다. 

1. 요구 사항

AppSealing 튜토리얼 진행을 위해 다음과 같은 프로그램이 설치되었는지 확인해 주세요.

  • 언리얼 엔진 설치: 버전 4.1 이상
  • Visual Studio 설치 : 버전 2015 이상 

2. 환경 구축

2.1 권장 사항

샘플 프로젝트를 이용하여 AppSealing을 먼저 적용해 보고 실제 프로젝트에 적용 할 것을 권장 합니다.

 

2.2 Visual Studio로 프로젝트 열기

① 에픽게임즈 런처를 통해 프로젝트 열기 
② [파일] 메뉴에서 [Visual Studio 생성] 또는 [Visual Studio 열기] 클릭. (Fig.1)

(Fig.1)

 

2.3 AppSealing 언리얼 지원 파일 추가하기

① AppSealing 언리얼 지원 파일 다운로드 및 압축해제.

다운로드 링크: AppSealing 언리얼 지원 파일

②프로젝트 폴더에 AppSealingSecurity_Unreal.cpp 및 AppSealingSecurity_Unreal.h 파일 복사.
경로: [언리얼 프로젝트 폴더]/[Source]/[프로젝트 폴더]

③ Visual Studio에서 AppSealing 파일 추가. (Fig.2)
경로: [프로젝트]/[Source]/[프로젝트 폴더] 우클릭 > 추가 > 기존 항목 클릭

(Fig.2)


④ 프로젝트 폴더에 복사해 놓은 AppSealingSecurity_Unreal.h 및 AppSealingSecurity_Unreal.cpp 파일 선택 후 추가.

 

3. AppSealing 태그 적용하기

3.1 헤더 추가

① AppSealingSecurity_Unreal.cpp 파일 열기. 
② 2번째 줄에 있는 #include "project_name.h"를 프로젝트 헤더 파일명으로 수정. (Fig.3)

예) #include "Match3.h"

 

(Fig.3)

 

3.2 태그 추가

언리얼 코드 보호를 위해 보안 헤더 및 태그는 총 5개가 제공

 

#include "AppSealingSecurity_Unreal.h"

태그를 추가하려는 소스 코드 파일 헤더 선언 부분에 추가 (Fig.4)

(Fig.4)

APPSEALING_ENCRYPTION_BEGIN

보호할 코드 영역의 시작 부분에 추가.

이 태그가 추가된 다음 라인의 코드부터 암호화 된다.

 

APPSEALING_ENCRYPTION_END

보호할 코드 영역의 끝 부분에 추가.

이 태그가 추가된 이전 라인까지의 코드가 암호화 된다.

 

APPSEALING_ENCRYPTION_END_RETURN( 반환값 ) 

보호할 코드 영역의 끝 부분을 추가.

이 태그가 추가된 이전 라인까지의 코드가 암호화 된다.

 

APPSEALING_ENCRYPTION_RETURN( 반환값 )

보호된 코드 영역 내에서 값을 반환하는 return 구문을 대체.

주의 :

return 구문을 태그로 변환하지 않으면 실행 시 복호화 된 코드 영역이 다시 암호화 되지 않으므로 보안 취약성이 발생.

 

APPSEALING_ENCRYPTION_RETURN_VOID

보호된 코드 영역 내의 인자 없는 return 구문을 대체.

 

3.2.1 함수 태그 예제 1

반환형이 없는 void 함수 전체 영역을 보호하기 위해서는 다음과 같이 태그를 추가.

(원본 함수)

 

(태그 적용 후)

주의 :

APPSEALING_ENCRYPTION_BEGIN 및 APPSEALING_ENCRYPTION_END는 보호할 코드 영역의 시작과 끝에 반드시 추가.

해당 태그가 생략되거나 잘못된 태그가 사용됐을 경우 Android APK 빌드 과정에서 clang 컴파일 오류 발생.

 

3.2.2 함수 태그 예제 2

반환형 bool 함수 전체 영역을 보호하기 위해서는 다음과 같이 태그를 추가.

함수 내의 return 구문이 있을 경우 모두 태그로 변환.

(원본 함수)

 

(태그 적용 후)

 

주의 :

마지막 return 구문은 APPSEALING_ENCRYPTION_END_RETURN 태그로 변환.

 

3.2.3 함수 태그 예제 3

인자가 없는 return 구문이 사용된 void 함수 전체 영역을 보호하기 위해서는 다음과 같이 태그를 추가.

함수 내의 return 구문이 있을 경우 모두 태그로 변환.

(원본 함수)

 

(태그 적용 후)

주의 :

코드에 return 구문이 없을 경우 APPSEALING_ENCRYPTION_BEGIN 및 APPSEALING_ENCRYPTION_END 태그만 적용.

반환형이 없는 void 형식의 함수라도 코드에 return 구문이 사용된 경우 위의 예제와 같이 반드시 return 구문을 태그로 대체.

 

3.3 APK 파일 빌드

① 언리얼 빌드 기능을 이용해서 APK 빌드.
경로: [파일] > [패키지 프로젝트] > [안드로이드] 클릭
② APK 빌드 후 실링 과정으로 이동.

 

4. APK 실링

APK 실링을 완료해야 보안 모듈이 활성화 됩니다. APK를 개발자 콘솔 사이트에 업로드 해주시기 바랍니다.

실링 튜토리얼 링크 : 실링 튜토리얼

이 문서가 도움이 되었습니까?
0명 중 0명이 유용하다고 평가하였습니다.
또 다른 질문이 있으십니까? 문의 등록
comment section

0 댓글

이 문서에는 댓글을 달 수 없습니다.