Trong phát triển phần mềm, Obfuscation là hành động có chủ ý tạo ra Mã nguồn khó hiểu đối với con người. Mã này thường được làm rối để bảo vệ tài sản trí tuệ hoặc bí mật thương mại và để ngăn kẻ tấn công thiết kế ngược một chương trình phần mềm độc quyền Show Mã hóa một số hoặc tất cả mã của chương trình là một phương pháp che giấu Trong Python, có sẵn nhiều gói mà bạn có thể làm xáo trộn cơ sở mã của mình và bảo vệ tài sản trí tuệ của mình
Trong khi nghiên cứu, tôi đã tìm thấy một tùy chọn khác để làm xáo trộn Mã Python của mình bằng Cython, điều này khá hữu ích và khó đảo ngược Kỹ sư Obfuscation là một trong nhiều tính năng mà gói Cython cung cấp. Cython là một trình biên dịch tĩnh tối ưu hóa, lấy các mô-đun python main.py 9 của bạn và dịch chúng sang các tệp C có hiệu suất cao. Các tệp C kết quả có thể được biên dịch thành các thư viện nhị phân gốc mà không cần nỗ lực. Khi quá trình biên dịch hoàn tất, không có cách nào để đảo ngược các thư viện đã biên dịch trở lại mã nguồn Python có thể đọc đượcHãy để tôi hướng dẫn bạn các bước hướng tới việc làm xáo trộn mã nguồn Python bằng Cython. Chúng tôi sẽ sử dụng một dự án đơn giản để giới thiệu giống nhau Mã mẫu để minh họa việc làm xáo trộn mãTôi đã viết một đoạn mã nhỏ dựa trên Flask bằng trăn lấy phương trình số làm Đầu vào, xác thực phương trình và nếu hợp lệ, giải phương trình. Không có gì hợp lý, chỉ dành cho mục đích hướng dẫn. Ý tưởng là để giới thiệu sự xáo trộn mã của logic nghiệp vụ cơ sở mã
Mã repo trông giống như… . Hướng dẫn mã
Thực thi mãĐể chạy ứng dụng Flask, hãy thực hiện lệnh bên dưới trong thiết bị đầu cuối python main.py Bây giờ bạn có thể truy cập Tài liệu API Swagger bằng URL http://<public-ip>/ui Đi vênh vangPhản hồi thành côngPhản hồi lỗiChạy biên dịch. pyTùy thuộc vào phiên bản Python bạn sử dụng, hãy chạy python compile.py build_ext --inplace …hoặc, cho Python 3 python3 compile.py build_ext --inplace Lệnh trên sẽ tạo các tệp python main.py 2 và python main.py 5 bên cạnh tệp nguồn python main.py 9 của bạnpython main.py 0Tệp python main.py 5 là nguồn trung gian được sử dụng để tạo tệp python main.py 2, là mô-đun nhị phân mà bạn muốn phân phối. Khi xây dựng trên Windows, các tệp này có thể sẽ có phần mở rộng python main.py 9Bạn có thể xóa các tệp http://<public-ip>/ui 0 python main.py 5 và python main.py 9 sau khi tạo thành công và chỉ giữ lại các tệp python main.py 2. Một phương pháp đã được thêm vào cho cùng mộtLưu ý rằng các tệp python main.py 2 chứa nền tảng đích trong tên của chúng (e. g. http://<public-ip>/ui 5 trên MacOS của tôi). Rõ ràng, các mô-đun được biên dịch không đa nền tảng. Nếu bạn phân phối chương trình của mình cho người dùng Ubuntu Linux, bạn nên biên dịch nó trên Linux. Nếu không, bạn sẽ không thể tải các tệp nhị phân này. Vì vậy, bạn sẽ phải biên dịch một phiên bản mã dành riêng cho nền tảng cho từng nền tảng được nhắm mục tiêu của mìnhTrình kích hoạt của tập lệnh này có thể được thêm vào trong các tệp thiết lập hoặc Dockerfile hỗ trợ xây dựng gói ứng dụng. Gói hàng cuối cùng cần được vận chuyển sẽ có Tài sản trí tuệ khó hiểu, rất khó để đảo ngược Kỹ sư Người giới thiệu
Nếu bạn thấy blog này hữu ích, hãy để lại một tràng vỗ tay 👏 hoặc bình luận 💬. Mọi phản hồi hoặc phê bình mang tính xây dựng đều được hoan nghênh 🙌 Công cụ nào có thể được sử dụng để che giấu mã nguồn?Công cụ làm xáo trộn mã
. Bộ giải mã mã nguồn mở trong Java bao gồm ProGuard, là trình thu nhỏ tệp lớp và loại bỏ các lớp không sử dụng. Nó giúp đổi tên các lớp còn lại bằng những cái tên vô nghĩa
Có thể Deobfuscate mã không?Thứ hai, mã bị xáo trộn rất khó hiểu và do đó logic lập trình bị ẩn, đại loại là, khỏi những con mắt tò mò. Tuy nhiên, việc gỡ rối mã cực kỳ dễ dàng hoặc bạn cũng có thể nói kỹ sư đảo ngược, bất kỳ đoạn mã nào bị xáo trộn và làm cho nó dễ đọc hơn đối với con người.
Kỹ thuật che giấu mã là gì?Xáo trộn mã là quá trình làm cho ứng dụng trở nên khó hoặc không thể dịch ngược hoặc phân tách và mã ứng dụng được truy xuất khó phân tích hơn đối với con người . Các nhà phát triển ứng dụng phải làm cứng mã ở các lớp khác nhau.
Bạn có nên làm xáo trộn mã của mình không?Obfuscation là một phương pháp quan trọng để bảo vệ mã nguồn bằng cách làm cho mã trở nên khó hiểu , do đó ngăn các bên không được ủy quyền dễ dàng dịch ngược hoặc phân tách mã nguồn. |