Ethical Hacking Academy · บทเรียน

การวิเคราะห์ APK แบบสแตติก

การถอดกลับเป็นซอร์ส

บทเรียน 2 จาก 413 ขั้นตอน

การวิเคราะห์ APK แบบสแตติก เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

การวิเคราะห์ APK แบบสถิติ

การวิเคราะห์แบบสถิติของ APK หมายถึงการตรวจสอบโค้ดและทรัพยากรโดยไม่เรียกใช้ เป้าหมายคือกู้คืนโค้ดที่มีลักษณะคล้ายซอร์สและอ่านได้จาก DEX ที่คอมไพล์แล้ว

วิธีนี้เผยให้เห็นข้อมูลลับที่ฝังตายตัว ข้อบกพร่องทางตรรกะ และพฤติกรรมที่แท้จริงของแอป

การถอดรหัสด้วย apktool

apktool ถอดรหัส APK กลับเป็นทรัพยากรที่อ่านได้และ smali (รูปแบบไบต์โค้ด DEX ที่มนุษย์อ่านได้) นอกจากนี้ยังถอดรหัส AndroidManifest.xml ไบนารีได้ด้วย

ใช้เครื่องมือนี้เพื่ออ่านแมนิเฟสต์และแพ็กแอปที่แก้ไขแล้วกลับเป็นแพ็กเกจใหม่

apktool d app.apk -o app_src

โค้ด Smali

Smali คือภาษาที่มีลักษณะคล้ายภาษาแอสเซมบลีสำหรับไบต์โค้ด Dalvik แม้จะมีรายละเอียดมาก แต่ช่วยให้คุณแก้ไขได้อย่างแม่นยำ เช่น ข้ามการตรวจสอบด้วยการเปลี่ยนการเปรียบเทียบ

คุณสามารถแก้ไข smali และสร้าง APK ใหม่เพื่อเปลี่ยนพฤติกรรมของแอป

const/4 v0, 0x1   # force a boolean to true

รับโค้ด Java ด้วย jadx

jadx ดีคอมไพล์ DEX เป็น Java ที่อ่านได้โดยตรง รุ่น GUI ซึ่งก็คือ jadx-gui ช่วยให้คุณเรียกดูคลาส ค้นหาสตริง และติดตามการเรียกใช้เมธอด

นี่เป็นวิธีที่เร็วที่สุดในการทำความเข้าใจตรรกะของแอป

jadx-gui app.apk

เส้นทาง dex2jar

กระบวนการทางเลือกจะแปลง DEX เป็น JAR ด้วย dex2jar แล้วเปิดด้วยตัวดีคอมไพล์ Java อย่าง JD-GUI

โดยปกติ jadx ให้ผลลัพธ์ที่สะอาดกว่า แต่ dex2jar มีประโยชน์เมื่อ jadx ทำงานได้ไม่ดี

d2j-dex2jar app.apk -o app.jar

การค้นหาข้อมูลลับ

โค้ดที่ดีคอมไพล์แล้วมักมีข้อมูลลับที่ฝังตายตัว เช่น คีย์ API โทเค็น คีย์เข้ารหัส และ URL ของเซิร์ฟเวอร์ส่วนหลัง

ค้นหาคำสำคัญในซอร์ส เช่น password, secret, apikey และ http นักพัฒนามักเข้าใจผิดว่าโค้ดที่คอมไพล์แล้วจะซ่อนข้อมูลเหล่านี้

grep -ri "api_key\|secret\|password" app_src/

การตรวจสอบแมนิเฟสต์

เมื่อถอดรหัสแมนิเฟสต์แล้ว ให้ตรวจสอบสิ่งต่อไปนี้:

  • คอมโพเนนต์ที่ส่งออก
  • android:debuggable="true"
  • android:allowBackup="true" (สามารถดึงข้อมูลผ่านการสำรองข้อมูลได้)
  • สิทธิ์อันตรายหรือสิทธิ์แบบกำหนดเอง

การกำหนดค่าความปลอดภัยเครือข่าย

