2010-03-04 35 views
6

thể trùng lặp:
Find Programming Language UsedLàm cách nào để xác định Ngôn ngữ lập trình được sử dụng để phát triển một phần mềm?

Vì vậy, tôi có một ứng dụng bao gồm một thực thi (exe) tập tin và một DLL. Có cách nào tôi có thể tìm ra ngôn ngữ cụ thể được sử dụng để phát triển phần mềm này không. Tôi đã thử mở nó trong một disassembler nhưng các nội dung có vẻ bị cắt xén. Bất kỳ ý tưởng?

+2

Trùng lặp: http://stackoverflow.com/questions/371460/find-programming-language-used –

Trả lời

1

Không chắc chắn, trừ khi thư viện có thời gian chạy đáng kể cung cấp cho nó. ví dụ. VB ứng dụng được sử dụng để yêu cầu một DLL lớn với VB trong tên, Visual C++ ứng dụng thường yêu cầu thời gian chạy C++ được cài đặt. Nhưng các ngôn ngữ hiện đại nhắm mục tiêu thời gian hoạt động độc lập về ngôn ngữ. Ngay cả các tệp .class Java cũng có thể đến từ nhiều ngôn ngữ nguồn khác nhau.

2
  1. Mở .dll hoặc .exe trong trình chỉnh sửa hex và tìm kiếm từ "bản quyền". Hầu hết các trình biên dịch đặt thông điệp bản quyền của thư viện thời gian chạy vào tệp thi hành trong văn bản rõ ràng.

  2. Nhận IDA chuyên nghiệp. http://www.hex-rays.com/idapro/ Đó là công cụ để làm việc với các tệp nhị phân hoặc thực hiện kỹ thuật đảo ngược. Nó sẽ có thể tìm ra thư viện thời gian chạy và cũng có thể là ngôn ngữ.

    Evaulation và các phiên bản phần mềm miễn phí của công cụ này có thể được tìm thấy ở đây: https://www.hex-rays.com/products/ida/support/download.shtml

1

Về nguyên tắc, câu trả lời là không. Tuy nhiên, trong thực tế, chỉ có một vài lựa chọn:

  1. Nếu tên .dll giống như something.dll, đây có thể là một hình ảnh dll gốc, có nghĩa là nó có thể được viết bằng C hoặc C++.
  2. Nếu tên dll trông giống như Namespace.Something.dll, đó có thể là một dll được quản lý, có nghĩa là nó được viết bằng một số ngôn ngữ .NET (C#, VB.NET, v.v.)
  3. Bạn có thể kiểm tra nhập dll để biết thêm thông tin. Nếu dll sử dụng mscoree.dll thì đó là một dll .NET (ngay cả khi nó không tuân theo quy ước đặt tên tiêu chuẩn .NET). Nó cũng có thể sử dụng các dlls ngôn ngữ cụ thể khác cung cấp thêm manh mối.
Các vấn đề liên quan