Feda /dev/

MisKo

#18179 en #18157 está bien explicado.

Ahora en serio, básicamente son 'programas que hacen programas', a nivel de ramsonware por ejemplo, supongo que consistíria en modificar su código fuente y cambiar las firmas internas cada vez que se replican para que los antivirus no los reconozcan y cosas del estilo.

Tampoco se muy bien como explicarlo para que lo entienda un sysadmin xDDD

1 respuesta
AikonCWD

#18181 cabrón, que lo acabo de leer pensando que era cierto xdddd

En los virii se usa el poliformismo, pero no eso que los devs conocéis como poliformismo. Si no otra cosa.

2 respuestas
MisKo

#18182 He editado la anterior xD

Troyer

#18182 metaprogramming de sysadmin, sería un malware que se duplica a si mismo modificando el código según el entorno para que sea más dificil de detectar o eliminar, supongo.

MTX_Anubis

#18162 Eso es una tontería, cualquier lenguaje te da herramientas de metaprogramación, incluido tu amado C# y creeme, los frameworks que usas también la utilizan.

Yo simplemente he dicho que es mejor que la de la mayoría de lenguajes, bien utilizada ahorra cantidades ingentes de codigo.

#18165 Te he puesto un ejemplo, en Scala tienes el invokeDynamic cuando llamas a un método que no existe sobre un objecto, se llama a ese método. Pero en Ruby estás definiendo ese método en tiempo de ejecución.

¿Porque ibas a querer modificar una clase que has creado?

De forma normal la metaprogramación no la vas a utilizar. Casi todo el uso que tiene es en frameworks y si la usas en tu aplicación es casi seguro que esa parte no se esté dedicando al negocio de esta.

No es que crees tu esas clases, es que quizá quieres que una interfaz/modulo/whatever que has creado modifique las clases que la incluyan para darle funcionalidad.

Nuevamente, piensa en un framework para esto, un orm, puedo crear mi clase Model y querer modificar las clases que la extiendan de forma que la programación normal no me deja. En java por ejemplo, tendrías que recurrir a la manipulación de bytecode.

¿Eso no significa que la clase está mal creada/pensada desde el principio?

No, esto significa que la clase quiere dar una funcionalidad que a priori no puede dar hasta que no se concrete.

Creo que hacer las cosas de esa forma puede provocar que luego sea mas dificil mantener el código

Si y no. Bien utilizada no tiene por qué dar problemas de hecho su mantenimiento es menor, su abuso hace que no lo entienda ni el que lo ha hecho xD

2 respuestas
AikonCWD

Pues claro que se usa mucho en el mundo de los virus. En el ransomware no tanto pues al fin y al cabo son llamadas a la cryptoapi de win32 y ya. Poco tienes que alterar ahí.

https://en.wikipedia.org/wiki/Polymorphic_code

Ahí se explica un poco. En la practica hay pocos virus de ese tipo, pues son putas joyas de la programación. Para hacerlo de forma eficiente y real se ha de tirar de ASM a saco y eso no te lo hace cualquiera.

1
Ranthas
#18185MTX_Anubis:

De forma normal la metaprogramación no la vas a utilizar. Casi todo el uso que tiene es en frameworks y si la usas en tu aplicación es casi seguro que esa parte no se esté dedicando al negocio de esta.

Ahí has dado en el clavo; creo que no queda más que decir sobre la metaprogramación.

#18180 Desgraciado que risa más tonta xDDD

2 1 respuesta
AikonCWD

Pero vamos, la primera vez que lo escucho como metaprogramacón; yo a eso siempre lo he visto etiquetado de "codigo polimorfico". En su día hice una tool para aplicar polimorfismo a un binario ya compilado, voy a ver si encuentro una screen del programa que hice xD

r2d2rigo

#18170 me guardo el hate para soltarlo en rafagas, asi es mas efectivo.

#18185 he usado reflection e IL generation posiblemente mas que tu, y eso no cambia mi opinion de que usarlos tan alegremente este ligado a codigo de mierda.

