Porque algunos virus o troyanos no funcionan en otros SO?

Iniciado por Edu, 9 Septiembre 2010, 19:03 PM

0 Miembros y 2 Visitantes están viendo este tema.

[L]ord [R]NA

Cita de: h0xr-mov en  9 Octubre 2010, 02:34 AM
Facil: API.

Los troyanos (al menos los complejos) hacen un uso intensivo de las API del sistema. Algunas de esas API van quedando obsoletas y son removidas en las versiones siguientes de los sistemas operativos, entonces cuando tu código intenta llamar una API que actualmente ya no existe... BANG!

Tambien pasa por los cambios de seguridad realizados. De vista a W7 por ejemplo, hay un cambio brutal en las cosas. Ya no puedes sin mas copiar archivos al System32 sin que el usuario se de cuenta, o cosas asi. Ahora es mas dificil.

Correccion, los troyanos decentes usan la api del sistema, windows no tengo entendido que retire APIs debido al tema de la compatibilidad con versiones anteriores.

Y la infeccion de un  sistema Windows XP o Windows 7 no se hace de una manera mas sencilla o dificil, simplemente cambio el metodo.

h0xr-mov

Pues si. Microsoft si retira API's de Windows de una version a la otra. Por eso en mi trabajo antes de desplegar un proyecto tenemos que verificarlo con el Application Compatibility Toolkit de Microsoft.

Una de las funciones del Application Compatibility Toolkit es verificar que el programa que creaste no este haciendo llamadas a API's que esten marcadas como deprecadas.

CitarDeprecations: The Windows operating system has deprecated many objects from previous versions of the operating system. The deprecation has occurred for .dll files, executable (.exe) files, COM objects, registry keys, application-programming interfaces (APIs), and various other files. This change affects any application that used the deprecated APIs or DLLs, causing the applications to lose functionality or to fail to start.

Fuente: http://technet.microsoft.com/en-us/library/cc766242%28WS.10%29.aspx

[L]ord [R]NA

No las retira por el tema de compatibilidad... que la funcion se degrade no significa que no este en el sistema.

h0xr-mov

Porque crees que dice

Citar"[...] Causing the applications to lose functionality or to fail to start."
?

Cuando un api esta marcado como "Deprecated", el programa te funciona, pero el compilador arroja advertencias, de que el api que estas usando esta marcado como "Deprecated" y que debes usar otro.

Porque crees que los marcan "Deprecated"? Crees que los marcan "Deprecated" y los dejan por ahi y ya??

No, la cosa no va asi. Funciona de esta forma:

El api X, se usaba en Xp.

En Windows vista, es marcada como "Deprecated". El programa te funciona, pero, ya sabes que el api X va a dejar de funcionar en proximas versiones, asi que, buscas alternativas. Generalmente el mismo compilador te lo advierte "X is deprecated. Use Y instead".

Luego, en Windows 7, el API que estaba Deprecated en Windows Vista, es removida en 7.

Ojo: No significa que tenga que ser removida en 7. En Windows 7 puede continuar Deprecated, pero ser removida en Windows 8.

[L]ord [R]NA

Entonces respondeme algo... porque todavia las apis de windows95 funcionan?

d(-_-)b

Desconozco esto, pero......No es mejro dejarlas y ampliarlas y no remover nada. no se pero me parece absurdo.

saludos...
Max 400; caracteres restantes: 366

isseu


[L]ord [R]NA

isseu en que parte especificamente dice que las APIs han cambiado desde que se implemento Windows en 32bit, sin salir del rango de los 32bits?

Edu

Cita de: Lord R.N.A. en 12 Octubre 2010, 15:58 PM
Entonces respondeme algo... porque todavia las apis de windows95 funcionan?

Jajaja xD, yo no entiendo nada pero aprendo de sus discuciones continuen porfavor... xD

h0xr-mov

#19
Pues, porque naturalmente no todas las apis van a ser eliminadas. Solo se eliminan las que van quedando muy obsoletas, y esto incluso se hace luego de dos lanzamientos de la plataforma o asi.

