การ Decompiler คืออะไร
คือ การย้อนกลับจากโปรแกรมที่คอมไพล์แล้วไปสู่โค้ดต้นฉบับโปรแกรม เป็นการวิศวกรรมย้อนกลับ (Reverse Engineering ) โปรแกรมครับ พูดง่าย ๆ คือ การแกะโค้ดโปรแกรมครับ
ในทางการเขียนโปรแกรมคอมพิวเตอร์การวิศวกรรมย้อนกลับทางการพัฒนาโปรแกรมมีทั้งด้านดีและด้านไม่ดี
- ด้านดี คือ การวิศวกรรมย้อนกลับโปรแกรมช่วยให้เราพบ Bug โปรแกรมและสามารถหาทางแก้ไขด้วยตนเองหรือรายงาน Bug ไปหาผู้ผลิตได้ หรือจะเพิ่มความสามารถและปรับแต่งค่าโปรแกรมที่ทางผู้ผลิตไม่ได้ทำมาให้ได้
- ด้านไม่ดี คือ การค้นหาช่องโหว่โปรแกรมเพื่อโจมตีแบบ zero-day และการทำการวิศวกรรมย้อนกลับโปรแกรมที่มีลิขสิทธิ์โดยไม่ได้รับอนุญาตจากเจ้าของลิขสิทธิ์ เช่น โปรแกรมคอมพิวเตอร์เพื่อการจำหน่าย (Commercial Software) และ โปรแกรมคอมพิวเตอร์แบบทดลองใช้ (Shareware Software หรือ Trailware) อาจทำให้เกิดความเสียหายตามมาภายหลังได้
ในการ Python เมื่อเรา compile จะได้ไฟล์ .pyc เป็นไฟล์ที่ถูก compile แล้ว
ดูเพิ่มเติม การ compile ไฟล์ py และมีเครื่องมือในการทำ Decompiler Python ดังนี้ครับ
- Easy Python Decompiler
เป็นเครื่องมือ bytecode decompiler
รองรับทั้ง Python 1.0 - 3.4
สามารถถอดได้ทั้งไฟล์ pyc และ pyo
หน้าต่างการทำงานเป็น GUI
ไม่ต้องมี Python ในเครื่องก็สามารถถอดได้
รองรับเฉพาะ Windows
ใช้ MIT License
เว็บไซต์ http://sourceforge.net/projects/easypythondecompiler/ - uncompyle2
เป็นเครื่องมือ bytecode decompiler
รองรับ Python เวชั่น 2.5, 2.6, 2.7
สามารถถอดได้ทั้งไฟล์ pyc และ pyo
ต้องการ Python 2.7 ในการใช้งาน
เว็บไซต์ https://github.com/Mysterie/uncompyle2 - 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/ - unpyc3
เป็นเครื่องมือ Decompiler ของ Python 3 สามารถย้อนกลับโค้ดโปรแกรมจาก objects ได้
รองรับทั้ง Python 3.X
สามารถถอดได้ไฟล์ pyc ได้
เว็บไซต์ https://github.com/figment/unpyc3
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)