일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- LLVM 난독화
- linux debugging
- on stack replacement
- LLVM
- Linux custom packer
- tracerpid
- apm
- OSR
- TLS
- linux thread
- 안티디버깅
- Android
- thread local storage
- on-stack replacement
- uftrace
- v8 optimizing
- initial-exec
- tracing
- 난독화
- so inject
- v8 tracing
- anti debugging
- custom packer
- pthread
- android inject
- Linux packer
- LLVM Obfuscator
- Injection
- pinpoint
- Today
- Total
목록전체 글 (142)
Why should I know this?

여러가지 이유(?)로 SystemCall를 직접 하는 경우가 존재합니다. 해서 이번 글에서는 간단히 SystemCall을 직접하는 방법을 알아볼까 합니다. /* * Generic syscall call. * Upon entry: * %rax: system call number * %rdi: arg0 to system call * %rsi: arg1 * %rdx: arg2 * %rcx: arg3 - syscall expects it at %r10 * %r8: arg4 * %r9: arg5 */ #include "arch/bionic_asm.h" ENTRY_PRIVATE(syscall) # All arguments are passed via registers. # (Not all will be valid, ..

Frida 같은 도구가 Hooking을 통해 여러가지 인터페이스를 제공하죠. 이번 글에서는 Android의 Java Layer에서 어떻게 Hooking이 벌어지는지 아주 간단히 살펴보고자 합니다. >Class 가 LOAD 되는 과정 입니다. 위 그림처럼 Class의 설계도는 .dex=안드로이드 파일에 보관되어 있습니다. class를 생성하는 과정에서 해당 설계도를 기반으로 ClassObject를 만듭니다. Class는 Variable/Method 로 이루어져있고 Variable은 ClassObject에, Method들은 Method 를 보관하는 테이블에 보관되며 해당 Method들에 대한 Index가 vtable에 보관됩니다. 위에서 언급한 과정을 좀더 자세히 도식화하면 위와 같습니다. 1. 첫 번째 H..

AOSP 에서 ART 라고 불리는 Android runtime은 DEX Bytecode를 Compile 하는 기능이 포함되어 있습니다. 해당 Compile에는 Optimizing 도 포함되어 있으며 이 글은 LoopOptimizing을 살펴보고자 작성했습니다. 최적화는 매우 어렵운 분야라는 생각이 있고 실제로도 그렇지만 LoopOptimizing 은 얕게 보면 이런것도 최적화야? 라는 생각이 들게 합니다. 그만큼 입문으로 좋지 않을까 하네요?! ETRI에서 낸 PAPER중에 Static Dalvik Bytecode Optimization for Android Applications 이 있습니다. 이 논문에서는 DEX bytecode를 LLVM IR로 변환하여 Loop 최적화를 하는 과정을 소개하고 있습니..

Hashmap을 uftrace에서 활용하기 위해 Android 구 버전에서 hashmap 구현을 복붙하는 과정에서, https://github.com/ParkHanbum/android_c_hashmap GitHub - ParkHanbum/android_c_hashmap: C collection hashmap from android (4.3) C collection hashmap from android (4.3). Contribute to ParkHanbum/android_c_hashmap development by creating an account on GitHub. github.com Hashmap의 구현에 대해 조금 공부를 해보게 됐다. Hashmap에 대해서는 이 블로그를 참고하면 좋을 것 같다...

Ctrl + , 로 설정을 열고 clang_format 검색 { BasedOnStyle: LLVM, IndentWidth: 2, UseTab: Never, TabWidth: 2, ColumnLimit: 0 }

C++ / JAVA 와 같이 class와 상속을 지원하는 언어들은 class를 linking 하는 과정이 필요하다. AOSP에 구현된 JVM을 통해 이 과정을 간단히 살펴보자. 왜? 재밌으니까~? Class와 Instance 의 차이를 알고 계십니까? Class는 설계도이고 Instance는 Class 설계도를 메모리에 적재한 것을 말하죠. 위 그림처럼 Class의 설계도는 ..dex=안드로이드 파일에 보관되어 있습니다. class를 생성하는 과정에서 해당 설계도를 기반으로 ClassObject를 만듭니다. Class는 Variable/Method 로 이루어져있고 Variable은 ClassObject에, Method들은 Method 를 보관하는 테이블에 보관되며 해당 Method들에 대한 Index가 ..