23 มีนาคม 2558

Published 3/23/2558 by with 0 comment

Decompiler Python ถอดโค้ดจากไฟล์ pyc

สวัสดีผู้อ่านทุกท่านครับ บทความนี้จะพาผู้อ่านไป Decompiler Python กันครับ

การ Decompiler คืออะไร
คือ การย้อนกลับจากโปรแกรมที่คอมไพล์แล้วไปสู่โค้ดต้นฉบับโปรแกรม เป็นการวิศวกรรมย้อนกลับ (Reverse Engineering ) โปรแกรมครับ พูดง่าย ๆ คือ การแกะโค้ดโปรแกรมครับ
ในทางการเขียนโปรแกรมคอมพิวเตอร์การวิศวกรรมย้อนกลับทางการพัฒนาโปรแกรมมีทั้งด้านดีและด้านไม่ดี

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

  • ด้านไม่ดี คือ การค้นหาช่องโหว่โปรแกรมเพื่อโจมตีแบบ zero-day และการทำการวิศวกรรมย้อนกลับโปรแกรมที่มีลิขสิทธิ์โดยไม่ได้รับอนุญาตจากเจ้าของลิขสิทธิ์ เช่น โปรแกรมคอมพิวเตอร์เพื่อการจำหน่าย (Commercial Software) และ โปรแกรมคอมพิวเตอร์แบบทดลองใช้ (Shareware Software หรือ Trailware) อาจทำให้เกิดความเสียหายตามมาภายหลังได้


ในการ Python เมื่อเรา compile จะได้ไฟล์ .pyc เป็นไฟล์ที่ถูก compile แล้ว

ดูเพิ่มเติม การ compile ไฟล์ py และมีเครื่องมือในการทำ Decompiler Python ดังนี้ครับ

  1. Easy Python Decompiler
    เป็นเครื่องมือ bytecode decompiler
    รองรับทั้ง Python 1.0 - 3.4
    สามารถถอดได้ทั้งไฟล์ pyc และ pyo
    หน้าต่างการทำงานเป็น GUI
    ไม่ต้องมี Python ในเครื่องก็สามารถถอดได้
    รองรับเฉพาะ Windows
    ใช้ MIT License
    เว็บไซต์ http://sourceforge.net/projects/easypythondecompiler/

  2. uncompyle2
    เป็นเครื่องมือ bytecode decompiler
    รองรับ Python เวชั่น 2.5, 2.6, 2.7
    สามารถถอดได้ทั้งไฟล์ pyc และ pyo
    ต้องการ Python 2.7 ในการใช้งาน
    เว็บไซต์ https://github.com/Mysterie/uncompyle2

  3. pycdc
    เป็นเครื่องมือ Python Byte-code Disassembler/Decompiler
    รองรับทั้ง Python 1.0 - 3.4
    สามารถถอดได้ทั้งไฟล์ pyc และ pyo
    ใช้ GNU General Public License, version 3
    เว็บไซต์ https://github.com/zrax/pycdc
    วิธีการติดตั้งในลินุกซ์ https://ltops9.wordpress.com/2014/04/17/decompyle-a-great-python-dissasemblerdecompiler/

  4. unpyc3
    เป็นเครื่องมือ Decompiler ของ Python 3 สามารถย้อนกลับโค้ดโปรแกรมจาก objects ได้
    รองรับทั้ง Python 3.X
    สามารถถอดได้ไฟล์ pyc ได้
    เว็บไซต์ https://github.com/figment/unpyc3


ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)