일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Obfuscator
- initial-exec
- v8 optimizing
- linux thread
- OSR
- LLVM
- linux debugging
- on stack replacement
- android inject
- Linux packer
- LLVM Obfuscator
- apm
- anti debugging
- pthread
- uftrace
- LLVM 난독화
- TLS
- thread local storage
- 난독화
- tracing
- on-stack replacement
- pinpoint
- v8 tracing
- so inject
- 안티디버깅
- Injection
- Linux custom packer
- custom packer
- Android
- tracerpid
- Today
- Total
목록전체 글 (131)
Why should I know this?
https://die4taoam.tistory.com/147 computeKnownBits & KnownBits 관련 예제computeKnownBits https://llvm.org/doxygen/ValueTracking_8cpp.html#a903bd19e9d31beff55b22fe86111639e Determine which bits of V are known to be either zero or one and return them. void computeKnownBits (const Value *V, KnownBits &Known, const DataLayout &DL,die4taoam.tistory.com computeKnownBitsㄴ computeKnownBitsFromContext ㄴ ..
다음 코드를 통해 computeKnownBitsFromCmp 에서 KnownBit를 추산하는 방식을 알아보자. unsigned BitWidth = Known.getBitWidth(); auto m_V = m_CombineOr(m_Specific(V), m_PtrToIntSameSize(Q.DL, m_Specific(V))); Value *Y; const APInt *Mask, *C; uint64_t ShAmt; switch (Pred) { case ICmpInst::ICMP_EQ: // assume(V = C) if (match(LHS, m_V) && match(RHS, m_APInt(C))) { Known = Known.unionWith(KnownBits::ma..
computeKnownBitsFromCondㄴ computeKnownBitsFromICmpCond void llvm::computeKnownBitsFromICmpCond(const Value *V, ICmpInst *Cmp, KnownBits &Known, const SimplifyQuery &SQ, bool Invert) { ICmpInst::Predicate Pred = Invert ? Cmp->getInversePredicate() : Cmp->getPredicate(); Value *LHS = Cmp->getOperand(0); Value *..
(TBD)
UBFM Syntax UBFM Wd, Wn, #, # ; 32-bit general registers UBFM Xd, Xn, #, # ; 64-bit general registers Usage Unsigned Bitfield Move copies any number of low-order bits from a source register into the same number of adjacent bits at any position in the destination register, with zeros in the upper and lower bits. Important! UBFM is an instruction that copies by specifying a memory range and can be..
https://llvm.org/docs/LangRef.html#load-instruction LLVM Language Reference Manual — LLVM 19.0.0git documentation Compiling with ThinLTO causes the building of a compact summary of the module that is emitted into the bitcode. The summary is emitted into the LLVM assembly and identified in syntax by a caret (’^’). The summary is parsed into a bitcode output, along llvm.org 예제] class BaseLoadStore..