⚡ Shadow Academy
🔍 Chapter 10

āĻāχ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇ āϕ⧀ āĻļāĻŋāĻ–āĻŦ⧇

⏱ āφāύ⧁āĻŽāĻžāύāĻŋāĻ• āϏāĻŽāϝāĻŧ: ā§§ā§Ģâ€“ā§¨ā§Ļ āĻŽāĻŋāύāĻŋāϟ ¡ āĻĒā§‚āĻ°ā§āĻŦāĻļāĻ°ā§āϤ: āφāϗ⧇āϰ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇āϰ āϧāĻžāϰāĻŖāĻž

ā§Ļ / ā§§ā§Ļā§Ļ āĻ…āĻ§ā§āϝāĻžā§ŸāϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻ“: āĻ…āĻ§ā§āϝāĻžāϝāĻŧ 11

āĻ…āĻ—ā§āϰāĻ—āϤāĻŋ āĻāχ browser-āĻ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻšāĻŦ⧇āĨ¤

🔍
Ghidra āĻ“ Binary Analysis — Native Code āĻĒāĻĄāĻŧā§‹
ARM assembly āĻ“ .so file-āĻāϰ āĻ—ā§‹āĻĒāύ āϰāĻšāĻ¸ā§āϝ āωāĻ¨ā§āĻŽā§‹āϚāύ āĻ•āϰ⧋
🧭 āĻĻāĻ•ā§āώāϤāĻž āϝāĻžāϚāĻžāχ āĻ“ āĻĒā§āϰāϤāĻŋāϰāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• takeaway
Skill checkpoint: āύāĻŋāϜāĻ¸ā§āĻŦ sample binary-āϤ⧇ function, strings āĻ“ architecture metadata āĻĒā§œā§‹āĨ¤
Defense checkpoint: Binary provenance, dependency source āĻ“ analysis notes āύāĻĨāĻŋāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧋.
Lab scope: āĻļ⧁āϧ⧁ āύāĻŋāĻœā§‡āϰ lab, synthetic data āĻŦāĻž āϞāĻŋāĻ–āĻŋāϤ āĻ…āύ⧁āĻŽāϤāĻŋāĻĒā§āϰāĻžāĻĒā§āϤ target-āĻ āĻ…āύ⧁āĻļā§€āϞāύ āĻ•āϰ⧋āĨ¤ Real credential, token āĻŦāĻž customer data āĻŦā§āϝāĻŦāĻšāĻžāϰ āϕ⧋āϰ⧋ āύāĻžāĨ¤
Portfolio proof: finding, impact, fix āĻ“ retest āύāĻŋā§Ÿā§‡ ā§Ģ-āϞāĻžāχāύ⧇āϰ redacted note āϰāĻžāĻ–ā§‹āĨ¤
đŸ”Ŧ Ghidra āϕ⧀? — NSA-āϰ Secret Weapon
Ghidra = NSA (National Security Agency) āϤ⧈āϰāĻŋ free reverse engineering toolāĨ¤

