Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: Edu en 9 Septiembre 2010, 19:03 pm



Título: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Edu en 9 Septiembre 2010, 19:03 pm
Quiero saber eso, porq algunos troyanos no andan en W7 por ejemplo, o los virus.. q es lo q cambia, siempre supe q algunas cosas no andan en otro SO pero no se bien porq, capas q me explican.. se los agradeceria ;)


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Castiblanco en 9 Septiembre 2010, 19:10 pm
Mira te hablo desde mi ignorancia no se si sea así pero siempre he pensado esto.

Compatibilidad... si un programa no funciona, ¿por qué los virus si deberían funcionar? si funcionaran, los programadores (buenos) se copiaban de la tecnología y ya esta, pero no es tan sencillo.

Windows XP = 5.1.2600.5512
Windows Vista = 6.0
Windows 7 = 6.1

Saludos...


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Karcrack en 9 Septiembre 2010, 19:12 pm
Pues porque son otros SOs... simplemente es eso... las tecnicas que se utilizan dejan de funcionar... por ejemplo la de sacar la direccion de Kernel32 desde el PEB, ha de ser modificada para que funcione sobre todos los W$...

Otro problema es que cada vez los SOs llevan mas sistemas de seguridad integrados, como el UAC... eso impide a un virus no diseñado para soportar el UAC modificar claves del registro por ejemplo...


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Edu en 9 Septiembre 2010, 19:40 pm
Ahi va, gracias gracias


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: ApOkAlizE en 13 Septiembre 2010, 00:27 am
pues porque llevan diferetes sistemas de seguridad y creo que sobretodo porque (si no eres de esos que los troyanos se los descaragn de internet o sea si sabes programartelos tu y eso) pues te habras fijado que cuando lo programas pues para realizar ciertas acciones tienes que meterte en carpetas especificas y esas cosas, pues imaginate si en el codigo pones
FileCopy "C:\troyano.exe", "C:\WINDOWS\System32\troyano.exe"
pues logicamente esto en MAC y en linux por ejemplo no funcionaria ya que yo sepa en MAC y Linux la carpeta de "WINDOWS" no existe, además por ejemplo los codigos de la shell que utilizamos en WINDOWS en linux no funcionarian, además depende de con que programa lo programes no funciona en algunos sistemas operativos por ejemplo VB 6.0 no funciona en Linux,entonces tendriamos que suar VB 2008 express edition o real basic o alguno de estos, vamos resumiendo que los O.S. estan hechos con estructuras similares pero  diferentes y siempre hay alguna cosa que produce un error y ese error hace que la aplicación no funcione o almenos parte de ella.


ApOkAlizE


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Karcrack en 13 Septiembre 2010, 13:35 pm
@ApOkAlizE: Habla de las distintas versiones de W$, no de diferentes sistemas operativos...


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Edu en 13 Septiembre 2010, 18:14 pm
@ApOkAlizE: Habla de las distintas versiones de W$, no de diferentes sistemas operativos...

En realidad pregunto en general, pero era por si habia otros motivos mas de los q dijo Apokalize q ya lo sabia. Y habia otros motivos q me explicaste vs ;) gracias!


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Karcrack en 13 Septiembre 2010, 19:38 pm
Amm... habia dado por hecho que simplemente preguntabas por las distintas versiones de Windows... ya que preguntar porque algo no va en otra plataforma carece de sentido... No hay ningun malware que vaya sobre cualquier SO... al menos no sin tener distintas versiones para cada uno...


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Edu en 14 Septiembre 2010, 00:49 am
Esque la verdad pregunte por si habia alguna cosa mas compleja, pero ya me contestaron gracias a todos ;)


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: 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.


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: [L]ord [R]NA en 11 Octubre 2010, 15:40 pm
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.


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: h0xr-mov en 12 Octubre 2010, 15:04 pm
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.

