2009-07-01 65 views
15

Tôi honsetly không thể nói rằng tôi đã từng nhìn thấy một ứng dụng thương mại có sử dụng NET (khác sau đó điều khiển cho devs/mã nguồn mở). Với việc dễ dàng 'dịch ngược' ứng dụng .NET bằng cách sử dụng RedGates .NET Reflector, tôi đã tự hỏi liệu .NET có hướng tới ASP.NET không (vì bạn không thể 'dịch ngược' vì mã chạy trên máy chủ và không được lưu trữ trên người dùng máy)?Có ai viết các ứng dụng máy tính để bàn bằng .NET không?

+18

Ngôn ngữ Bytecode bao gồm rất nhiều siêu dữ liệu có thể hỗ trợ trong kỹ thuật đảo ngược của các ứng dụng và làm phát sinh các công cụ như Reflector. Tuy nhiên, sự phân chia khó khăn trong việc đảo ngược ứng dụng gốc và một ứng dụng .net không phải là rộng. Nó dễ dàng hơn một chút? Chắc chắn rồi. Sự khác biệt có đủ lớn để thay đổi nội dung viết ứng dụng của bạn không? Không đời nào. Các tập tin thực thi gốc cúi xuống trước các công cụ mạnh mẽ như IDA Pro. Với plugin HexRays, tôi thậm chí có thể nhận được Reflector như pseudocode. – mmcdole

+2

@Simucal: Điều đó hoàn toàn nên là một câu trả lời (tôi đã upvoted nó). – Kredns

+2

Có bất kỳ ví dụ nào trong ứng dụng kỹ thuật đảo ngược của người khác và thực sự làm bất kỳ điều gì hữu ích với kết quả không? Nó có vẻ như một vấn đề không lớn đối với tôi. – dkretz

Trả lời

25

Công ty của tôi xây dựng các ứng dụng hình ảnh y tế trong .NET 3.5 với WPF. Tôi hiện đang phát triển ứng dụng của riêng mình trong .NET.

Paint.NET được viết, đủ kỳ quặc, trong mã gốc. Tôi đang nói dối về câu trước. Nó rõ ràng được viết bằng .NET.

Nó phổ biến hơn bạn nghĩ.

Là người khác được đề cập - bạn có thể sử dụng bộ obfuscator để khiến người khác khó dịch ngược ứng dụng của bạn hơn. Nó không phải là không thể, nhưng nó là khó khăn hơn - đó là nói, bất cứ điều gì có thể được decompiled/đảo ngược thiết kế cho đủ thời gian/nguồn lực.

+2

Vâng, chúng tôi cũng xây dựng các ứng dụng hình ảnh y tế trong wpf. – mmr

+0

@mmr rất tuyệt vời :-) Rất vui được gặp một anh chàng chụp ảnh y khoa ở đây! –

+1

Tôi viết phần mềm chẩn đoán y khoa trong WinForms .NET. Rõ ràng, Net là rất phổ biến trong ngành công nghiệp y tế. – NascarEd

4

Hầu hết các sản phẩm từ RedGate là ứng dụng máy tính để bàn .net

+1

Bạn hiểu lầm câu hỏi của tôi. Nó không phải về RedGate nhưng thời tiết bình thường, các nhà phát triển hàng ngày sử dụng .NET để tạo các ứng dụng dành cho máy tính để bàn thương mại. –

+2

Tôi nghĩ anh ấy hiểu câu hỏi ... anh ta chỉ sử dụng công ty mà bạn đề cập trong bài đăng của mình làm ví dụ. –

8

Tôi biết về các ứng dụng doanh nghiệp sử dụng .NET, mặc dù tôi cho rằng hầu hết việc sử dụng C++ được quản lý, không thể được biên dịch bằng Reflector.

Cá nhân tôi bán ứng dụng Windows .NET. Tôi sử dụng Eazfuscator.NET để làm xáo trộn mã. Có rất nhiều công cụ thương mại và miễn phí làm xáo trộn mã .NET sau khi biên dịch.

+1

Obfuscation không phải là lớn của một trở ngại cho một RE thành thạo. Khi bạn đi vào việc đảo ngược một ứng dụng .NET, tôi đã giả sử nó bị làm xáo trộn và đóng gói, và điều này vẫn chưa đủ. Nhưng điều này cũng đúng với bản địa. – mmcdole