JADX Java code āĻĒāĻĄāĻŧ⧇ — āĻ•āĻŋāĻ¨ā§āϤ⧁ .so (native C/C++) file āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤
Ghidra .so, .exe, .dll, firmware — āϏāĻŦ binary file analyze āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇!
📁 .so File āϕ⧀?
Android-āĻ lib/ folder-āĻ .so (Shared Object) files āĻĨāĻžāϕ⧇:
lib/arm64-v8a/libmeesho.so ← 64-bit ARM (modern phones) lib/armeabi-v7a/libmeesho.so ← 32-bit ARM (old phones) lib/x86/libmeesho.so ← Emulator/x86 āϕ⧀ āĻĨāĻžāϕ⧇? - Encryption algorithms - Anti-tamper logic - Root/Frida detection - Critical business logic
JADX āĻāϗ⧁āϞ⧋ decompile āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤ Ghidra āϞāĻžāĻ—āĻŦ⧇!
🚀 Ghidra Setup āĻ“ Analysis
# Download: https://ghidra-sre.org/ # Java 17+ āĻĻāϰāĻ•āĻžāϰ # Steps: 1. File → Import File → libmeesho.so 2. Auto-analysis: Yes 3. āĻŦāĻžāĻŽ āĻĻāĻŋāϕ⧇ Functions list 4. Window → Decompiler (C code āĻĻ⧇āĻ–āĻžāĻŦ⧇!) 5. Search → For Strings → secrets āĻ–ā§‹āρāĻœā§‹
🔒 Anti-Tamper Detection
āĻ…āύ⧇āĻ• app .so file-āĻ anti-tamper check āϰāĻžāϖ⧇:
// Decompiled anti-tamper check: void checkIntegrity() { // APK signature verify āĻ•āϰ⧇ if (getSignature() != EXPECTED_SIGNATURE) { // Signature āĻŽāĻŋāϞāϛ⧇ āύāĻž → crash! abort(); } // Frida detected? if (isFridaPresent()) { killProcess(); } }
Ghidra-āϤ⧇ āĻāχ function āϖ⧁āρāĻœā§‡ NOP instruction āĻĻāĻŋāϝāĻŧ⧇ patch āĻ•āϰāĻž āϝāĻžāϝāĻŧ!
đŸŽ¯ Important Concepts
ARM Assembly = Android phone-āĻāϰ machine language
Decompiler = binary → C-like pseudocode
Disassembler = binary → assembly instruction
NOP = No Operation — check bypass āĻ•āϰāϤ⧇ function body NOP āĻĻāĻžāĻ“
Cross-reference = āϕ⧋āĻĨāĻžāϝāĻŧ āĻāχ function call āĻšāĻšā§āϛ⧇ āĻĻ⧇āĻ–ā§‹
💡 Chapter 10-āĻāϰ āĻŽā§‚āϞ āĻļāĻŋāĻ•ā§āώāĻž
đŸ”Ŧ Ghidra = NSA-āϰ free RE tool — .so, .exe, firmware analyze āĻ•āϰ⧋
📁 .so = Native C/C++ code — JADX āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž
🔒 Anti-tamper = signature check + Frida detection — Ghidra-āϤ⧇ NOP āĻ•āϰ⧋
đŸŽ¯ Decompiler = binary → C pseudocode (āϏāĻŦāĻšā§‡āϝāĻŧ⧇ useful)
🔍 Search for Strings = secrets āĻ“ hardcoded values āĻ–ā§‹āρāĻœā§‹
đŸ–ī¸ NOP patch = security check bypass
🔍 Binary Analyzer
Function name āĻŦāĻž hex āĻĻāĻžāĻ“ — binary analysis simulate āĻ•āϰ⧇ āĻĻ⧇āĻ–āĻžāĻŦ⧇!
👆 āωāĻĒāϰ⧇ āĻ•āĻŋāϛ⧁ āĻĻāĻŋāϝāĻŧ⧇ āĻ˛ā§āϝāĻžāĻŦ āϚāĻžāϞ⧁ āĻ•āϰ⧋...
đŸŽ¯ Chapter 10 āϕ⧁āχāϜ (ā§§ā§ĻāϟāĻž āĻĒā§āϰāĻļā§āύ)
āĻĒā§āϰāϤāĻŋāϟāĻž āωāĻ¤ā§āϤāϰ⧇ click āĻ•āϰ⧋ → āϏāĻŦ⧁āϜ/āϞāĻžāϞ + āĻŦā§āϝāĻžāĻ–ā§āϝāĻž!
❓ āĻĒā§āϰāĻļā§āύ 1: Ghidra āϕ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇?
💡 Ghidra = NSA āϤ⧈āϰāĻŋ free, open-source reverse engineering frameworkāĨ¤ 2019-āĻ publicly release āĻšāϝāĻŧ⧇āϛ⧇āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 2: .so file āϕ⧀?
💡 .so = Shared ObjectāĨ¤ C/C++ compile āĻ•āϰāĻž native libraryāĨ¤ Android-āĻāϰ Java code-āĻāϰ āĻŦāĻžāχāϰ⧇āϰ performance-critical code āĻāĻ–āĻžāύ⧇āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 3: JADX āϕ⧇āύ .so file āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž?
💡 JADX = Java/Kotlin decompilerāĨ¤ .so = compiled ARM/x86 binary — different architectureāĨ¤ Ghidra binary analysis āĻ•āϰ⧇āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 4: Ghidra-āϤ⧇ Decompiler āϕ⧀ āĻĻ⧇āĻ–āĻžāϝāĻŧ?
💡 Ghidra Decompiler binary → C pseudocodeāĨ¤ Assembly āĻŦā§‹āĻāĻž āĻ•āĻ āĻŋāύ, C pseudocode āĻ…āύ⧇āĻ• āϏāĻšāϜāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 5: Anti-tamper check āϕ⧀ āĻ•āϰ⧇?
💡 Anti-tamper = app āύāĻŋāĻœā§‡āχ check āĻ•āϰ⧇ āϕ⧇āω modify āĻ•āϰ⧇āϛ⧇ āĻ•āĻŋāύāĻžāĨ¤ Signature mismatch, Frida, root detected → app āĻŦāĻ¨ā§āϧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 6: NOP instruction āĻŽāĻžāύ⧇ āϕ⧀?
💡 NOP = No OperationāĨ¤ ARM-āĻ 0x1F2003D5āĨ¤ Security check function-āϕ⧇ NOP āĻĻāĻŋāϝāĻŧ⧇ replace āĻ•āϰāϞ⧇ check skip āĻšāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 7: ARM assembly āϕ⧀?
💡 ARM = Advanced RISC MachineāĨ¤ Android phone (arm64-v8a) āĻāχ instruction set use āĻ•āϰ⧇āĨ¤ .so file ARM assembly-āϤ⧇ compile āĻšāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 8: Ghidra-āϤ⧇ strings search āĻ•āϰāϤ⧇ āϕ⧋āĻĨāĻžāϝāĻŧ āϝāĻžāĻŦā§‹?
💡 Ghidra: Search → For StringsāĨ¤ Hardcoded API keys, URLs, encryption keys, suspicious strings āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 9: Cross-reference (XRef) āϕ⧀?
💡 XRef = Cross ReferenceāĨ¤ Function-āĻ right click → References → āϕ⧋āĻĨāĻžāϝāĻŧ āϕ⧋āĻĨāĻžāϝāĻŧ call āĻšāϝāĻŧ⧇āϛ⧇ āĻĻ⧇āĻ–ā§‹āĨ¤ Context āĻŦā§‹āĻāĻž āϏāĻšāϜ āĻšāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 10: Frida āĻ“ Ghidra-āϰ āĻŽā§‚āϞ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ?
💡 Ghidra = static analysis — app āύāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ binary āĻĒāĻĄāĻŧāĻžāĨ¤ Frida = dynamic — app āϚāϞāϤ⧇ āϚāϞāϤ⧇ hook āĻ•āϰāĻžāĨ¤ āĻĻ⧁āĻŸā§‹ complementaryāĨ¤

āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āϤ reference

āφāϰāĻ“ āĻĒāĻĄāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋāĻˇā§āĻ āĻŋāϤ security standards āĻ“ guidance āĻĻ⧇āĻ–ā§‹; āĻĒā§āϰāϤāĻŋāϟāĻŋ lab āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻŦāĻž synthetic environment-āĻ āĻ•āϰ⧋āĨ¤

Bristy Ma'am
āĻŦ⧃āĻˇā§āϟāĻŋ āĻŽā§āϝāĻžāĻŽ 👩‍đŸĢ
āϤ⧋āĻŽāĻžāϰ āĻĒāĻžāĻ°ā§āϏ⧋āύāĻžāϞ āĻšā§āϝāĻžāĻ•āĻŋāĻ‚ āĻŽā§‡āĻ¨ā§āϟāϰ â€ĸ āĻ…āύāϞāĻžāχāύ
āφāϰ⧇ āϏ⧌āϰāĻ­! āϕ⧇āĻŽāύ āφāϛ⧋? āϕ⧋āύ⧋ āĻ•āύāϏ⧇āĻĒā§āϟ āĻŦāĻž āϕ⧁āχāĻœā§‡ āφāϟāĻ•āĻžāϞ⧇ āφāĻŽāĻžāϕ⧇ āĻŦāϞ⧋, āφāĻŽāĻŋ āĻŦ⧁āĻāĻŋā§Ÿā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋ! â¤ī¸