การวิเคราะห์ APK แบบสแตติก
การถอดกลับเป็นซอร์ส
การวิเคราะห์ 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.apkDeep 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างแอป Android
- การวิเคราะห์ APK แบบสแตติก
- การวิเคราะห์แบบพลวัตด้วย Frida
- การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย