2010-03-04 5 views
6

가능한 중복 :
Find Programming Language Used소프트웨어 개발에 사용되는 프로그래밍 언어를 식별하는 방법은 무엇입니까?

그래서, 내가 실행 파일 (EXE) 파일과 DLL로 구성된 응용 프로그램이 있습니다. 이 소프트웨어를 개발하는 데 사용 된 특정 언어를 찾을 수있는 방법이 있습니까? 디스어셈블러에서 열려고했지만 내용이 왜곡되어 보입니다. 어떤 아이디어?

+2

중복 : http://stackoverflow.com/questions/371460/find-programming-language-used –

답변

1

중요한 런타임 라이브러리가없는 경우는 그렇지 않습니다. 예 : Visual C++ 응용 프로그램은 일반적으로 C++ 런타임을 설치해야합니다. 그러나 현대 언어는 언어 독립적 런타임을 대상으로합니다. Java .class 파일조차도 다양한 소스 언어에서 왔을 수 있습니다.

2
  1. .dll 또는 .exe를 16 진수 편집기에서 열고 "copyright"라는 단어를 검색하십시오. 대부분의 컴파일러는 런타임 라이브러리의 저작권 메시지를 일반 텍스트로 실행 파일에 넣습니다.

  2. IDA 프로를 받으십시오. http://www.hex-rays.com/idapro/ 즉, 바이너리를 사용하거나 리버스 엔지니어링을 수행하는 도구입니다. 런타임 라이브러리와 어쩌면 언어를 찾을 수 있습니다.

    Evaulation 및 도구의 프리웨어 버전은 여기에서 찾을 수 없습니다 : https://www.hex-rays.com/products/ida/support/download.shtml

1

는 원칙적으로, 대답은 NO입니다. 그러나 실제로 몇 선택이 다음과 같습니다 .DLL 이름 something.dll과 같은 경우

  1. , 아마 그것은 아마 C 또는 C++로 작성된 의미 네이티브 DLL 이미지입니다. dll을 이름 Namespace.Something.dll과 같은 경우
  2. , 그것은 아마 그것은 당신은 자세한 내용은 DLL 수입을 확인할 수 있습니다
  3. 일부 .NET 언어 (C#을, VB.NET 등)로 작성되었음을 의미 관리되는 DLL,입니다. dll이 mscoree.dll을 사용하면 .NET DLL이됩니다 (표준 .NET 명명 규칙을 따르지 않더라도). 추가 단서를 제공하는 다른 언어 별 dll을 사용할 수도 있습니다.