일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- pthread
- Obfuscator
- Android
- LLVM Obfuscator
- tracerpid
- OSR
- pinpoint
- linux thread
- initial-exec
- tracing
- linux debugging
- so inject
- 안티디버깅
- thread local storage
- anti debugging
- apm
- uftrace
- Linux custom packer
- TLS
- LLVM 난독화
- 난독화
- v8 tracing
- custom packer
- on-stack replacement
- LLVM
- Linux packer
- android inject
- on stack replacement
- Injection
- v8 optimizing
- Today
- Total
목록LLVM-STUDY (65)
Why should I know this?
https://llvm.org/docs/MemorySSA.html MemorySSA — LLVM 18.0.0git documentation MemorySSA is an analysis that can be built for any arbitrary function. When it’s built, it does a pass over the function’s IR in order to build up its mapping of MemoryAccesses. You can then query MemorySSA for things like the dominance relation betwee llvm.org
1. 당면한 문제에 `몰입`도 중요하지만 더 큰 구조를 생각하는 것도 중요하다. 제가 경험했던 패치 https://reviews.llvm.org/D153752 ⚙ D153752 [InstSimplify] Fold icmp comparing GEPs with local allocation This revision is now accepted and ready to land. reviews.llvm.org 최근에 살펴본 패치 https://die4taoam.tistory.com/136 [InstSimplify] Fold (a != 0) ? abs(a) : 0 https://github.com/llvm/llvm-project/pull/70305 [InstSimplify] Fold (a != 0) ? abs(a..
이번에 살펴볼 패치는 매우 짧아서 좋은 패치 입니다. 패치의 링크 https://github.com/llvm/llvm-project/issues/71183 Memcpyopt crashes with simple IR · Issue #71183 · llvm/llvm-project target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:10:11:12:13" target triple = "x86_64-unknown-linux-gnu" define void @"julia_#36#f_439"() { top: call v... github.com 최초에 문제가 발생하는 IR 은 다음과 같습니다. def..
[LLVM] * llvm backend optimization 패치 분석 [LLVM CFI] * alive2 에 forward-cfi 관련 intrinsic 지원 추가하기 * llvm backward-cfi 관련 분석 [LLVM 난독화] * llvm IR 난독화 시 alive2 연동하여 난독화와 함께 코드 동등성 검사하는 기능 예제 작성
https://github.com/llvm/llvm-project/pull/70305 [InstSimplify] Fold (a != 0) ? abs(a) : 0 by Pierre-vh · Pull Request #70305 · llvm/llvm-project Solves #70204 github.com 문제가 발생하는 경우를 추적해 봅시다. # cat pp.c int f(int a) { if (a) return a > 0 ? a : -a; return 0; } # opt -O2 -S f.ll -print-after-all > log 2>&1 1회차 ; *** IR Dump After InstCombinePass on f *** ; Function Attrs: nounwind uwtable define d..
https://youtu.be/J5xExRGaIIY?si=nh8WkBmkIdjTMGGb OPT를 사용하여 IR을 생성할 때 다음과 같은 옵션을 지정하면, 1.원본 변수/함수 이름이 남고 2. 불필요한 메모리할당이 없어 보기 좋다. $ clang -O2 -Xclang -disable-llvm-passes -S -emit-llvm -fno-discard-value-names f.c -o f.ll $ opt -S -passes='mem2reg' f.ll -o f_opt.ll clang 을 사용할 때의 최적화 레벨이 남는 듯; int f(int a, int b) { int x = a; if (a > b) x += 20; else x += b; return x; } define dso_local i32 @f(i3..
https://youtu.be/bNV18Wy-J0U?si=n-hxGVmCqGD5LqYv You make some transformation It was very hard to update dominator tree because First you had to figure out what you information actually did And how it affected the dominator like you had to update or manipulate Nodes and glue them together to some other nodes to make a transformation Also on the dominator tree This turns out to be very difficult ..
https://die4taoam.tistory.com/101 LLVM 공부/기록/공유 고민 LLVM Optimizing 과정을 공부하면서 효율을 높히고 기록을 남기기 위해서 고민을 좀 해봤습니다. 예로 들려는 최적화는 LoopFlatten 입니다. llvm/lib/Transforms/Scalar/LoopFlatten.cpp 에 구현되어 있습니다. 첫 die4taoam.tistory.com 위처럼 세웠던 계획의 개선안. TEST(LoopInfoTest, HowToFindTripCount) { const char *ModuleStr = "target datalayout = \"e-m:o-i64:64-f80:128-n8:16:32:64-S128\"\n" "define void @foo(i32 %n, i1 %c..
https://medium.com/@mshockwave/writing-llvm-pass-in-2018-part-i-531c700e85eb Writing LLVM Pass in 2018 — Part I New Pass & Pass Manager in a Peek medium.com LLVM에서 PASS를 작성하는 방식에 변화가 있었습니다. 자세한 내용은 위 링크를 참고하시면 됩니다. extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo() { return { LLVM_PLUGIN_API_VERSION, "LoopOptTutorial", "v0.1", [](PassBuilder &PB) { PB.registerPi..
https://llvm.org/devmtg/2018-10/slides/Kruse-LoopTransforms.pdf https://www.youtube.com/watch?v=3pRhvQi7Z10&ab_channel=LLVM https://github.com/kitbarton/llvm-project/pull/1 LoopOptTutorial: Basic loop optimization template [STEP1] by etiotto · Pull Request #1 · kitbarton/llvm-project This is the first part of the Loop Optimization tutorial. The tutorial is divided into 5 parts/steps. In this fir..