일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Linux packer
- linux thread
- 안티디버깅
- Injection
- thread local storage
- LLVM 난독화
- LLVM Obfuscator
- apm
- on stack replacement
- 난독화
- Android
- android inject
- initial-exec
- anti debugging
- tracing
- OSR
- tracerpid
- uftrace
- LLVM
- v8 tracing
- pinpoint
- TLS
- on-stack replacement
- so inject
- linux debugging
- v8 optimizing
- pthread
- Obfuscator
- Linux custom packer
- custom packer
Archives
- Today
- Total
Why should I know this?
LLVM - Why should we know this? 본문
LLVM은 GCC와 함께 컴파일러의 양대 산맥을 이루는 오픈소스 컴파일러 프로젝트이며, 컴파일러를 넘어 자신들을 '컴파일러 툴킷'으로 소개한다. 요컨데 컴파일러를 제작하기 위해 필요한 여러가지 공구들을 모아놓은 공구함이라고 할 수 있겠다.
LLVM은 Front/Middle/Back 의 3단 분리를 명확하게 하고, 분리된 단 간 그리고 각 단 속에서의 PLUGIN 을 지원하기 위해 추상화 된 데이터 표현 계층인 Intermdediate Reperesntation (=IR)을 사용한다. 이런 구조를 통해 LLVM은 LLVM 참여자 뿐 아니라 컴파일러를 활용하거나 독자 모듈을 구현하는 사람들에게 광풍과도 같은 인기를 얻었으며 거의 모든 컴파일러 논문 및 연구가 LLVM을 기반으로 이뤄지게 되는 원동력을 제공할 수 있게 되었다.
LLVM은 거의 대부분의 플랫폼 혹은 하드웨어 벤더에서 자사 제품 개발 혹은 자사 하드웨어 최적화 를 제공하기 위해 활용되고 있으며 그 중 가장 유명한 곳은 아마도 APPLE 일 것이다. LLVM 활용한 여러가지 USE-CASE를 개발하고 공유하여 왜 이 시점에 '컴파일러?' 라는 의문에 답할 수 있었으면 좋겠다.
'Knowledge > Compiler' 카테고리의 다른 글
ART-Compiler] LoopOptimizing #1 (0) | 2022.12.05 |
---|---|
LLVM Obfuscator] Control Flow Graph Flattening (0) | 2021.02.15 |
LLVM Obfuscator] Call (0) | 2021.02.13 |
GCC compile (0) | 2018.04.09 |
gcc 사용 중에 버그를 발견했을때 report 하는 방법. (0) | 2018.04.09 |
Comments