APK Info Viewer

ดูสิ่งที่แพ็กเกจแอปพลิเคชัน Android ประกาศไว้ ทั้งเวอร์ชัน สิทธิ์การใช้งาน คอมโพเนนต์ และใบรับรองการเซ็นชื่อ ก่อนที่คุณจะทำการติดตั้ง

พร้อมแล้ว วางไฟล์ APK เพื่อตรวจสอบได้เลย

ไฟล์ APK จะถูกวิเคราะห์บนอุปกรณ์ของคุณทั้งหมด: ไม่มีอัปโหลดไฟล์ และจะมีการอ่านไฟล์เท่านั้น ไม่มีการติดตั้งหรือรันแอปพลิเคชันเด็ดขาด

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

เราสามารถเรียนรู้อะไรจาก APK ได้บ้างโดยไม่ต้องติดตั้ง?

รู้ได้หลายอย่างเลยทีเดียว: ชื่อแพ็กเกจและเวอร์ชันของแอป เวอร์ชัน Android ขั้นต่ำที่ต้องการ สิทธิ์ทั้งหมดที่แอปขอ หน้าจอและคอมโพเนนต์เบื้องหลังที่ประกาศไว้ ประเภทหน่วยประมวลผลที่รองรับโค้ดเนทีฟ และใบรับรองที่ใช้เซ็นชื่อแอป

เครื่องมือนี้สามารถบอกได้หรือไม่ว่า APK ตัวนี้เป็นมัลแวร์?

ไม่ได้ — และควรระวังเครื่องมือใดๆ ที่อ้างว่าฟันธงได้จากการสแกนเพียงครู่เดียว สิ่งที่คุณได้รับที่นี่คือข้อเท็จจริง ได้แก่ สิทธิ์ คอมโพเนนต์ ผู้เซ็นชื่อ และแฮชไฟล์ ให้นำไปเทียบกับสิ่งที่ผู้พัฒนาประกาศไว้ และหากพบสิทธิ์ที่น่าสงสัยหรือผู้เซ็นชื่อต่างไปจากเวอร์ชันทางการ ควรพิจารณาหลีกเลี่ยง

รองรับไฟล์รูปแบบใดบ้าง?

ไฟล์ APK เดี่ยวที่มีขนาดไม่เกิน 500 MB ส่วนแพ็กเกจแบบแยก (XAPK, APKM) และ Android App Bundle (.aab) นั้นเป็นรูปแบบคอนเทนเนอร์หรือรูปแบบการเผยแพร่ ไม่ใช่แพ็กเกจติดตั้งเดี่ยวๆ ดังนั้นระบบจึงปฏิเสธและแจ้งเตือนอย่างชัดเจนแทนที่จะแสดงรายงานที่อาจทำให้สับสน

รายละเอียดการเซ็นชื่อบอกอะไรเราได้บ้าง?

แอป Android ทุกแอปจะต้องมีการเซ็นชื่อ และใบรับรองจะระบุว่าใครเป็นผู้เผยแพร่ คุณจะเห็นว่าแพ็กเกจรองรับสกีมาการเซ็นชื่อใดบ้าง (v1, v2, v3) รวมถึงชื่อผู้เซ็น ระยะเวลาที่ใช้งานได้ และลายนิ้วมือแบบ MD5, SHA-1 และ SHA-256 APK สองไฟล์ที่มีลายนิ้วมือตรงกันมาจากผู้เผยแพร่รายเดียวกัน แต่คุณต้องเป็นผู้ตัดสินใจเองว่าจะไว้วางใจผู้เผยแพร่นั้นหรือไม่

ป้ายกำกับ “อันตราย” (Dangerous) บนสิทธิ์การใช้งานหมายถึงอะไร?

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

การวิเคราะห์โครงสร้างภายในของไฟล์ APK

Android application package (APK) คือรูปแบบไฟล์บีบอัดมาตรฐานที่ระบบปฏิบัติการ Android ใช้ในการแจกจ่ายและติดตั้งแอปพลิเคชัน ภายในไฟล์ APK ประกอบด้วยโครงสร้างข้อมูลสำคัญที่กำหนดพฤติกรรมและการทำงานของแอปพลิเคชันทั้งหมด เช่น ไฟล์ AndroidManifest.xml ซึ่งทำหน้าที่ประกาศข้อมูลพื้นฐานของระบบ, ไฟล์โค้ดที่คอมไพล์แล้วในรูปแบบ Dalvik Executable (.dex), ไฟล์รีซอร์สสำหรับแสดงผลอินเตอร์เฟส, ไฟล์แอสเซท และไลบรารีโค้ดเนทีฟ

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

