일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pinpoint
- Obfuscator
- 난독화
- LLVM 난독화
- on-stack replacement
- 안티디버깅
- linux debugging
- linux thread
- LLVM
- on stack replacement
- v8 tracing
- Android
- so inject
- custom packer
- Linux packer
- android inject
- LLVM Obfuscator
- uftrace
- pthread
- initial-exec
- tracing
- Injection
- thread local storage
- tracerpid
- Linux custom packer
- TLS
- OSR
- apm
- anti debugging
- v8 optimizing
- Today
- Total
목록전체 글 (132)
Why should I know this?
안드로이드에서 Application의 시작부터 Debugging을 하고 싶다면 JNI_OnLoad부터 시작해야 한다.해당 지점은 아래처럼 찾을 수 있다. Dump of assembler code for function dvmLoadNativeCode(char const*, Object*, char**): 0x40957c08 : stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} 0x40957c0c : mov r6, r1 0x40957c0e : ldr r1, [pc, #604] ; (0x40957e6c ) 0x40957c10 : sub sp, #36 ; 0x24 0x40957c12 : ldr.w r11, [pc, #604] ; 0x40957e70 0x40957c16 :..
## 생각나면 나중에 정리할 예정 Download AOSP from googlesource.com https://source.android.com/setup/build-numbers download Drivers for Nexus7(grouper).https://developers.google.com/android/drivers build! Flush!EnJoy it!
안드로이드의 ndk-build 시 기본으로 object의 디버깅 정보를 strip하도록 되어있다.디버깅 하기 편하려면 이를 끄는게 좋다. # Don't strip debug builds ifeq ($(APP_OPTIM),debug) cmd-strip := endif 뒤의 옵션을 .mk에 추가하자.
가장 강력하고 높은 수준으로 Android OS를 제어하고자 한다면 자체 빌드한 AOSP를 기기에 설치하는 것보다 좋은 방법은 없다. 다음은 grouper(넥서스 7)용 커널의 빌드 방법을 cmd 순서로 정리한 내용이다. export ARCH=arm export CROSS_COMPILE=`pwd`/../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-make tegra3_android_defconfig http://dmitry.gr/?r=06.%20Thoughts&proj=04.%20Android%20M%20on%20Grouper #get Android M AOSP into folder called M mkdir L mkdir M cd M repo init..
Android에서 특별한 목적으로 shared object를 injection하고자 할 때, 사용할 수 있는 가장 쉬운 방법이다. 아래처럼 app_main.cpp 소스를 수정하여 zygote가 app_process를 실행하기 전에 LD_PRELOAD 환경을 지정하여 shared object를 우선적으로 로드하도록 만들 수 있고 여러 재밌는 행위를 할 수 있다. frameworks/base/cmds/app_process/app_main.cpp:166 char value[PROPERTY_VALUE_MAX]; property_get("ro.kernel.qemu", value, ""); bool is_qemu = (strcmp(value, "1") == 0); if ((getenv("NO_ADDR_COMPAT_..
0. 개요 이 글의 내용은 DEX를 메모리에서 로드하는 기법을 다루고 있습니다. 제가 2018년 고안하였으며 이 글은 2019년에 글을 작성되었습니다. 그간 비공개로 해놨으며, github를 통해 다음 프로젝트처럼 동일 기법이 오픈소스로 공개되어 있는것을 확인되어 공개로 전환합니다. https://github.com/yongyecc/dexshellerInMemory GitHub - yongyecc/dexshellerInMemory: android APK一键DEX加固脚本(内存加载DEX) android APK一键DEX加固脚本(内存加载DEX). Contribute to yongyecc/dexshellerInMemory development by creating an account on GitHub. githu..