일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uftrace
- LLVM
- 안티디버깅
- Injection
- 난독화
- v8 optimizing
- Linux packer
- linux thread
- tracerpid
- LLVM 난독화
- so inject
- anti debugging
- Obfuscator
- Linux custom packer
- Android
- OSR
- v8 tracing
- thread local storage
- linux debugging
- custom packer
- initial-exec
- pinpoint
- pthread
- android inject
- on stack replacement
- TLS
- tracing
- LLVM Obfuscator
- apm
- on-stack replacement
- Today
- Total
목록전체 글 (128)
Why should I know this?
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..
int test(long long a, long long b, int *table) { return table[(a * b) >> 1]; } clang test(long long, long long, int*): // @test(long long, long long, int*) mul x8, x1, x0 lsl x8, x8, #1 and x8, x8, #0xfffffffffffffffc ldr w0, [x2, x8] ret gcc test(long long, long long, int*): mul x0, x0, x1 asr x0, x0, 1 ldr w0, [x2, x0, lsl 2] ret 버그 lsl x8, x8, #1 1. 최상위 비트가 쉬프트로 인해 손실이 생긴다. 2. 마찬가지로 최하위 비트 (0..
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..
https://github.com/llvm/llvm-project/issues/51483 [AArch64] Generate stp for complex repeating constansts · Issue #51483 · llvm/llvm-project Bugzilla Link 52141 Version trunk OS Windows NT Reporter LLVM Bugzilla Contributor CC @Arnaud-de-Grandmaison-ARM,@DMG862,@smithp35 Extended Description For complex repeating constants like: void fo... github.com 유사한 최적화 제의와 성능 리포트. https://github.com/dotnet..
SmallVector WorkList; WorkList.push_back(RetagReg); while (!WorkList.empty()) { Register UseReg = WorkList.pop_back_val(); for (auto &UseI : MRI->use_instructions(UseReg)) { unsigned Opcode = UseI.getOpcode(); if (Opcode == AArch64::STGi || Opcode == AArch64::ST2Gi || Opcode == AArch64::STZGi || Opcode == AArch64::STZ2Gi || Opcode == AArch64::STGPi || Opcode == AArch64::STGloop || Opcode == AArc..
원문 출처 : https://developer.arm.com/documentation/ddi0602/2023-12/Base-Instructions/STP--Store-Pair-of-Registers-?lang=en#iclass_post_index Documentation – Arm Developer developer.arm.com STP 레지스터 쌍 저장은 기본 레지스터 값과 즉시 오프셋에서 주소를 계산하고 두 개의 레지스터에서 계산된 주소에 32비트 단어 2개 또는 64비트 이중 단어 2개를 저장합니다. 메모리 액세스에 대한 자세한 내용은 로드/저장 주소 지정 모드를 참조하세요. It has encodings from 3 classes: Post-index , Pre-index and Signed of..