มีไฟล์. apk แล้วมีวิธีใดที่ฉันจะได้รับซอร์สโค้ดหรือไม่
มีไฟล์. apk แล้วมีวิธีใดที่ฉันจะได้รับซอร์สโค้ดหรือไม่
คำตอบ:
หากคุณได้รับโชคดีของคุณและ.apk
ไฟล์ไม่ได้รับการคุ้มครองโดยProguardหรืออนาล็อกคุณสามารถใช้เครื่องมือเอพีเค มันเป็นเครื่องมือสำหรับวิศวกรรมย้อนกลับของบุคคลที่สามปิดปพลิเคชัน Android ไบนารี
จากหนึ่งในวิกิชุมชนโดย Parnkul Garg ใน SO :
ขั้นตอนสำหรับการถอดรหัสไฟล์. apk วิธีการทีละขั้นตอน:
สร้างโฟลเดอร์ใหม่และคัดลอกไฟล์. apk ที่คุณต้องการถอดรหัส
ตอนนี้เปลี่ยนชื่อนามสกุลของไฟล์. apk นี้เป็น. zip (เช่นเปลี่ยนชื่อจาก filename.apk เป็น filename.zip) และบันทึก ตอนนี้คุณสามารถเข้าถึงไฟล์ classes.dex ฯลฯ ในขั้นตอนนี้คุณสามารถดู drawable แต่ไม่ใช่ไฟล์ xml และ java ดังนั้นดำเนินการต่อ
ตอนนี้แยกไฟล์. zip นี้ในโฟลเดอร์เดียวกัน (หรือโฟลเดอร์ใหม่)
ดาวน์โหลด dex2jarและแตกไปยังโฟลเดอร์เดียวกัน (หรือโฟลเดอร์ใหม่)
ย้ายไฟล์ classes.dex ไปยังโฟลเดอร์ dex2jar
ตอนนี้ให้เปิดพร้อมท์คำสั่งและเปลี่ยนไดเรกทอรีเป็นโฟลเดอร์นั้น (หรือโฟลเดอร์ใหม่) จากนั้นเขียนd2j-dex2jar classes.dex
และกด Enter ตอนนี้คุณมีไฟล์ classes.dex.dex2jar ในโฟลเดอร์เดียวกัน
ดาวน์โหลด java decompiler , ดับเบิ้ลคลิกที่ jd-gui, คลิกที่ไฟล์เปิด, และเปิดไฟล์ classes.dex.dex2jar จากโฟลเดอร์นั้น: ตอนนี้คุณจะได้ไฟล์คลาส
บันทึกไฟล์คลาสเหล่านี้ทั้งหมด (ใน jd-gui คลิกไฟล์ -> บันทึกแหล่งที่มาทั้งหมด) ด้วยชื่อ src ในขั้นตอนนี้คุณจะได้รับซอร์ส java แต่ไฟล์. xml ยังคงไม่สามารถอ่านได้ดังนั้นให้ดำเนินการต่อ
ตอนนี้เปิดโฟลเดอร์ใหม่อีกอัน
ใส่ในไฟล์. apk ที่คุณต้องการถอดรหัส
ดาวน์โหลดรุ่นล่าสุดของapktool และ apktool ติดตั้งหน้าต่าง (ทั้งสามารถดาวน์โหลดได้จากลิงค์เดียวกัน) และวางไว้ในโฟลเดอร์เดียวกัน
ดาวน์โหลดframework-res.apkและวางไว้ในโฟลเดอร์เดียวกัน (ไฟล์ apk บางไฟล์ไม่ต้องการไฟล์นี้ แต่ไม่เจ็บ)
เปิดหน้าต่างคำสั่ง
นำทางไปยังไดเรกทอรีรากของ APKtool และพิมพ์คำสั่งต่อไปนี้:
apktool if framework-res.apk
apktool d myApp.apk
(ที่ myApp.apk หมายถึงชื่อไฟล์ที่คุณต้องการถอดรหัส)
ตอนนี้คุณจะได้รับโฟลเดอร์ไฟล์ในโฟลเดอร์นั้นและสามารถอ่านไฟล์ xml ของ apk ได้อย่างง่ายดาย
ไม่ใช่ขั้นตอนใด ๆ เพียงแค่คัดลอกเนื้อหาของทั้งสองโฟลเดอร์ (ในกรณีนี้ทั้งสองโฟลเดอร์ใหม่) ไปยังโฟลเดอร์เดียว
และเพลิดเพลินไปกับรหัสที่มา ...