+1

Tôi đồng ý. Obfuscation giúp chống lại người dùng không thành thạo mà chỉ cần kéo lên Reflector để kiểm tra mã. –

+0

@ Chris Thompson, Chắc chắn rồi. Bạn sẽ là một kẻ ngốc ~ không ~ để làm xáo trộn một ứng dụng nguồn đóng. – mmcdole

11

Microsoft Expression Studio là NET

Visual Studio 2010 là NET

Red Gate phần mềm là (chủ yếu) NET

... có cũng SharpDevelop (mã nguồn mở dù), và các công cụ Microsoft Pro Photo.

+1

Nhưng đó là những công cụ chủ yếu là dev mà ông đã biết về theo câu hỏi của mình: "... một ứng dụng thương mại có sử dụng NET (khác sau đó điều khiển cho devs/mã nguồn mở) ...";) –

+0

Khi ông nói điều khiển cho devs/open source, tôi cho rằng anh ta có nghĩa là các gói điều khiển .NET thương mại như Telerik và Infragistics. –

5

Nhiều sản phẩm phần mềm thương mại sử dụng .NET. Một trong những trò chơi yêu thích của tôi, series Trainz của Auran, được viết chủ yếu bằng .NET. Nhưng tôi sẽ đồng ý rằng một phần lớn tập trung của họ cho .NET là các ứng dụng kinh doanh nội bộ và các ứng dụng dựa trên web. Tuy nhiên, tôi nghĩ rằng khi WPF có được lực kéo, bạn sẽ bắt đầu thấy rất nhiều ứng dụng Windows sử dụng .NET làm ngôn ngữ phụ trợ của chúng. Và như những người khác đã nói, có một số công cụ có sẵn để giúp obfuscate mã của bạn. Nhưng nếu mối quan tâm của bạn là kỹ thuật đảo ngược, khá nhiều bất kỳ ngôn ngữ phát triển nào có thể được thiết kế ngược nếu ai đó thực sự muốn.

3

Phần mềm chỉnh sửa hình ảnh tuyệt vời Paint.NET được viết 100% trong mã C# được quản lý.

1

Đừng quên rằng F-Spot (quản lý ảnh) và Banshee (âm nhạc) đều được viết để chạy trên Mono, trong đó, rời khỏi chính trị và bằng sáng chế ra của nó, là .net cho Linux. Nhưng chúng là ứng dụng dành cho máy tính để bàn.

1

Media Center (một số bộ phận, chủ yếu là giao diện)
máy nghe nhạc Zune (phần)
Biểu hiện Blend

0

Nikon Capture NX for Windows yêu cầu .N ET Framework, mặc dù rõ ràng toàn bộ điều không được quản lý mã.

Nguồn khách hàng lỗi và pháo đài.

1

Xóa bảng tính văn phòng được viết bằng .NET. Nó thực sự trông giống như Excel

0

Novell's PlateSpin Các sản phẩm Di chuyển/Bảo vệ và Recon đều có .NET Desktop Clients. Tuy nhiên, đây là những mục tiêu hướng đến doanh nghiệp chứ không phải người tiêu dùng.

Disclaimer: Tôi làm việc ở đó ...

0

Một số tiện ích hiện đại hơn mà Linn Products sử dụng để quản lý các thành phần hệ thống âm thanh cao cấp của nó được viết bằng NET

1

Thay vì nhắc đến mỗi sản phẩm NET bạn đã bao giờ stumbled khi, chúng ta hãy chỉ nhớ tất cả mọi người rằng Java là cũng chạy trong một JVM và có thể được đảo ngược thiết kế theo cùng một cách và vì lý do tương tự như .NET

Và Java đã được sử dụng ở khắp mọi nơi từ máy tính để bàn đến máy chủ trong nhiều miền khác nhau trước khi .NET được phát triển.

Nỗi ám ảnh về R-E cho "doanh nghiệp"/"nghiêm trọng" (chọn ứng dụng yêu thích của bạn "Tôi tốt hơn những người khác" tính từ) bị thổi phồng.

