Skip to content

Latest commit

 

History

History
176 lines (132 loc) · 5.41 KB

android.md

File metadata and controls

176 lines (132 loc) · 5.41 KB

decompiler

GitHub - pxb1988/dex2jar: Tools to work with android .dex and java .class files GitHub - skylot/jadx: Dex to Java decompiler http://www.javadecompilers.com/apk http://www.decompileandroid.com/

GitHub - androguard/androguard: Reverse engineering, Malware and goodware analysis of Android applications ... and more (ninja !) https://code.google.com/archive/p/elsim/wikis/Similarity.wiki#Android https://www.phrack.org/issues.html?issue=68&id=15#article GitHub - enovella/fridroid-unpacker: Defeat Java packers via Frida instrumentation

dissassembler

https://ibotpeaches.github.io/Apktool/install/

emulation

https://github.com/aind-containers/aind :) exposes VNC https://www.android-x86.org/ https://dotsrc.dl.osdn.net/osdn/android-x86/71931/android-x86_64-9.0-r1.iso https://www.vimalin.com/blog/install-android-x86-in-vmware-fusion/ https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/ANDROID-QEMU-PIPE.TXT

anbox

# Kernel dependencies
apt -y install software-properties-common \
    && add-apt-repository -y ppa:morphis/anbox-support \
    && apt -y update \
    && apt -y install linux-headers-generic anbox-modules-dkms \
    && modprobe ashmem_linux \
    && modprobe binder_linux

# Snap
apt -y install snapd \
    && snap install --devmode --beta anbox

https://docs.anbox.io/userguide/install.html https://docs.anbox.io/userguide/install_kernel_modules.html https://github.com/Deadolus/android-studio-docker

container

https://github.com/aind-containers/aind

dynamic instrumentation

# https://github.com/frida/frida/releases
adb push frida-server /data/local/tmp

class loading

DexClassLoader dexClassLoader = new DexClassLoader(path_to_dex, null, null, parent_class);
Class dynamic_class = dexClassLoader.loadClass("DynamicClass");
Method method = dynamic_class.getMethod("method1");

https://developer.android.com/reference/dalvik/system/DexClassLoader

development

android studio

apt -y install openjdk-11-jdk android-tools-adb
mkdir -p ~/opt \
    && cd ~/opt \
    && wget https://dl.google.com/dl/android/studio/ide-zips/4.0.1.0/android-studio-ide-193.6626763-linux.tar.gz -O android-studio.tar.gz \
    && tar xzvf android-studio.tar.gz \
    && rm android-studio.tar.gz

https://www.fosslinux.com/13176/how-to-install-and-run-android-apps-on-ubuntu-using-anbox.htm

running apps

/snap/bin/anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
adb start-server
adb devices
adb install foo.apk
# || Specific device
adb -s emulator-5555 install foo.apk

~/opt/android-studio/bin/studio.sh

network access

wget https://raw.githubusercontent.com/anbox/anbox/master/scripts/anbox-bridge.sh
mkdir -p /usr/lib/anbox/
mv anbox-bridge.sh /usr/lib/anbox/
chmod +x /usr/lib/anbox/anbox-bridge.sh
chown root /usr/lib/anbox/anbox-bridge.sh
printf '
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>

int main(void) {
	setuid(0);
    char buf[512];
	sprintf(buf, "/usr/lib/anbox/anbox-bridge.sh %s", "start");
	system((char *)buf);
}
' | gcc -o anbox-bridge -x c -
mv anbox-bridge /usr/local/bin
chmod u+s /usr/local/bin/anbox-bridge
chown root /usr/local/bin/anbox-bridge

debug

# Find package name, take $pid
ps | grep -i flag
# u0_a49    711   30    1043872 80604          0 0000000000 S lu.hack.Flagdroid

# Use main class
# e.g. `public class MainActivity extends AppCompatActivity`
am start -D -e debug true -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n "lu.hack.Flagdroid/.MainActivity"

adb forward --remove-all
adb forward tcp:8012 jdwp:$pid
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8012

https://stackoverflow.com/questions/25477424/adb-shell-su-works-but-adb-root-does-not Can i root anbox device? · Issue #209 · anbox/anbox · GitHub

https://asantoso.wordpress.com/2009/09/26/using-jdb-with-adb-to-debugging-of-android-app-on-a-real-device/ https://source.android.com/devices/tech/debug/gdb

root

sudo /snap/bin/anbox.shell

virtual device

sudo /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager 'system-images;android-30;google_apis_playstore;x86_64'
/opt/android-sdk/cmdline-tools/latest/bin/avdmanager create avd -n osint -d 10 -k 'system-images;android-30;google_apis_playstore;x86_64'
ANDROID_SDK_ROOT=/opt/android-sdk /opt/android-sdk/emulator/emulator @osint

filesystem hierarchy

issues

case studies