• Domingo 15 de Diciembre de 2024, 09:45

Autor Tema:  Packer En C/c++  (Leído 1636 veces)

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Packer En C/c++
« en: Domingo 8 de Julio de 2007, 00:14 »
0
La idea es:

Extraer en memoria un archivo "enpaquetado" y hacerlo correr en memoria, crear un handle o un thread hacia ese ejecutable en memoria y ejecutarlo desde hay.

La pregunat es:

Se tiene que reajustar la RVA para eso??? ya que en C# se puede ahcer eso pero si el ejecutable usa DLL's hay errores (supongo que es porque la IAT estara mal ya que esta en posiciones de memoria distintas, y creo que solamente reparando la RVA (o la VA, no se) se repararia la IAT,  :( )

Alguien sabe algo de esto???

PD: Al handle o al thread se lo tendria que pasar al Entry point del ejecutable en memoria, para evitar pillar datos que no nos sirven...

Please, guienme, ya que no se si estoy en lo correcto.  :(

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Packer En C/c++
« Respuesta #1 en: Domingo 8 de Julio de 2007, 00:22 »
0
Me parece que tenes una gran confusion y probablemente ni siquiera sepas que queres hacer en realidad. Busca la definicion de HANDLE, RVA, IAT.

Si queres saber mas arranca desde aca:
http://en.wikipedia.org/wiki/Upx

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Packer En C/c++
« Respuesta #2 en: Domingo 8 de Julio de 2007, 13:09 »
0
Lo que es un Handle, la RVA y la IAT si se que es....el problema es que, como te gije, en C# te deja cargar codigo mientras no dependan de DLL's ajenas, si eso ocurre, da error, y yo creo que da ese error al intentar cargar DLL's que no esten cargadas o fallo de memoria....esa es mi pregunta, puede ser por eso???

PD: Pregunto esto en C/C++ ya que este tema creo que tiene mejor acogida aqui que en C#... ;)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Packer En C/c++
« Respuesta #3 en: Domingo 8 de Julio de 2007, 14:14 »
0
Cita de: "Zirrosis"
Lo que es un Handle, la RVA y la IAT si se que es....

Lo dudo por lo que dijiste antes pero bueno, sigamos.
 
Cita de: "Zirrosis"
el problema es que, como te gije, en C# te deja cargar codigo mientras no dependan de DLL's ajenas, si eso ocurre, da error, y yo creo que da ese error al intentar cargar DLL's que no esten cargadas o fallo de memoria....esa es mi pregunta, puede ser por eso???

Como no se que hace C# (ni quiero saber) voy a asumir que no usas el loader de Windows (LoadLibrary/CreateProcess lo usan). Entonces lo mismo para cualquier lenguaje tendras que resolver todas las funciones importadas, resolver las "realocaciones" de cargar el codigo en una direccion diferente a la base predeterminada y alguna que otra cosita mas.

Lo mas facil de hacer es depurar el codigo que te da el error ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Zirrosis

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Packer En C/c++
« Respuesta #4 en: Domingo 8 de Julio de 2007, 15:45 »
0
Cita de: "Eternal Idol"
Entonces lo mismo para cualquier lenguaje tendras que resolver todas las funciones importadas, resolver las "realocaciones" de cargar el codigo en una direccion diferente a la base predeterminada y alguna que otra cosita mas.
Gracias,justo lo que queria confirmar.  :)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.