Citar
Deprecations: 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 (http://technet.microsoft.com/en-us/library/cc766242%28WS.10%29.aspx)


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: [L]ord [R]NA en 12 Octubre 2010, 15:09 pm
No las retira por el tema de compatibilidad... que la funcion se degrade no significa que no este en el sistema.


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: h0xr-mov en 12 Octubre 2010, 15:33 pm
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.


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: [L]ord [R]NA en 12 Octubre 2010, 15:58 pm
Entonces respondeme algo... porque todavia las apis de windows95 funcionan?


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: d(-_-)b en 12 Octubre 2010, 16:02 pm
Desconozco esto, pero......No es mejro dejarlas y ampliarlas y no remover nada. no se pero me parece absurdo.

saludos...


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: isseu en 12 Octubre 2010, 16:07 pm
Entonces respondeme algo... porque todavia las apis de windows95 funcionan?
Claro que ha ido cambiando: http://www.worldlingo.com/ma/enwiki/es/Windows_API#History (http://www.worldlingo.com/ma/enwiki/es/Windows_API#History)


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: [L]ord [R]NA en 12 Octubre 2010, 16:12 pm
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?


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: Edu en 12 Octubre 2010, 17:46 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


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: h0xr-mov en 12 Octubre 2010, 19:40 pm
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:

Citar
When 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:
Citar
Cuando 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:

Citar
Este 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?

Citar
The 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:
Citar
La 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 (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 (http://msdn.microsoft.com/en-us/library/bb629458.aspx)

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


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: d(-_-)b en 12 Octubre 2010, 19:51 pm
Pero no entiendo porque eliminarlas, no veo la razon.

Citar
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.

ok, eso es un problema, porque a ese paso habra que desechar las aplicaciones viejas si asi siguen y lo hacen.

No se, pero creo que sea lo que sea, si quitan una, supongo que ponen otra. no ??

aun asi, eso no me gusta. Aunque pensando bien, puede tener su lado bueno.

saludos...


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: h0xr-mov en 12 Octubre 2010, 19:55 pm
Pues, se hace para eliminar codigo obsoleto. Pero OJO: No es que las borran y te quedaste sin pito y sin flauta.

Primero se desarrolla una API alternativa, y se implementa. Durante un tiempo ambas API's estan en funcionamiento, salvo que la vieja esta marcada como deprecada. pasado ya mucho tiempo, se supone que tu, como buen programador, has actualizado ya tu programa para usar la nueva API. y en ese entonces, ya si se elimina la API vieja.

Tener todo ese codigo obsoleto ahi, es una carga muerta tremenda al momento de dar mantenimiento! Muchas veces lo que se hace es refactorizar el codigo, para modernizarlo sin cambiar la firma de sus funciones.


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: [L]ord [R]NA en 12 Octubre 2010, 20:01 pm
Solo te tengo una simple pregunta, si marcas un programa y en compatibilidad le pones Win98 utilizara esas APIs de Win98?

cito de tu propia fuente:
Citar
The 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.

Una cosa es que Windows 95, 98, ME utilizen un modelo de Driver VxD y las versiones posteriores utilizen WDM... no es lo mismo que quieras tomar caldo de una sopa con una cuchara, que con un tenedor. el API de QoS sera eliminada muy bien lo haz dicho, sera, esto no quiere decir que no se pueda utilizar actualmente.


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: h0xr-mov en 12 Octubre 2010, 20:15 pm
Actualmente la puedes utilizar. Claro que si, pero esta marcada como deprecada. Si ahora haces una aplicacion que utilize esa api, en una proxima version de Windows podras toparte con que ya tu aplicacion no funciona.

Lo mismo ha pasado antes. No se que error salte ahora, porque estoy un poco desconectado del tema de las API de Windows (A Dios Gracias). Pero, antes el error que saltaba cuando intentabas llamar un api que ya no existia era:

"Cannot find entry point in dynamic link library in ??????.dll" donde ????? es el nombre del .dll que contenia el API


Título: Re: Porque algunos virus o troyanos no funcionan en otros SO?
Publicado por: ~ en 12 Octubre 2010, 20:55 pm
A las API base Win32 o Win16 usada popularmente desde sus orígenes (mayormente las comunes de nivel de aplicación y GUI) no se les puede eliminar funciones sin hacer que se venga a bajo y se vuelva obsoleta la plataforma misma. Tendría más sentido abandonarla por completo que mutilarla.

Por lo general son las APIs secundarias o algunas de sus llamadas, que no sean muy cruciales y más dependientes de una versión específica de Windows las que se pueden retirar o modificar.

Tengo los 3 libros del grupo "Osborne Windows Programming Series", que es de cuando Windows NT (Win32) no era comúnmente usado todavía. Actualmente hay varias funciones y definiciones de valores constantes, etc., que se mencionan en MSDN en Internet pero no en esos libros.

Una de dos: o esos libros están un poco incompletos a pesar de tener gran densidad de información, o la API base Win32 ha sido aumentada con el tiempo, y en eso consistiría el cambio. También, se podría decir que la API Win32 tal como estaba en el Windows NT original no tiene todas las funciones bajo Windows 9x (95/98).

Hasta en Windows 7 de 64 bits se puede usar Borland C++ 5.01 (de alrededor del año 2000 y Windows 98) y crear y ejecutar los programas de GUI Win32 que produce sin problemas. También se pueden correr programas GUI de Win16 (Windows 3.0, 3.1...) y programas de MS-DOS en Windows 7 de 32 bits.

Y los virus dejan de correr porque entre otras cosas, muchos agujeros de seguridad dejan de existir porque son solucionados y porque fundamentalmente Windows 9x es distinto a Windows NT (2000/XP/Vista/7) y el acceso a los dispositivos de hardware como la flash del BIOS no es igual que antes ni entre diferentes tarjetas madre de diferentes fabricantes. Como tratar de correr el virus Chernobyl en Windows 7, no creo que podría causar todo el daño para el que fue programado.