Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Bueno digamos que los ejecutables por lo general después de los SECTION_HEADERS tienen un espacio para poder crear en el futuro una nueva sección, en el caso de los ejecutables que genera el vb justo después de las SECTION_HEADERS tiene una llamada a la runtime y por lo tanto por ese metodo no puedo crear una sección nueva, como podria hacerlo en ese caso??
|
|
|
|
|
En línea
|
|
|
|
®®
Colaborador
Desconectado
Mensajes: 5.255
|
se puede hacer, busca un post de hendrix donde se habla de añadir secciones y justo a un programa en vb.
|
|
|
|
|
En línea
|
|
|
|
karmany
Desconectado
Mensajes: 673
|
Efectivamente como dice "Colaborador" lo comentamos en un post reciente...
Pero bueno te lo digo de nuevo. El problema para agregar una sección nueva a un Visual Basic es que en el encabezado hay un puntero a la librería de Visual Basic, y cuando tú agregas una nueva sección pues pisas este puntero y a la misma librería que está en ASCII. Este puntero que señala a esta librería es: Bound Import Table Address y por lo tanto cuando agregas una sección nueva pues da lógicamente un error.
Para agregar una nueva sección a un Visual Basic ya compilado es muy sencillo: 1º Utiliza el programa Topo para agregar una sección del tamaño que quieras. 2º Utiliza un programa para editar el encabezado del programa y modifica el valor Bound Import Table Address a cero y el valor Bound Import Table Size también a cero.
|
|
|
|
|
En línea
|
 Salu2
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
No he encontrado el post de hendrix. karmany Para crear una sección nueva tienes que pisar la runtime de vb, y luego cambiando lo que tu dices se corrompe el exe. Yo creo que los tiros andarian mas moviendo la parte de la runtime mas abajo y cambiar la direccion que apunta ahi pero no se como lo haria...
|
|
|
|
|
En línea
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Ya lo arregle, Bound Import Table Address = imagebase + nuevo offset donde esta la runtime.
|
|
|
|
|
En línea
|
|
|
|
karmany
Desconectado
Mensajes: 673
|
Lo que has hecho está bien, pero has tenido que modificar un montón de cosas. Si simplemente pones Bound Import Table Address a cero y Bound Import Table Size también a cero lo solucionas todo rapidamente y evitas que de un error, y no tienes que modificar nada de nada.
Esto de poner Bound Import Table Address a cero y Bound Import Table Size también a cero lo hice así porque la IMAGE IMPORT DESCRIPTOR está totalmente correcta y por lo tanto no tiene que darte ningún error si pones a cero los valores que te he comentado en el párrafo anterior.
Además si te fijas por ej. en un programa en C o en ASM verás que la IMAGE IMPORT DESCRIPTOR está correcta mientras que Bound Import Table Address y Bound Import Table Size están a cero. Este es el motivo de poner esos valores a cero. Y funciona perfectamente.
Si no consigues hacer esto que te digo, pásame si quieres el programa y te creo rápidamente una sección nueva.
PD. De todos modos lo que has hecho está bien, pero es mucho más trabajoso.
|
|
|
|
|
En línea
|
 Salu2
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Si simplemente pones Bound Import Table Address a cero y Bound Import Table Size Eso parece que funciona porque esos valores no hacen nada pero si cambias la direccion a la que apuntan que es la llamada a runtime te da = el valor que pongas en Bound Import Table Address porque no funciona. El problema esta en la ImportTable. Te dejo un holamundo en vb y agregamele una sección aver como lo haces solo tocando el Bound Import Table Address. http://www.mediafire.com/?0leg5wdjikh
|
|
|
|
|
En línea
|
|
|
|
|
|
|
Hendrix
|
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Ya habia probado lo que me dijistes antes y si que me funciono, lo que paso es que encripte la sección text entera y me acabo de dar cuenta de que la ImportTable se encuentra dentro y la habia encriptado tambien, por eso no iva ni pa dios... Grax por la ayuda.
|
|
|
|
|
En línea
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Teneis algo de información sobre como puedo cambiar de sitio la ImportTable? Seria moverla a otra secccion...
|
|
|
|
|
En línea
|
|
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Creo que es justo lo que busco, muchisimas gracias 
|
|
|
|
|
En línea
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
No, no era exactamente lo que quería pero se acerca, lo que se me ocurre es ir leyendo la IT paso por paso e ir cambiando las direcciones por la nueva dirección en la que lo guardo, es trabajoso pero no se me ocurren mas formas... No se puede copiar entera y pegarla en otro sitio porque cambian todas las direcciones...
|
|
|
|
|
En línea
|
|
|
|
®®
Colaborador
Desconectado
Mensajes: 5.255
|
pero puedes calcular el desplazamiento, es decir igual que hacen los virus que infectan ejecutables. para calcular este desplazamiento al inicio del codigo del virus se hace algo asi:
call uno uno: pop registro sub registro,offset uno
de este modo a la hora de llamar a las funciones que son sacadas en tiempo de ejecucion pero almacenadas en tu propio codigo puedes llamarlas asi call [registro_con_desplazamiento+funcion]
|
|
|
|
|
En línea
|
|
|
|
|