Crear ejecutable nativo no .net en vb.net

Iniciado por Flamer, 7 Diciembre 2018, 19:55 PM

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

Flamer

Hola desde que conocí vb.net huvo una gran decepción ya que los ejecutables que se  creaban eran decompilados con un decompilador de net y no con ollydbg

y mi pregunta es que si se pueden crear ejecutables nativos en vb.net y que no puedan ser decompilados con decompiladores para net


saludos Flamer

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Flamer

hola shell root no quiero afuscarlo quiero un ejecutable como en vb6 en nativo que pueda ser abierto por el ollydbg

Serapis

Claro que sí...

Pero debes tener en cuenta que NET compila a MSIL, y luego puede forzarse a que MSIL compile a código nativo. Pero esto se hace para que sea óptimo en el procesador destino, es decir se debe compilar en el equipo de destino, cuando lo instalas...
Así 1 mismo y único ejecutable es apto para todos los procesadores y puede a su vez ser optimizado para cada uno, sin necesidad de que el programador tenga que compilar 20 versiones y que el cliente tenga necesidad de saber cual es el que corresponde a su equipo... Imposible hacerlo mejor.

Para compilaro se usa el 'ngen', el "CLR Native Image Generator".
Por ejemplo, imagina que tenemos una librería llamada LibX.dll, la compilaríamos a código nativo así (naturalmente aportando la ruta completa de la librería, cuando proceda):
ngen install LibX.dll /nodependencies

Para ver las amplias opciones que ofrece, abre la consola de msdos y escribe el comando: "ngen /?"
o bien acude a la página de Mocosoft...

Flamer

No se puede.....tendré que mudarme a c++ para crear mis crackmes

saludos

tincopasan

está bien proteger los crackmes, pero me parece que el principal objetivo es mejorar las rutinas de serealización para tratar de complicar el seguimiento, si se puede debugear con olly,ida,radare,ddd o ilspy es lo mismo.

FranFin

Lo mas cercano que se me ocurre seria cargar el CLR desde C++ y despues ejecutar tu aplicacion .net en la memoria... claro lo podrian "dumpear" pero es algo.
Luego, podrias agregar opcodes inexistentes, de forma que el decompilador pete o no decompile el metodo (nota, estos opcodes nunca deben ser alcanzados.. )

Flamer

Cita de: tincopasan en  8 Diciembre 2018, 09:36 AM
está bien proteger los crackmes, pero me parece que el principal objetivo es mejorar las rutinas de serealización para tratar de complicar el seguimiento, si se puede debugear con olly,ida,radare,ddd o ilspy es lo mismo.

nunca me han gustado los crackmes en .net....me gusta que cuando estén reverseando se vea el lenguaje ensamblador

FranFin

Cita de: Flamer en  8 Diciembre 2018, 17:36 PM
nunca me han gustado los crackmes en .net....me gusta que cuando estén reverseando se vea el lenguaje ensamblador
Todo despues del JIT acabara siendo lenguaje ensamblador, el usuario puede elegir la manera.. ahora si tu quieres forzar a que sea ensamblador si o si, terminas antes programando en C++..