el programa que menciono, en base a que codigo esta hecho ? o con que programa... como puedo saber eso, esa es mi duda
Puedes cargar el archivo executable en un visor hexadecimal para analizar la estructura de datos del formato
PE de dicho executable, en concreto su firma o número mágico, y así tratar de identificar (en base a un porcentaje de probabilidades) que lenguaje se utilizó para su desarrollo.
Hay aplicaciones dedicadas a este tipo de análisis en donde solo tienes que cargar el archivo y te muestra los resultados del análisis, como por ejemplo
PEiD o
TridNet.
Otra forma sería mediante la intuición, pues en muchos casos no es nada dificil averiguar que lenguaje de programación han usado para desarrollar una aplicación, basándose en el tipo y el aspecto de los controles de la interfáz gráfica (es muy facil identificar a ojo algunas tecnologías como
WPF) y en las dependencias del programa, si por ejemplo usa ensamblados de .NET o archivos específicos de otros lenguajes. O simplemente analizando las librerías de Windows que se cargan y cuales runtimes, al iniciar el executable.
vi que algunos se hacian con visual studio, pero por ejemplo los programas como "Megadownloader" que es para descargar desde megashare tambien esta hecho asi ?
Visual Studio es una IDE (un entorno de programación) no un lenguaje. El lenguaje C# pertenece a la plataforma .NET Framework, la cual soporta otros varios lenguajes, y no puedes averiguar si un programa ha sido desarrollado específicamente en un lenguaje en concreto de .NET Framework (como C#, VB.NET, o VC++ managed) ya que a pesar de ser lenguajes diferentes son en esencia lo mismo por que todos compilan el mismo set de instrucciones bajo el CLR de Microsoft (y una vez descompilado un executable d e.NET, se pueden representar las instrucciones en cualquiera de los lenguajes soportados por .NET), así que en todo caso lo que puedes identificar (sin disponer del código fuente o de información oficial sobre como se desarrolló) es saber si se trata o no de un ensamblado .NET, pero no saber si fue escrito en C#, F#, VB.NET, o etc...
Según he mirado por ahi, parecer ser que está escrito en C#
Una forma unicamente específica y segura al 100% para comprobar si un executable ha sido desarrollado bajo alguno de los lenguajes soportados por .NET Framework (C#, VB.NET, etc) sin necesidad de trabajar con aplicaciones externas a Visual Studio para la identificación, sería mediante la tecnología
Reflection, intentando cargar el executable mediante ciertos miembros disponibles en la librería de clases de .NET Framework para ese fin, ya que estos solo soportan la carga de ensamblados .NET.
(También podemos utilizar otras aplicaciones especializadas con el mismo fin, descompiladores como
.NET Reflector de RedGate)
Mediante esta metodología, podemos comprobar que la aplicación "
MegaDownloader", que supongo te refieres a esta de aquí:
http://megadownloaderapp.blogspot.com.es/2013/01/enlaces-de-descarga-castellano.html -efectivmente ha sido desarrollada bajo .NET Framework, concretamente bajo la versión 4.0.
Para concluir si la aplicación ha sido desarrollada concretamente en el lenguaje C#, lo podriamos intentar mediante el descarte, comprobando las referencias del executable. En este caso el tal "MegaDownloader" no incluye una referencia directa a la librería
Microsoft.VisualBasic.dll la cual sí que se incluye por defecto como referencia en un executable escrito bajo el lenguaje VB.NET, pero lo cierto es que esto es una conclusión inconcluyente. También podriamos analizar/monitorear en profundidad las dependencias que se cargan por el executable con aplicaciones como
Dependency Walker, pero esto sería igual de inconcluyente... .NET es .NET, no solamente C#, ni VB.NET.
¡Saludos!