1 |
1
컨트롤러가 수행하는 펌웨어 내 반환 명령어 난독화 방법에 있어서, 초기화(Initialization) 모듈을 통해 디바이스 내 상기 컨트롤러와 별도로 존재하는 보안칩(Secure Element: SE)으로부터 암호키를 수신하는 단계; 및상기 암호키 수신하는 단계 이후, 상기 초기화(Initialization) 모듈을 통해 상기 컨트롤러에 포함된 플래시 메모리에 존재하는 암호화된 반환 명령어의 어드레스를 탐색하는 스캐닝 단계를 포함하는, 반환 명령어 난독화 방법
|
2 |
2
제1항에 있어서,상기 스캐닝 단계에서 탐색한 어드레스를 수집하고, 상기 초기화(Initialization) 모듈을 통해 상기 컨트롤러에 포함된 정적 메모리(SRAM)내에 인덱스화하여 저장하는 어드레스 저장 단계를 더 포함하는, 반환 명령어 난독화 방법
|
3 |
3
제1항에 있어서,상기 암호키를 수신하는 단계 이후, 상기 수신한 암호키를 상기 컨트롤러에 포함된 정적 메모리(SRAM)에 저장하는 단계를 더 포함하는, 반환 명령어 난독화 방법
|
4 |
4
제1항에 있어서,상기 초기화 모듈(Initialization Module)은, 코드 인스트루먼테이션 과정을 통해 소스 바이너리 파일에 삽입되며, 상기 플래시 메모리에 독립적으로 존재하는 모듈인, 반환 명령어 난독화 방법
|
5 |
5
제1항 내지 제3항의 반환 명령어 난독화 방법에 의해 난독화된 반환 명령어를 컨트롤러에서 실행하는 방법에 있어서, 상기 플래시 메모리에 기저장된 펌웨어를 실행할 때, 정적 메모리(SRAM)에 저장된 암호키를 이용하여 상기 암호화된 반환 명령어를 복호화하고, 상기 복호화된 반환 명령어를 실행하는 실행(Runtime) 단계를 포함하는, 난독화된 반환 명령어 실행방법
|
6 |
6
제5항에 있어서, 상기 실행(Runtime) 단계는, 상기 컨트롤러가 상기 암호화된 반환 명령어를 실행하기 이전에 반환 제어 흐름(Return Control Flow) 모듈을 실행하는 단계를 더 포함하는, 난독화된 반환 명령어 실행방법
|
7 |
7
제6항에 있어서, 상기 반환 제어 흐름(Return Control Flow) 모듈은, 코드 인스트루먼테이션 과정을 통해 소스 바이너리 파일에 삽입되며, 상기 암호화된 반환 명령어를 복호화하여 실행하는 모듈이며, 상기 컨트롤러가 펌웨어 실행하여, 상기 반환 제어 흐름(Return Control Flow) 모듈이 호출신호를 받으면, 상기 정적 메모리(SRAM)에 저장된 어드레스를 로드하는 단계;상기 암호화된 반환 명령어를 상기 암호키를 이용하여 복호화하며, 상기 복호화된 명령어를 정적 메모리(SRAM)에 저장하는 단계; 및 상기 정적 메모리(SRAM)에 저장된 복호화된 명령어를 실행하는 단계를 포함하는, 난독화된 반환 명령어 실행방법
|