De MSDN : Arguments are pushed on the stack from right to left, with the this pointer being passed via register ECX on the x86 architecture.
Tan jodido es el tema del puntero a this?
Mientras no uses templates esta todo bien (sobre todo pq los templates son para programacion generica). Y de ultima uno hace wrapers q despues el compilador cuando optimize los saca.
Estoy casi seguro que el tema de el Runtime uno tambien lo puede sacar en C++, pero se queda con un subconjunto del lenguaje bastante parecido a C.
No es que sea difícil, es que te pisa el registro ecx para apuntar a la clase, para que quieres que el lenguaje haga esto si tu no necesitas clases para nada? La mayoría de software malicioso no es tan grande como para que C++ sea una ventaja a la hora de tener un código fácil de entender y mantener, al contrario, incluso interesa un código ofuscado, lo más encaminado posible a bajo nivel.
Y como dije, posiblemente sea posible reemplazar la RTL, pero para que? Acaso un malware tiene la extrema necesidad de usar clases por algún motivo? Lo mejor para programar malware en ASM porque tienes el control absoluto sobre el código que se genera, como se genera y que forma toma todo el código dentro del ejecutable. En C tambien lo puedes tener todo perfectamente bajo control, conociendo más o menos al compilador y al entorno para el que programas, y si no usas la RTL el código en C sea posiblemente más eficiente que en ASM, además de más fácil de escribir.
El asunto es que un buen malware tiene que estar lo más próximo posible al sistema operativo para el que está diseñado, no estar sujeto a exigencias del lenguaje de programación.
no creo que nadie que sepa c++ haga el cliente de un rat en asm.....pero tambien sexiste el sado...
Pasa que el cliente de un RAT no es malware, malware es la parte que infecta. Yo estoy haciendo junto con Karcrack un RAT desde hace bastante tiempo, el cliente está en C++ usando Qt porque obviamente es la mejor opción, el cliente son muchas lineas de código, tiene interfaz gráfica y controla bastantes cosas a la vez. Pero el servidor está en ASM, lo que permite que el servidor pese menos de 500 bytes, y las funciones están en C, lo que permite que sea código fácil de escribir y a la vez muy ligero.
Saludos