Tôi thừa nhận việc ăn cắp mã xảy ra (tuy nhiên, điều này thường xảy ra đối với các doanh nghiệp nhỏ hơn có thể làm điều này mà không bị chú ý ... nếu không thì PR thiệt hại quá lớn). Nhưng nếu ai đó muốn R-E ứng dụng của bạn, ông sẽ làm điều đó không có vấn đề bao nhiêu bảo vệ bạn đã cố gắng để thêm. Một chút bảo vệ là tốt, nhưng đi điên khác nó chỉ là ngu ngốc.

1

Tôi viết plugin com interop vào hệ thống CAD bằng VB.net. Nó dễ dàng xử lý tất cả các toán học 3D cần thiết mà không cần phải sử dụng các chức năng của động cơ CAD. Ban đầu nó được viết bằng VB6. Tôi phải nói rằng đó là một niềm vui bằng cách sử dụng. Net thay vì VB6. Tôi làm việc hiệu quả hơn nhiều, mã này gọn gàng hơn nhiều và kết hợp lỏng lẻo hơn. Như một số các áp phích trước đó cho biết, nếu bạn cần một số hiệu suất cốt lõi cứng bạn luôn có thể sử dụng c + + hoặc c. Nếu bạn phát triển trên môi trường cửa sổ, .Net phải là lựa chọn đầu tiên của bạn (ít nhất là đối với các lớp trình bày và các lớp nghiệp vụ).

Tôi có lo lắng về kỹ thuật đảo ngược hay không. Nhưng không đủ để thực sự nhảy qua hoops obfuscation. Tôi cảm thấy tốt hơn là dành nhiều thời gian để cải thiện ứng dụng thay vì tìm ra cách để bảo vệ nó bên ngoài những điều cơ bản. Nếu mọi người muốn nó đủ tệ họ sẽ có được nó. Mối quan tâm lớn nhất của tôi với kỹ thuật đảo ngược là tiết lộ các thuật toán độc quyền mà tôi đã sử dụng. Một lần nữa, hầu hết các khách hàng của chúng tôi không biết đọc đủ để làm cho điều đó trở thành một mối quan tâm.

Chúc mừng, Troy

0

Các XNA Framework cho phép các nhà phát triển độc lập để viết Xbox 360 và Windows trò chơi trong C# mã số quản lý. Đây là có sẵn thương mại qua Xbox Live:

http://catalog.xna.com/en-US/gamescatalog.aspx

Thực tế là các trò chơi chạy trên nền tảng Xbox làm cho nó khó khăn hơn để thiết kế đối chiếu mã, nhưng tôi nghi ngờ không phải không thể.

0

Tôi thực sự thích câu hỏi và tôi luôn tự hỏi mình điều tương tự! điều gì sẽ xảy ra nếu ai đó ở đó có thể dịch ngược và sử dụng mã này mà tôi đã làm việc rất chăm chỉ để hoàn thành ?!
Điều đó đang được nói, tôi đã sử dụng các ngôn ngữ Net trong vòng 7 năm qua cho tất cả các sản phẩm tôi đã làm việc! nó có thể được giải mã? CHẮC CHẮN RỒI! nhưng, tôi có nên tức giận rằng ai đó có thể sử dụng mã của tôi nếu họ làm việc chăm chỉ đủ để dịch ngược nó và sau đó hiểu nó? đối với tôi, tôi sẽ rất vui nếu ai đó dành thời gian và nguồn lực để làm như vậy! nó có nghĩa là tôi đủ tốt! nó cũng có nghĩa là tôi đang tham gia giáo dục một người nào đó ngoài kia!
Mặt khác, vào thời điểm khi ai đó đang sử dụng mã ur, tôi đoán bạn sẽ tiến xa hơn trong việc phát triển các công cụ nâng cao hơn mà thậm chí bạn đã quên về mã cũ hơn mà bạn đã viết một vài năm trước!
tôi vừa hoàn thành công việc trên một sản phẩm có thể được sử dụng như một hệ thống lưu trữ, hệ thống quản lý nhân sự và quản lý hành chính cho các công ty cỡ trung và sẽ sớm có mặt trên thị trường.
Như một dòng dưới cùng, tôi sẽ nói: kiến ​​thức nên có sẵn cho tất cả những người sẽ dành thời gian để tìm kiếm nó để tận dụng nó! Hãy tưởng tượng nếu một số nhà khoa học vĩ đại nhất đã chết trước khi kiến ​​thức của họ lan rộng ra tất cả chúng ta!

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