Conoces el Blog de Reed and Steve? Es un blog oficial de microsoft.

Mira lo que dice el de las API's que estan marcadas como deprecadas:

CitarWhen we determine that an old API is obsolete, we flag it as deprecated in the SDK.  This means it's going away and will stop working at some point but we typically make every effort to support it for another 1-2 revisions of the platform.  The idea is to give developers time to prepare their apps.

Traduccion:
CitarCuando determinamos que una vieja API esta obsoleta, la marcamos como Deprecada en el SDK. Esto significa que SERA REMOVIDA y DEJARA DE FUNCIONAR en algun momento, pero normalmente hacemos todo lo posible para soportarla por 1 o 2 revisiones de la plataforma. La idea es de dar a los desarrolladores tiempo para preparar sus aplicaciones

Por otra parte, cuando salio Windows 7, a nuestra institucion se le entrego un documento marcado como Confidencial por Microsoft Dominicana. Por motivos obvios, no puedo hablar abiertamente de ello, pero el encabezado dice asi:

CitarEste documento Confidencial muestra los terminos, estructuras y API's que estan deprecadas en Windows 7 y Windows Server 2008, y que por tanto no estaran disponibles en el proximo gran lanzamiento de Windows. Usted no debe hacer uso de ninguno de estos terminos, estructuras y API's en nuevas aplicaciones o en su respectiva documentacion; Estos tambien deben ser eliminados de cualquier documentacion o aplicacion existente. Este documento provee sugerencias sobre los posibles reemplazos para estos terminos, estructuras y API's. Los posibles reemplazos sugeridos por este documento, incluyen links que usted podria encontrar de utilidad

Poniendote un ejemplo:

Windows 95, 98, ME, utilizan un modelo de Drivers llamado "VxD". Luego, en Windows 2000, Xp, 2003, Vista, 7, etc... se utiliza un modelo de drivers llamado WDM.

Supongamos que realizas una aplicacion que utiliza API's relacionadas con el modelo VxD, y intentas correr esa aplicacion en Windows 7... que crees que pasara!? No funcionara. Porque? Porque... que sentido tiene soportar API's en Windows 7, para un modelo de drivers que quedo obsoleto hace 10 años?!

No tiene ningun sentido. Aparte, una de las mejores practicas al momento de dar Mantenimiento a las aplicaciones es remover funcionalidad obsoleta. Esto es recomendado en un libro de Microsoft Programming llamado Code Complete 2.

Otro caso de ejemplo: El api de QoS (Quality of Service). Esta deprecada y sera eliminada en cualquier proxima version de windows.

Que dicen en Microsoft al respecto?

CitarThe idea of networking Quality of Service in Windows has been around for a long time. If you look at the APIs in Windows 2000 and Windows XP, you'll find at least 3 APIs for QoS. We reviewed each of them and decided to deprecate them. What this means is that, some time in the future, each of these APIs will be removed from Windows.

Traduccion:
CitarLa idea de "networking Quality of Service" en Windows ha estado por ahi por largo tiempo. Si te fijas en las API's de Windows 2000 y Xp, encontraras al menos 3 apis para QoS. Analizamos cada una de ellas y decidimos deprecarlas. Lo que esto significa es que, en algun momento futuro, CADA UNA DE ESAS APIS SERA ELIMINADA DE WINDOWS

Fuente: http://blogs.msdn.com/b/wndp/archive/2006/07/05/657196.aspx

En resumen: En microsoft SI eliminan API's. Que es un proceso lento? Es cierto. Que ellos tratan de no hacerlo para evitar problemas de compatibilidad? Es cierto. Pero tambien es cierto que no todas las apis siguen ahi, como afirmas tu.

Por cierto... tambien en Windows Mobile deprecan y eliminan API's:
Fuente: http://msdn.microsoft.com/en-us/library/bb629458.aspx

Y de Linux ni te hablo... En Linux se eliminan API's constantemente tambien.