Откройте .dll или .exe в шестнадцатеричном редакторе и найдите слово "copyright". Большинство компиляторов помещают сообщение об авторских правах на библиотеку времени выполнения в исполняемый файл открытым текстом.
Получите IDA pro. http://www.hex-rays.com/idapro/ Это инструмент для работы с двоичными файлами или реверс-инжиниринга. Он сможет определить библиотеку времени выполнения и, возможно, язык.
Evaulation и freeware версии инструмента можно найти здесь: https://www.hex-rays.com/products/ida/support/download.shtml
Маловероятно, если только у него нет значительной библиотеки времени выполнения, которая его выдает. например Раньше для приложений VB требовалась огромная DLL с VB в имени, для приложений Visual C ++ обычно требуется установка среды выполнения C ++. Но современные языки нацелены на независимую от языка среду выполнения. Даже файлы Java .class могли происходить из самых разных исходных языков.
В принципе, ответ отрицательный. На практике, однако, есть только несколько вариантов:
something.dll
, вероятно, это образ собственной библиотеки dll, что означает, что он, вероятно, был написан на C или C ++. Namespace.Something.dll
, вероятно, это управляемая DLL, что означает, что она была написана на каком-то языке .NET (C #, VB.NET и т. Д.) mscoree.dll
, то это .NET dll (даже если она не соответствует стандартным соглашениям об именах .NET). Он также может использовать библиотеки DLL для других языков, которые предоставляют дополнительные подсказки.