การสอนการถอดรหัส Ubuntu apktool, smali, dex2jar, jd-gui

Ubuntu Decompilation Tutorial Apktool



บทความนี้อธิบายการติดตั้งและการใช้เครื่องมือสามตัวสำหรับการถอดรหัสและต้องติดตั้ง java สิ่งที่แนบมา (apktool ต้องการสภาพแวดล้อม java)



1. การติดตั้ง Java (java8 เป็นตัวอย่าง)



สี่ต่อไปนี้ ( วิธีแก้ปัญหาอ้างอิง ) มาตามลำดับขั้นตอนการดาวน์โหลดจะช้าลงอดทนรอ:



sudo apt-get install python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update

จากนั้นในการติดตั้ง jdk เฉพาะให้รันสิ่งเหล่านี้:

jdk6:

sudo apt-get install oracle-java6-installer

jdk7:



sudo apt-get install oracle-java7-installer

jdk8:

sudo apt-get install oracle-java8-installer

สองการติดตั้ง apktool

ที่อยู่ดาวน์โหลด apktool: Apktool ทำตามพร้อมต์และวางสคริปต์และไฟล์ jar ในไดเร็กทอรีที่เกี่ยวข้อง

หมายเหตุ: หลังจากคลายการบีบอัดไฟล์ jar ที่ดาวน์โหลดมาให้ค้นหาไฟล์ aapt (ในไดเร็กทอรีที่คลายการบีบอัด: prebuilt aapt linux ) สร้างไดเร็กทอรีใหม่ / usr / local / aapt / ใส่ไฟล์ aapt ในไดเร็กทอรีนี้และ chmod + x

ลินุกซ์ :

  1. ดาวน์โหลด Linux สคริปต์กระดาษห่อ (คลิกขวาบันทึกลิงก์เป็น apktool)
  2. ดาวน์โหลด apktool-2 ( ค้นหาใหม่ล่าสุดที่นี่ )
  3. เปลี่ยนชื่อ jar ที่ดาวน์โหลดเป็น apktool.jar
  4. ย้ายทั้งสองไฟล์ (apktool.jar & apktool) ไปที่ /usr/local/bin (จำเป็นต้องรูท)
  5. ตรวจสอบให้แน่ใจว่าทั้งสองไฟล์สามารถเรียกใช้งานได้ (chmod +x)
  6. ลองรัน apktool ผ่าน cli

โปรดทราบว่าขั้นตอนแรก (คลิกขวาบันทึกลิงก์เป็น apktool) คุณต้องคลิกขวาเพื่อบันทึกคุณไม่สามารถเปิดหน้าเว็บเพื่อคัดลอกและบันทึกได้

เวลานี้ในเทอร์มินัล:

apktool d app-mock-debug.apk

จะเห็น:

I: Using Apktool 2.3.3 on app-mock-debug.apk I: Loading resource table... I: Decoding AndroidManifest.xml with resources... S: WARNING: Could not write to (/home/shixin398/.local/share/apktool/framework), using /tmp instead... S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable I: Loading resource table from file: /tmp/1.apk I: Regular manifest package... I: Decoding file-resources... I: Decoding values */* XMLs... I: Baksmaling classes.dex... I: Baksmaling classes2.dex... I: Baksmaling classes3.dex... I: Baksmaling classes4.dex... I: Baksmaling classes5.dex... I: Baksmaling classes6.dex... I: Copying assets and libs... I: Copying unknown files... I: Copying original files...

ขั้นตอนแรกเสร็จสมบูรณ์คุณจะเห็นไฟล์ mk และไฟล์ smali

สาม smali2java

จากนั้นดาวน์โหลดเครื่องมือ smali2java ( รหัสผ่าน: 42uq ) เพื่อประมวลผลไฟล์ smali เป็นไฟล์ java

นี่คือเครื่องมือแสดงภาพที่ทำงานบน windows

ฉันไม่รู้ว่า apktool จะสร้างไฟล์ dex หลังจากการถอดรหัสหรือไม่ แต่ตอนนี้ดูเหมือนว่าจะเป็นไฟล์ smali ทั้งหมด . ไม่มีทางรอด้วย jd-jui

ประการที่สี่ใช้ dex2jar และ jd-jui

หากคุณไม่ต้องการใช้ smali2java มีวิธีอื่น: เปลี่ยนจุดสิ้นสุดของไฟล์ apk จาก'.apk 'เป็น'.zip' จากนั้นแตกไฟล์คุณจะเห็นไฟล์. dex

จากนั้นใช้ dex2jar เพื่อประมวลผลไฟล์ dex และเปิดเพื่อดูด้วย jd-jui

1. ติดตั้งและใช้ dex2jar:

ดาวน์โหลด: https://bitbucket.org/pxb1988/dex2jar/downloads/ , ที่อยู่เดิม: คอมไพล์ฮับ, เปิดเครื่องรูด:

คุณยังสามารถส่งออกไฟล์ jar ที่มีชื่อที่ระบุไปยังตำแหน่งที่ระบุ:

AndroidStudio/dex2jar-2.0$ sh d2j-dex2jar.sh -f /mnt/d/code/APK/app-mock-debug.apk -o ../../decomp.jar dex2jar /mnt/d/code/APK/app-mock-debug.apk -> ../../decomp.jar

2.jd-jui ดาวน์โหลด

ดาวน์โหลด ( ที่อยู่ดาวน์โหลด jd-jui ) ใช้โดยตรง