0Pricing
Ethical Hacking Academy · บทเรียน

โครงสร้างแอป Android

ส่วนภายใน APK

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

ไฟล์ APK

แอป Android จะจัดส่งในรูปแบบ APK (แพ็กเกจ Android) ซึ่งแท้จริงแล้วเป็นไฟล์จัดเก็บ ZIP ที่บรรจุโค้ดที่คอมไพล์แล้ว ทรัพยากร และข้อมูลเมทาดาทา

เนื่องจากเป็น ZIP คุณจึงเพียงคลายไฟล์เพื่อสำรวจเนื้อหาได้ ซึ่งเป็นขั้นตอนแรกของการทดสอบเจาะระบบอุปกรณ์เคลื่อนที่

unzip app.apk -d app_extracted/

ภายใน APK

APK ที่แยกไฟล์แล้วประกอบด้วย:

  • AndroidManifest.xml: การกำหนดค่าแอป
  • classes.dex: ไบต์โค้ดที่คอมไพล์แล้ว
  • res/ และ resources.arsc: ทรัพยากร
  • lib/: ไลบรารีเนทีฟ
  • META-INF/: ข้อมูลการเซ็นชื่อ

แมนิเฟสต์

AndroidManifest.xml ประกาศคอมโพเนนต์ สิทธิ์ และการกำหนดค่าของแอป ภายใน APK ไฟล์นี้อยู่ในรูปแบบ XML ไบนารีที่เครื่องมือสามารถถอดรหัสได้

นี่คือไฟล์ที่สำคัญที่สุดสำหรับทำความเข้าใจพื้นผิวการโจมตีของแอป

DEX และสภาพแวดล้อมขณะทำงาน

ซอร์สโค้ด Java/Kotlin จะคอมไพล์เป็นไบต์โค้ด DEX (Dalvik Executable) ใน classes.dex Android รุ่นใหม่เรียกใช้ไบต์โค้ดนี้ผ่าน ART (Android Runtime)

สามารถแปลง DEX กลับไปเป็นโค้ดที่อ่านได้ ซึ่งเป็นสิ่งที่การวิเคราะห์ APK แบบสถิติอาศัย

คอมโพเนนต์ทั้งสี่

แอป Android สร้างจากคอมโพเนนต์สี่ประเภท:

  • กิจกรรม: หน้าจอ / ส่วนติดต่อผู้ใช้
  • บริการ: งานเบื้องหลัง
  • ตัวรับการกระจายสัญญาณ: ตอบสนองต่อเหตุการณ์ของระบบ
  • ผู้ให้บริการเนื้อหา: แบ่งปันข้อมูลระหว่างแอป

คอมโพเนนต์ที่ส่งออก

คอมโพเนนต์ที่มีเครื่องหมาย android:exported="true" สามารถถูกเรียกใช้โดยแอปอื่นได้ หากคอมโพเนนต์ดังกล่าวทำงานที่ละเอียดอ่อนโดยไม่มีการตรวจสอบ ก็ถือเป็นพื้นผิวการโจมตี

ผู้ทดสอบเจาะระบบจะค้นหากิจกรรม บริการ และผู้ให้บริการที่ส่งออก ซึ่งอาจทำให้ข้อมูลรั่วไหลหรือดำเนินการที่ต้องใช้สิทธิ์สูง

<activity android:name=".AdminActivity" android:exported="true"/>

สิทธิ์

แอปจะขอสิทธิ์ในแมนิเฟสต์ (เช่น INTERNET, READ_SMS, ACCESS_FINE_LOCATION)

สิทธิ์ที่กว้างเกินไปอาจบ่งชี้พฤติกรรมที่มีความเสี่ยงหรือการเข้าถึงข้อมูลมากเกินจำเป็น สิทธิ์แบบกำหนดเองก็อาจกำหนดค่าผิดพลาดจนอนุญาตให้เข้าถึงโดยไม่ได้รับอนุญาต

<uses-permission android:name="android.permission.READ_SMS"/>

แซนด์บ็อกซ์ของแอป

Android แยกแต่ละแอปไว้ในแซนด์บ็อกซ์ของตัวเอง พร้อม Linux UID ที่ไม่ซ้ำกัน โดยค่าเริ่มต้น แอปจะไม่สามารถอ่านข้อมูลของกันและกันได้

ช่องโหว่เกิดขึ้นเมื่อแอปทำให้ขอบเขตนี้อ่อนแอลง เช่น มีไฟล์ที่ทุกคนอ่านได้หรือมีผู้ให้บริการที่เปิดเผย

การจัดเก็บข้อมูลแอป

แอปที่ติดตั้งแล้วจะจัดเก็บข้อมูลส่วนตัวไว้ที่ /data/data/<package>/ ซึ่งประกอบด้วยฐานข้อมูล ค่ากำหนดที่ใช้ร่วมกัน และไฟล์

บนอุปกรณ์ที่ผ่านการรูตหรือผ่านการสำรองข้อมูล ผู้ทดสอบเจาะระบบสามารถตรวจสอบไดเรกทอรีนี้เพื่อค้นหาข้อมูลลับที่จัดเก็บอย่างไม่ปลอดภัย ซึ่งบทเรียนถัดไปจะอธิบายเพิ่มเติม

/data/data/com.example.app/

การเซ็นชื่อ

APK ทุกไฟล์จะถูกเซ็นชื่อแบบดิจิทัล โดยลายเซ็นจะอยู่ใน META-INF/ Android จะตรวจสอบลายเซ็นเมื่อติดตั้งและเมื่ออัปเดต

หากคุณแก้ไขและแพ็กแอปใหม่ คุณต้องเซ็นชื่อใหม่ด้วย นี่คือเหตุผลที่นักพัฒนาพึ่งพาการเซ็นชื่อเพื่อตรวจจับการดัดแปลง

ไลบรารีเนทีฟ

ตรรกะที่ต้องการประสิทธิภาพสูงหรือถูกทำให้อ่านยากอาจอยู่ในไลบรารีเนทีฟ (ไฟล์ .so) ภายใต้ lib/ ซึ่งคอมไพล์จาก C/C++

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

lib/arm64-v8a/libnative.so

ตรวจสอบความเข้าใจ

ทบทวนว่าแอตทริบิวต์ใดในแมนิเฟสต์ที่เปิดเผยคอมโพเนนต์ให้แอปอื่นเข้าถึง

สรุปทบทวน

ขณะนี้คุณเข้าใจโครงสร้างแอป Android แล้ว:

  • APK คือ ZIP ที่บรรจุ AndroidManifest.xml, classes.dex, ทรัพยากร และข้อมูลการเซ็นชื่อ
  • แอปใช้คอมโพเนนต์สี่ประเภท โดยคอมโพเนนต์ที่ส่งออกถือเป็นพื้นผิวการโจมตี
  • สิทธิ์และแซนด์บ็อกซ์แยกตามแอปเป็นตัวควบคุมการเข้าถึง ข้อมูลส่วนตัวอยู่ที่ /data/data/
  • APK ถูกเซ็นชื่อเพื่อใช้ตรวจจับการดัดแปลง

ถัดไปคุณจะดีคอมไพล์ APK ในการวิเคราะห์แบบสถิติ

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

บทเรียน “โครงสร้างแอป Android” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “โครงสร้างแอป Android”

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

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

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

บทเรียน “โครงสร้างแอป Android” ใช้เวลานานแค่ไหน

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

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

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

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

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