Guillermo Austin Kim

Sources

Posts

998 posts

[ToDo] Landlock: add exceptional statement to avoid race

Guillermo Austin Kim|2021년 5월 31일

Race between hook_cred_free() and landlock_merge_ruleset()/fop_ruleset_release() could be taking place. To avoid this, exceptional statement should be added. diff --git a/security/landlock/ruleset.c b/security/landlock/ruleset.cindex ec72b92..11dd128 100644--- a/security/landlock/ruleset.c+++ b/security/landlock/ruleset.c@@ -377,7 +377,9 @@ static void free_ruleset_work(struct work_struct *const

[Arm프로세서] AAPCS: Armv7: 서브 루틴(함수)로 분기될 때 실행되는 어셈블리 명령어

Guillermo Austin Kim|2021년 5월 26일

Armv7 아키텍처에 지원하는 레지스터들 중에 AAPCS와 연관된 레지스터가 SP, LR 레지스터이듯이, 수 많은 Armv7의 어셈블리 명령어 중에 AAPCS와 연관된 명령어가 있습니다. AAPCS와 연관된 명령어의 목록은 다음과 같습니다. 표 6.3 AAPCS와 관련된 명령어 위 표에서 보이는 각 명령어를 소개하고 예제 코드를 분석하면서, 명령어의 동작 원리를 배워봅시다. [참고]영어 단어를 처음 접할 때 사전을 열고 단어의 정의를 찾아 봅니다. 그런데 영어 단어의 정의만 알고는 단어를 제대로 안다고 볼 수 없습니다. 단어가 실제 어떻게 쓰이는지 알아야 그 단어를 제대로 안다고 볼 수 있습니다. 어셈블리 명령어도 마찬가지입니다. 배우려는 어셈블리 명령어가 어떤 함수나 레이블에서 사용되는지 알아야

[임베디드] arm 프로세서: 트러스트 존(TrustZone) 끼워 팔기

Guillermo Austin Kim|2021년 5월 26일

트러스트 존에 대한 이야기를 조금 하려고 합니다. 너무 기술적인 이야기는 빼고요. 대부분 트러스트 존하면 Arm 프로세서에서 제공하는 보안 기능이란 생각이 머릿 속에 떠오르는 경우가 많습니다.이번에는 TZ의 기술적인 측면이 아니라 비즈니즈적인 혹은 사업적인 측면에 대해 이야기해볼까요? arm 프로세서의 높은 가격 경쟁력 유지 어떤 제품에서 보안 기능이 필요 없어 트러스트 존을 사용하지 않아도 됩니다. 간단한 전자 명함이나 온도계는 해킹을 시도하지 않고, 해킹을 당해도 큰 문제가 발생하지도 않습니다. 특히 IoT 디바이스는 가격 경쟁력이 중요한데 보안과 관련된 프로그램을 개발하면 개발비가 더 많이 들겠죠. 하지만 보안 기능이 필요없거나 보안이 필요없는 제품에도 트러스트 존이 탑재된 Arm 프로세서를

[Arm프로세서] AAPCS: Armv7: 함수를 호출하기 위한 디자인

Guillermo Austin Kim|2021년 5월 24일

Armv7 아키텍처 관점으로 AAPCS를 보통 SP 레지스터와 LR 레지스터가 어떻게 바뀌는지 기준으로 설명합니다. 하지만 실제 거의 대부분 임베디드 혹은 시스템 개발자들은 SP와 LR 레지스터를 설정하는 어셈블리 코드를 입력하지 않습니다. 그 이유는 대부분 C 프로그래밍으로 코딩을 하기 때문입니다. SP와 LR 레지스터를 보면 낯설게 느끼기 마련입니다. 이번 절에서는 실제 함수를 호출하는 예시 코드와 함께, 함수를 호출하면 SP와 LR 레지스터가 어떻게 바뀌는지 알아보겠습니다. 함수를 호출될 때의 세부 동작 원리 파악하기 여러분이 다음과 같은 함수를 작성했다고 가정하겠습니다. 01 int add_func(int x, int y)02 {03 int result = x + y;04 prin

[Arm프로세서] AAPCS: Armv7: SP와 LR 레지스터란

Guillermo Austin Kim|2021년 5월 12일

Armv7 아키텍처에서 정의된 레지스터 중 SP(R13) 레지스터와 LR(R14) 레지스터는 AAPCS와 연관된 핵심 레지스터입니다. 먼저 전체 레지스터 목록 중에서 SP, LR 레지스터를 보겠습니다. 전체 레지스터 목록 중 SP와 LR 레지스터 다음 그림을 보면서 Armv7 아키텍처에서 정의된 레지스터 중 AAPCS와 연관된 레지스터를 알아봅시다. 그림 6.1 Armv7 아키텍처의 레지스터 목록 중 AAPCS와 연관된 레지스터(출처: DDI0406C_C_arm_architecture_reference_manual) 위 그림은 Armv7 아키텍처에서 Arm 모드 별로 정의된 레지스터 목록입니다. 그림의 아랫 부분을 보면 빗금으로 된 박스가 보입니다. 빗금으로 표시된 박스의 윗 부분에 있