Hướng dẫn dịch ngược file python
*Lưu ý: để import thì các file phải nằm cùng thư mục, còn import khác thư mục sẽ hướng dẫn tại các bài sau Ngay sau khi lệnh trên thực thi, 1 file
binary Rất may mắn, đối với python 2.7 trở xuống đã có công cụ hỗ trợ việc này, đó là uncompyled2. Sau khi clone hoặc down toàn bộ master code từ github về, chúng ta sẽ tiến hành cài đặt. Giải nén file Dùng lệnh Đối với một số trường hợp sẽ yêu cầu quyền root/admin của máy thì ta chạy lệnh Một cách đơn giản hơn để cài đặt là sử dụng trình quản lý package Sau khi cài đặt, uncompyle2 sẽ tự động thêm vào
biến môi trường nên ta có thể gọi từ bất kì đâu. File Làm thế nào để dịch ngược một tệp exe được biên dịch bởi py2exe? chỉ một tệp exe, không có bất kỳ tệp zip nào. làm thế nào để dịch ngược sang tệp pyc hoặc pyo?
22 hữu ích 4 bình luận 80k xem chia sẻ answer 22 Bạn có thể sử dụng unpy2exe để giải nén .pyc và sau đó sử dụng pyREtic để lấy mã nguồn. Tôi đoán bạn có thể đọc HOWTO và hiểu cách sử dụng các chương trình này, nhưng về cơ bản, bạn đi đến vị trí của unpy2exe.py và chạy:
bạn đi đến vị trí của REpdb.py và chạy:
Chọn phiên bản python
Nguồn phải ở ... \ Projects [tên dự án mới] \ sourcecode \ fs_um \ 22 hữu ích 1 bình luận chia sẻ answer 8 Một cách tiếp cận khác là lấy mã byte byte kết xuất trực tiếp từ bộ nhớ, Immunity Inc đã xuất bản một bài báo về chủ đề này với bộ công cụ lấy mã bytecode từ bộ nhớ và dịch ngược nó thành mã nguồn .py. pyREtic 8 hữu ích 0 bình luận chia sẻ answer 7 Tôi đã viết một công cụ nhỏ bằng C ++ để lấy tệp thực thi được tạo py2exe và trích xuất dấu Liên kết: Py2ExeDumper :
https://sourceforge.net/projects/py2exedumper/ 7 hữu ích 0 bình luận chia sẻ answer 1 Sử dụng tập lệnh được cung cấp tại đây . Nó yêu cầu cài đặt mô-đun Python py2exe gốc. Ngoài ra, bạn phải đảm bảo rằng bạn sử dụng cùng một phiên bản Python được sử dụng ban đầu để tạo tệp thực thi. Nếu không, tập lệnh sẽ tạo ra số ma thuật không hợp lệ cho .pyc. Sau đó, bạn có thể sử dụng uncompyle2 để khôi phục nguồn .py ban đầu. 1 hữu ích 0 bình luận chia sẻ Đăng nhập để trả lời câu hỏiCó thể bạn quan tâmMick 2013-03-22 19:01:31 UTC Gần đây, tôi đã xem / đọc bản trình bày do Dave Kennedy đưa ra tại DEF CON 20 [PDF], tôi muốn biết cách dịch ngược một tập lệnh Python được biên dịch bằng PyInstaller. Trong bài thuyết trình của mình, anh ấy đang tạo một tập lệnh shell ngược cơ bản bằng Python và chuyển đổi nó thành EXE bằng PyInstaller. Câu hỏi của tôi là làm cách nào để tạo một PyInstaller EXE và hoàn toàn, hoặc nói chung, truy xuất mã nguồn / logic từ (các) tập lệnh Python gốc? Mục đích của việc làm một tệp exe là gì khi bạn có thể hack chính tệp exe. Mục đích của việc tạo EXE với PyInstaller là để các hệ thống bạn chạy nó không yêu cầu sự tồn tại của trình thông dịch Python hoặc bất kỳ mô-đun bên thứ 3 nào mà bạn có thể đang sử dụng. Nó làm cho tập lệnh Python của bạn dễ di chuyển hơn, nhưng không ẩn mã / logic khỏi một kỹ sư đảo ngược. Remko 2013-03-22 20:05:34 UTC PyInstaller xuất bản nguồn của nó để bạn thấy chính xác cách nó đóng gói mã python trong tệp thực thi ... Một cách tiếp cận chung hơn là sử dụng một công cụ như binwalk trên exe như một bước đầu tiên. Tôi không chắc chắn binwalk là công cụ phù hợp cho công việc này. Nó sẽ hiển thị cho bạn các phần được nén của tệp thực thi, nhưng đầu ra cũng có thể có rất nhiều kết quả dương tính giả khác trừ khi bạn chỉ cho nó để chỉ tìm kiếm các phần được nén ... điều này đánh bại mục đích sử dụng nó trên loại tệp, IMHO. @mrduclaw: kinh nghiệm của tôi với binwalk là đây là một công cụ tốt để thực hiện quét cấp cao trên các tệp nhị phân, không xác định, để xem những gì có thể có trong đó. Đặc biệt nếu chúng ta biết những gì chúng ta đang tìm kiếm nhưng không biết nó nằm trong tệp nào. Tôi không có ý đề xuất đi bộ đường dài như một giải pháp hoàn chỉnh (đã sửa đổi câu trả lời của tôi để cho biết đó là bước đầu tiên) FYI, liên kết đến binwalk dường như gắn cờ là trang web độc hại kể từ tháng 6 năm 2020. @Karsun dương tính giả trên một tệp nhị phân trên trang web của tôi, tôi đã báo cáo điều này với google và nó có vẻ ổn trở lại bây giờ (cảm ơn đã cho tôi biết) |