ข้อกำหนดระบบปฏิบัติการและการทำงานร่วมกัน

ในการตรวจสอบไฟล์ APK ข้อมูลสำคัญส่วนแรกที่ต้องพิจารณาคือข้อกำหนดด้านระบบปฏิบัติการในส่วน Requirements ซึ่งระบุขอบเขตการทำงานของแอปพลิเคชันบนเวอร์ชัน Android ต่างๆ:

  • Android ขั้นต่ำ (Minimum SDK): แสดงผลในรูปแบบ Android ‹version› (API ‹level›) หรือ API ‹level› เพื่อระบุเวอร์ชันต่ำสุดของระบบปฏิบัติการ Android ที่แอปพลิเคชันนี้จะสามารถติดตั้งและทำงานได้
  • Android เป้าหมาย (Target SDK): แสดงผลในรูปแบบ Android ‹version› (API ‹level›) หรือ API ‹level› ซึ่งเป็นเวอร์ชันที่ผู้พัฒนาใช้ในการทดสอบและออกแบบแอปพลิเคชัน โดยระบบปฏิบัติการ Android จะใช้ค่านี้ในการบังคับใช้พฤติกรรมความปลอดภัยและความเป็นส่วนตัว
  • SDK สูงสุด ‹n› (Max SDK): ขีดจำกัดสูงสุดของเวอร์ชัน Android ที่แอปพลิเคชันนี้อนุญาตให้ทำงาน (หากมีการระบุไว้)

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

การตรวจสอบสิทธิ์การใช้งานและการคัดกรองสิทธิ์อันตราย

ในส่วน Permissions เครื่องมือจะแสดงรายการสิทธิ์ทั้งหมดที่แอปพลิเคชันร้องขอต่อระบบปฏิบัติการ เพื่อความปลอดภัยในการวิเคราะห์ ระบบจะจัดเรียงสิทธิ์ที่มีความเสี่ยงสูงไว้ที่ส่วนบนสุดของรายการ พร้อมแสดงป้ายกำกับ อันตราย (Dangerous) กำกับไว้

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

คอมโพเนนต์หลักและการส่งออกข้อมูลสู่ภายนอก

โครงสร้างการทำงานเบื้องหลังของแอปพลิเคชันจะถูกประกาศไว้ในส่วน Components โดยแบ่งออกเป็น 4 ประเภทหลัก ซึ่งระบบจะจำกัดการแสดงผลไว้ที่ประเภทละไม่เกิน 100 รายการ หากมีจำนวนเกินกว่านั้นจะแสดงป้ายกำกับ เพิ่มอีก ‹count› แทน:

  • Activities: หน้าจออินเตอร์เฟสที่ผู้ใช้มองเห็นและปฏิสัมพันธ์ได้
  • Services: ส่วนการทำงานเบื้องหลังที่ไม่มีหน้าจอแสดงผล
  • Receivers: ส่วนรับสัญญาณและตอบสนองต่อเหตุการณ์ต่างๆ จากระบบหรือแอปอื่น
  • Providers: ส่วนจัดการและแบ่งปันข้อมูลระหว่างแอปพลิเคชัน

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

การตรวจสอบลายเซ็นดิจิทัลและใบรับรองผู้เผยแพร่

