2010-03-10 51 views
11

Tôi có một giải pháp Visual Studio 2008 với số lượng tệp DLL và ứng dụng web sử dụng chúng làm dự án chính. Đó là một phần mềm ngân hàng và kế toán thương mại (khách hàng mỏng) và tôi không muốn một khách hàng truy cập vào nguồn trong sự gian lận của tôi.Làm thế nào để làm xáo trộn ứng dụng web trước khi xuất bản?

Tôi muốn làm xáo trộn tất cả các cụm kết quả trước khi xuất bản chúng lên máy chủ web qua menu Xuất bản.

Tôi có thể làm như thế nào? Làm thế nào để chèn bước obfuscating trước khi xây dựng và xuất bản? Sử dụng msbuild?

Chỉnh sửa: Cảm ơn mọi người đã trả lời! Nhưng câu hỏi của tôi là nhiều hơn về công việc cụ thể (obfuscating trong VS về xuất bản) hơn về obfuscating nói chung.

+0

sửa tôi nếu sai nhưng bạn làm xáo trộn các cụm kết quả không phải mã nguồn .. – Peter

+0

@Petoj: Vâng, chắc chắn, cảm ơn.Tôi đủ điều kiện đăng bài của mình. Nhưng trên thực tế có một thuật ngữ tồn tại: mã obfuscated http://en.wikipedia.org/wiki/Obfuscated_code – abatishchev

+0

Bạn sẽ không muốn đợi đến phút cuối cùng để làm xáo trộn (nếu bạn quyết định) ... bạn sẽ muốn bắt đầu làm xáo trộn và kiểm tra kết quả sớm trong chu kỳ của bạn. Tôi đã trải qua quá trình chỉ suy nghĩ tôi có thể làm điều đó khi mã đã được thực hiện ... nhưng nó thường phá vỡ một cái gì đó - bây giờ tôi khuyên bạn nên thiết kế cho nó để có được hiệu quả tối đa. –

Trả lời

1

nơi dự kiến ​​bị tấn công từ? từ người dùng hoặc từ hoster? Trước tiên, bạn không nên đặt mã nguồn trên trang web, chỉ cần biên dịch hội đồng, thứ hai bạn nên đặt hội đồng trong thư mục mà người dùng không thể truy cập chúng. Nếu bạn sợ hoster bạn nên sử dụng obfuscator, chỉ cần google họ có rất nhiều trên thị trường.

+0

@Andrey: Bởi vì tôi đang sử dụng C#, thậm chí biên dịch hội đồng có thể dễ dàng được đọc. Vì vậy, tôi muốn cung cấp cho họ cho một khách hàng (xuất bản trên máy chủ của mình), nhưng ở dạng obfuscated. – abatishchev

0

Không bao giờ gửi bất kỳ thứ gì cho khách hàng mà bạn không tin tưởng họ. Không bao giờ. Nếu ngôn ngữ bạn đang sử dụng yêu cầu gửi thông tin đáng tin cậy cho khách hàng không đáng tin cậy, thì điều đó thật ngu ngốc.

1

Xem bài đăng này: Protect .NET code from reverse engineering?

có hiệu quả, không có gì bạn có thể làm để bảo vệ hoàn toàn mã của bạn từ ngược-kỹ thuật là. Điều tốt nhất bạn có thể làm là sử dụng một công cụ như Dotfuscator.

Nếu mã của bạn hoạt động, cơ hội mà một khách hàng trung thực sẽ cố gắng viết lại hoặc giả mạo nó là nhỏ. Nếu khách hàng không trung thực, có rất ít bạn có thể làm điều đó sẽ có hiệu quả.

Thay vì lo lắng về điều này, hãy lo lắng về việc sản xuất các sản phẩm chất lượng mà khách hàng trung thực sẽ trả tiền.

5

Có một số sản phẩm gây khó chịu ở ngoài đó.

Visual Studio thậm chí còn giao hàng với một - DotFuscator, mặc dù có others.

Đây là một số DotFuscator documentation.

Tuy nhiên, ngay cả với việc làm xáo trộn một hacker xác định sẽ có thể đảo ngược kỹ sư mã của bạn.

+5

+1 - Tôi sẽ thêm rằng không chỉ nó sẽ không ngăn chặn một hacker xác định, nó sẽ chỉ làm chậm chúng xuống. Tôi đã phải xem mọi thứ hoạt động như thế nào trước khi thực sự sửa lỗi của bên thứ ba, một khi bạn quen với việc xem xét nó, mã bị xáo trộn không chậm hơn nhiều so với mã bình thường với các tên biến/chức năng thực sự xấu. –

1

Tôi đồng ý với các điểm nêu trên, theo nghĩa là bạn không nên phát hành mã cho một bên không đáng tin cậy. Obfuscation đơn giản làm cho mã của bạn khó hiểu, nhưng có nhiều cách và phương tiện xung quanh nó.

Có nói rằng, nếu bạn thực sự muốn làm xáo trộn mã của mình, bạn có thể thử Easfuscator.NET.

1

Một số obfuscators sẽ hỗ trợ thực hiện obfuscation như là một phần của quá trình xây dựng để các ứng dụng được xuất bản đã obfuscated.

Crypto Obfuscator là một công cụ như vậy - nó hỗ trợ tích hợp với MSBuild cho phép thực hiện bước obfuscation như là một phần của xuất bản hoặc ClickOnce.

Các vấn đề liên quan