PDA

Ver la versión completa : server con atributos de oculto



pato21
17-03-2009, 09:42
creo un server qen vb6 que se copie a si mismo indicandole la ruta con app.path y el EXEName al system32\ pero como lo hago que se copie con atributos de oculto,o lo copio y lo modifico despues?

hystd
17-03-2009, 11:38
Lo mismo es...

Si usas la función de la API CopyFile para copiar el fichero, entonces luego usa SetFileAttributes con el parámetro FILE_ATTRIBUTE_HIDDEN para ese fichero abierto.

Si por contra, quieres copiarlo directamente con el atributo oculto, puedes usar CreateFile, y volcar posteriormente el fichero en el fichero creado (y abierto con OpenFile).

Yo optaría por lo primero puesto que es mucho más sencillo, aunque depende qué quieres conseguir.

Por el transcurso de tus hilos, diría que estás haciendo un troyano, tal vez te interese volcar sólo parte de código almacenado en RAM (por aquello de evitar los antivirus), y para ello debes usar CreateFile.

Un saludo.

pato21
17-03-2009, 21:50
tambien sirve darle atributos con un bat

attrib +r +s +h %windir%\system32\NOMBRE DEL EXE

RaidMan
17-03-2009, 23:18
Si.
Y ademas si lo haces de esa forma los antivirus no lo detectaran por no estar usando la API del sistema. Lo mejor seria que lo integrases dentro del codigo de tu programa en VB.


Un saludo

hystd
17-03-2009, 23:49
En realidad cuando programas algo en batch, al final se acaba llamando a la API del SO, para realizar la acción. Es decir, algo tan básico como cambiar un atributo en este caso, realizado por el comando "attrib", llamará a la función SetFileAttributes del SO. La API es utilizada tanto por los programadores, para facilitar algunas tareas, como por el propio SO para realizar alguna acción. Esto debemos tenerlo claro y presente siempre.

Es decir, se programe en lo que se programe bajo Windows, al final todo se traduce en llamadas al sistema, ya sea acceder a un periférico o leer un fichero en disco, etc...

Ahora bien, ¿por qué un software escrito en batch no suele ser detectado por un antivirus y un fichero binario (.exe) que llama directamente a la API si lo es? Pues bien, la respuesta se basa en algo tan simple como que el primero es un código interpretado y el segundo es un código compilado.

Un código compilado tiene almacenada esas llamadas a la API en la memoria de código, y el antivirus puede sospechar algo con respecto a cómo se realizan esas llamadas (orden, secuencia, tipos, etc... ). Sin embargo, un código interpretado es "texto plano" que el antivirus no puede analizar, pues simplemente se trata de texto.

Si cabría la posibilidad de detectar este tipo de "malwares" en batch, comprobando patrones y realizando parsers sobre secuencias comunes, tales como detectar cadenas del tipo: "DEL *.*".

No obstante tal y como ocurre con los antivirus actuales, ocurre que un fichero binario que llama a funciones "sospechosas" no se trate realmente de un virus, e igualmente un parser para analizar scripts en batch puede detectar "malwares" cuando realmente no lo son. La solución se basa en realizar análisis semánticos sobre el software en cuestión, ya sea scripts o ficheros binarios, para así lograr "entender" en cierta medida qué realiza exactamente ese software.

De todas maneras, eso no es todo, ya que habría que decidir "cuando algo es malo y cuando no...". A modo de ejemplo, podríamos pensar que, un troyano es una herramienta de administración remota que un usuario puede utilizar para acceder a su PC desde otro equipo con conexión a internet, pero si ahora esa herramienta se utiliza para acceder ilegalmente al equipo del vecino... eso es otro tema.

Como ya dije en otros posts... "un martillo es una herramienta para clavar clavos, si luego uno se dedica a dar martillazos por la vida es otra cuestión".

Detectar este tipo de cosas requeriría de un análisis mucho más allá del semántico, y podría ser mediante IA, lo cual supongo algún dia acabará implementándose en la mayoría de los antivirus.

Un saludo, y perdón por la mini reflexión sobre el tema, que tal vez esté fuera de contexto de este hilo.

Un saludo.