ระบบปฏิบัติการ Android บังคับให้แอปพลิเคชันทุกตัวต้องผ่านการลงลายเซ็นดิจิทัลเพื่อยืนยันตัวตนผู้พัฒนา ในส่วน Signatures เครื่องมือจะทำการดึงข้อมูลเมทาดาตาจากบล็อกลายเซ็น v1 (PKCS#7) และ APK Signing Blocks (v2, v3, v3.1) เพื่อแสดงรายละเอียดดังนี้:

  • ผู้ลงนาม ‹n›: ลำดับของผู้ลงนามในแพ็กเกจ
  • หัวข้อ และ ออกโดย: ข้อมูลผู้สร้างใบรับรองและหน่วยงานที่ออกใบรับรอง
  • หมายเลขซีเรียล: หมายเลขประจำตัวเฉพาะของใบรับรอง
  • ใช้ได้ตั้งแต่ และ ใช้ได้ถึง: ระยะเวลาเริ่มต้นและสิ้นสุดการใช้งานของใบรับรอง
  • อัลกอริทึมลายเซ็น และ อัลกอริทึมคีย์: เทคโนโลยีเข้ารหัสลับที่ใช้
  • ลายนิ้วมือใบรับรอง: ค่าแฮช MD5, SHA-1 และ SHA-256 ของใบรับรอง

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

ข้อมูลทางเทคนิคและแฮชไฟล์เพื่อการตรวจสอบความถูกต้อง

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

ส่วนการแสดงผล รายละเอียดข้อมูลที่ปรากฏ
โค้ดเนทีฟ ประเภทหน่วยประมวลผล (ABIs) ที่รองรับ และจำนวนไลบรารีเนทีฟภายในแพ็กเกจ
รีซอร์ส ข้อมูล ความหนาแน่นหน้าจอ, ไฟล์รีซอร์ส, ไฟล์แอสเซท, ไฟล์โค้ด (.dex) และจำนวน ไฟล์ในแพ็กเกจ ทั้งหมด
แฮชไฟล์ ค่าแฮช MD5, SHA-1 และ SHA-256 ของไฟล์ APK ทั้งไฟล์ เพื่อใช้เปรียบเทียบกับค่าแฮชทางการของผู้พัฒนา

ความเป็นส่วนตัวและเทคโนโลยีการประมวลผลบนเบราว์เซอร์

ความปลอดภัยของข้อมูลถือเป็นหัวใจสำคัญ เครื่องมือนี้ทำงานผ่านเทคโนโลยี Web Worker ภายในเว็บเบราว์เซอร์ของผู้ใช้โดยตรง กระบวนการอ่านไฟล์ การคำนวณค่าแฮช และการวิเคราะห์โครงสร้างทั้งหมดเกิดขึ้นภายในเครื่องของผู้ใช้แบบ Local ไม่มีการอัปโหลดไฟล์ APK หรือข้อมูลใดๆ ไปยังเซิร์ฟเวอร์ภายนอก และไม่มีการติดตั้งหรือรันแอปพลิเคชันบนอุปกรณ์ของผู้ใช้แต่อย่างใด


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

เราสามารถเรียนรู้อะไรจาก APK ได้บ้างโดยไม่ต้องติดตั้ง?

รู้ได้หลายอย่างเลยทีเดียว: ชื่อแพ็กเกจและเวอร์ชันของแอป เวอร์ชัน Android ขั้นต่ำที่ต้องการ สิทธิ์ทั้งหมดที่แอปขอ หน้าจอและคอมโพเนนต์เบื้องหลังที่ประกาศไว้ ประเภทหน่วยประมวลผลที่รองรับโค้ดเนทีฟ และใบรับรองที่ใช้เซ็นชื่อแอป

เครื่องมือนี้สามารถบอกได้หรือไม่ว่า APK ตัวนี้เป็นมัลแวร์?

ไม่ได้ — และควรระวังเครื่องมือใดๆ ที่อ้างว่าฟันธงได้จากการสแกนเพียงครู่เดียว สิ่งที่คุณได้รับที่นี่คือข้อเท็จจริง ได้แก่ สิทธิ์ คอมโพเนนต์ ผู้เซ็นชื่อ และแฮชไฟล์ ให้นำไปเทียบกับสิ่งที่ผู้พัฒนาประกาศไว้ และหากพบสิทธิ์ที่น่าสงสัยหรือผู้เซ็นชื่อต่างไปจากเวอร์ชันทางการ ควรพิจารณาหลีกเลี่ยง

รองรับไฟล์รูปแบบใดบ้าง?

ไฟล์ APK เดี่ยวที่มีขนาดไม่เกิน 500 MB ส่วนแพ็กเกจแบบแยก (XAPK, APKM) และ Android App Bundle (.aab) นั้นเป็นรูปแบบคอนเทนเนอร์หรือรูปแบบการเผยแพร่ ไม่ใช่แพ็กเกจติดตั้งเดี่ยวๆ ดังนั้นระบบจึงปฏิเสธและแจ้งเตือนอย่างชัดเจนแทนที่จะแสดงรายงานที่อาจทำให้สับสน

รายละเอียดการเซ็นชื่อบอกอะไรเราได้บ้าง?

แอป Android ทุกแอปจะต้องมีการเซ็นชื่อ และใบรับรองจะระบุว่าใครเป็นผู้เผยแพร่ คุณจะเห็นว่าแพ็กเกจรองรับสกีมาการเซ็นชื่อใดบ้าง (v1, v2, v3) รวมถึงชื่อผู้เซ็น ระยะเวลาที่ใช้งานได้ และลายนิ้วมือแบบ MD5, SHA-1 และ SHA-256 APK สองไฟล์ที่มีลายนิ้วมือตรงกันมาจากผู้เผยแพร่รายเดียวกัน แต่คุณต้องเป็นผู้ตัดสินใจเองว่าจะไว้วางใจผู้เผยแพร่นั้นหรือไม่

ป้ายกำกับ “อันตราย” (Dangerous) บนสิทธิ์การใช้งานหมายถึงอะไร?

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