Estan pensados para casos muy especificos, que el noob de turno aprenda a usar un martillo y vea todo como si fuesen clavos es muy normal.

MisKo

#18180 #18187

1
AikonCWD

#18188 Vale encontrado:

No me peguéis por el diseño d ela GUI, en mis tiempos se hacían las cosas así, y ya os adelanto que era de los que tenía mejor taste para diseñar. Está escrito en VB6 y no es polimorfismo como tal, lo que hacía la tool era pillar un binario ya compilado y modificar ciertas partes del código para terminar generando un fichero "diferente" y poder evadir a los antivirus por firma (no por heuristica)

1 2 respuestas
Troyer

#18191 pues la GUI me parece muy bonita xD

1 respuesta
AikonCWD

#18192 Tienes más ejemplos por aquí: https://www.google.es/search?q=madantrax+cactus&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi9r9ydnIDaAhWHzaQKHWELCCIQ_AUICigB&biw=1920&bih=943

Dios que melancolía acabo de pillar xddddd, he perdido los sources de muchos de esos proyectos. Siempre intenté conservar una misma línea en el diseño.

1 respuesta
B

#18193 Teniendo en cuenta que están desarrollados en VB6 , mejor perder el código.

4 1 respuesta
Troyer

#18194

AikonCWD

No espera, si quieres me pongo a desarrollarlo en JS o cualquier otra mierda. Al menos mis cosillas funcionaban correctamente:

+7000 infectados que pillé en mi botnet xD, todo con spreads por P2P, torrent y redes sociales.

2 respuestas
Troyer

#18196 exactamente para que querías una botnet?

2 respuestas
MisKo

#18197 Se sentía solo

2
B

#18196 Con lo entretenido que era hacerse pasar por chica en irc-hispano, colárselo a cientos y borrarle el trabajo de fin de carrera a más de uno.

AikonCWD

#18197 Para nada, yo solo hice el RAT por diversión y superación personal. Luego desinstalé el troj a todos de golpe porque me entró pánico.

El puto bicho se puso a hacer spread como el puto sida entre negros del congo y decidí cortar para evitar una llamada del FBI xdddddddd

1 2 respuestas
Merkury

#18176 0

Soy mucho mas de ir al turco

Troyer
#18200AikonCWD:

El puto bicho se puso a hacer spread como el puto sida entre negros del congo

xdddddddddddd que puta risa

1 respuesta
KoKiTO

Tengo 2 preguntas para los artisans, que hacen estos 2 codigos?

1.  setTimeout(alert("Hello"), 1000);
2.  for(var i=0; i < 10; i++){
setTimeout(function() {console.log(" + i + " seconds have elapsed")}, *1000)}
1 respuesta
AikonCWD

#18202 En serio eh? xd, estas son los métodos de spread que implementé:

Por lo que vi, el que lo petó fue el spread de facebook y twitter. Con unas pulsaciones de teclado el bicho se expandía entre los perfiles y la peña ahí haciendo clicks a lo loco xddddddd

1 respuesta
drakkenspain

#18203 http://lmgtfy.com/?q=setTimeout+javascript

1 respuesta
KoKiTO

#18205 La gracia es tomartelo como una prueba, ya que es de un cliente que hace esas preguntas. Que hacen esos codigos sin poder probarlos obviamente

LLoid

#18191 por un segundo he vuelto a los 90'

1
PaCoX

menudas risas me echaba yo abriéndole el cd a gente random con los troyanos, capturando su webcam a 1pfs y compartiendo su foto en el canal de irc dnd estaba conectado xd

1
Diward

#18204 Me parece bastante tocho. Cuanto tardaste en hacer la herramienta?

1 respuesta
AikonCWD

#18209 El cliente está escrito en VB6 y el server/bicho es un script en VBS. 3 o 4 semanas hasta la versión 1.6 creo.

1 respuesta
Tema cerrado