การกำหนดค่าความปลอดภัยเครือข่ายควบคุมพฤติกรรมของ TLS การกำหนดค่าให้รับส่งข้อมูลแบบข้อความล้วนหรือเชื่อถือ CA ที่ผู้ใช้เพิ่มเข้ามาจะทำให้ความปลอดภัยของการส่งข้อมูลอ่อนแอลง

การตั้งค่าเช่นนี้ทำให้การดักจับข้อมูล (หัวข้อถัดไป) ทำได้ง่ายขึ้นมาก

<application android:usesCleartextTraffic="true">

การสแกนอัตโนมัติด้วย MobSF

MobSF (กรอบงานความปลอดภัยอุปกรณ์เคลื่อนที่) ทำให้การวิเคราะห์แบบสถิติเป็นแบบอัตโนมัติ เพียงอัปโหลด APK แล้วระบบจะรายงานสิทธิ์ ข้อมูลลับที่ฝังตายตัว การตั้งค่าที่ไม่ปลอดภัย และคะแนนความเสี่ยง

เหมาะอย่างยิ่งสำหรับการคัดกรองเบื้องต้น แม้การตรวจสอบด้วยตนเองจะยังค้นพบปัญหาที่ลึกกว่านั้นได้

การบรรจุแพ็กเกจใหม่และการลงลายเซ็นใหม่

หลังจากแพตช์ smali แล้ว ให้สร้าง APK ใหม่ด้วย apktool และลงลายเซ็นใหม่ให้ APK (Android จะปฏิเสธแอปที่ไม่มีลายเซ็น) เครื่องมืออย่าง apksigner หรือ uber-apk-signer จะจัดการลงลายเซ็นให้

กระบวนการนี้เป็นพื้นฐานของการทดสอบการแก้ไขแอปและการปรับเปลี่ยนขณะทำงาน

apktool b app_src -o patched.apk
uber-apk-signer -a patched.apk

Deep Link และ WebView

มองหาตัวกรองอินเทนต์ของ deep link และการใช้งาน WebView หากกำหนดค่า deep link ไม่ถูกต้อง อาจเปิดหน้าจอภายในพร้อมข้อมูลที่ผู้โจมตีควบคุมได้

WebView ที่มี JavaScriptInterface หรือโหลดเนื้อหาที่ไม่น่าเชื่อถือ อาจเปิดช่องให้แอปถูกโจมตีด้วยการแทรกโค้ดและขโมยข้อมูล ทั้งสองกรณีเป็นสิ่งที่พบได้บ่อยในการตรวจสอบแบบสถิต

ตรวจสอบอย่างรวดเร็ว

ลองนึกดูว่าเครื่องมือใดแสดง Java ที่อ่านได้โดยตรงจาก APK

สรุปทบทวน

ขณะนี้คุณเข้าใจการวิเคราะห์ APK แบบสถิตแล้ว:

  • ใช้ apktool สำหรับ smali และแม니เฟสต์ที่ถอดรหัสแล้ว ใช้ jadx สำหรับ Java ที่อ่านได้ง่าย
  • ค้นหาข้อมูลลับที่ฝังตายตัว และตรวจสอบแม니เฟสต์ว่ามีแฟล็ก exported, debuggable และ backup หรือไม่
  • ตรวจสอบ Network Security Config และใช้ MobSF เพื่อคัดกรองอัตโนมัติ
  • แพตช์ smali จากนั้นสร้างใหม่และลงลายเซ็นใหม่เพื่อทดสอบการแก้ไขแอป

ถัดไป คุณจะปรับเปลี่ยนแอปที่กำลังทำงานอยู่ด้วย Frida

เริ่มต้นได้ฟรี

เรียนรู้ Ethical Hacking Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
31
บทเรียน
111

คำถามที่พบบ่อย

บทเรียน “การวิเคราะห์ APK แบบสแตติก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การวิเคราะห์ APK แบบสแตติก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การวิเคราะห์ APK แบบสแตติก”

การถอดกลับเป็นซอร์ส คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การวิเคราะห์ APK แบบสแตติก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม

ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้างแอป Android
  2. การวิเคราะห์ APK แบบสแตติก
  3. การวิเคราะห์แบบพลวัตด้วย Frida
  4. การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย
← กลับไปที่ Ethical Hacking Academy