elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda UpdateResource para subir VERSION_INFO a un .exe ya creado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda UpdateResource para subir VERSION_INFO a un .exe ya creado  (Leído 1,472 veces)
nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Duda UpdateResource para subir VERSION_INFO a un .exe ya creado
« en: 6 Septiembre 2007, 14:11 pm »

Bien, para editar recursos de ejecutables ya creados yo uso estas tres APIs:

Código
  1. Public Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
  2. Public Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
  3. Public Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long

Primero hay que usar "BeginUpdateResource" para obtener el hUpdate, despues uso "UpdateResource" y por ultimo "EndUpdateResource" para terminar...

La update resource tiene estos argumentos:

-hUpdate: Es la referencia del archivo que quiero actualizar, se obtiene con "BeginUpdateResource"

-lpType: Es un número que representa el tipo de recurso, la información de la cersión "VERSION_INFO" es el número 16

-lpName: Es el nombre del recurso (que es un número), dentro de un tipo de recursos puede haber varios nombres...de manera predeterminada para la VERSION_INFO es 1

-wLanguage: Es el lenguaje, también es un número, dependiendo del número la versión estará en un idioma o en otro...por ejemplo Ingles es 1033 y Español 3082

-lpData: Son los datos que se quieren subir, y este es mi gran problema...si intento subir el script sin compilar (en texto) pues al abrirlo con el ResHack no me aparece nada (el script está más abajo) y si intento subir el archivo .res que lo contiene tampoco me funciona...

-cbData: Es la longitud en bytes de "lpData"

Pues yo sé subir recursos de iconos, texto en unicode para otros recursos, etc...el problema lo encontré para actualizar información sobre la version de un ejecutable (con el ResHack aparece como "VERSION_INFO)

el problema es que no sé que tipo de datos subir, segun la web msdn los datos los tengo que subir en RAW...pero no se como hacer para convertir este script (que se puede obtener con el ResHack) a RAW:

Código:
1 VERSIONINFO
FILEVERSION 3,4,0,79
PRODUCTVERSION 3,4,0,79
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
BLOCK "0C0904E4"
{
VALUE "CompanyName", ""
VALUE "FileDescription", "Resource viewer, decompiler & recompiler."
VALUE "FileVersion", "3.4.0.79"
VALUE "InternalName", "ResHack"
VALUE "LegalCopyright", "(c) Angus Johnson 1999-2002"
VALUE "LegalTrademarks", ""
VALUE "OriginalFilename", "ResHack"
VALUE "ProductName", ""
VALUE "ProductVersion", "3.0.0.0"
VALUE "Comments", "Freeware, but see help file for conditions."
VALUE "Aditional Notes", "Not for distribution without the authors permission"
}
}

BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0C09 0x04E4
}
}

Yo esto lo obtengo con el ResHack...lo k me gustaría en resumen es k un usario desde VB escriba ese script (en un textbox por ejemplo) y poder modificar la información sobre la versión de cualkier ejecutable ya creado...

Yo hago esto:

Código
  1. Dim hWrite As Long, Ruta As String
  2.  
  3. Ruta = "C:\exemplo.exe"
  4. hWrite = BeginUpdateResource(Ruta, 0)
  5.  
  6. Call UpdateResource (hWrite, 16, 1, 3082, lpData, cbData)
  7.  
  8. EndUpdateResource (hWrite, 0)

cbData es la longitud en bytes de lpData por lo que no hay problema, lo malo es que no sé que tipo de información tengo que subir en lpData...yo pienso que tengo que subir el script compilado...pero no se como hacerlo...

weno, a ver si alguien me puede ayudar.

Gracias y saludos ;)


En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Duda UpdateResource para subir VERSION_INFO a un .exe ya creado
« Respuesta #1 en: 8 Septiembre 2007, 00:04 am »

Weno, he conseguido compilar el script y al parecer son los .res...

Pero lo subo y nada...ya no sé k hacer, en MSDN pone esto en lpData:

Citar
[in] Pointer to the resource data to be inserted into the file indicated by hUpdate. If the resource is one of the predefined types, the data must be valid and properly aligned. Note that this is the raw binary data to be stored in the file indicated by hUpdate, not the data provided by LoadIcon, LoadString, or other resource-specific load functions. All data containing strings or text must be in Unicode format. lpData must not point to ANSI data.

If lpData is NULL and cbData is 0, the specified resource is deleted from the file indicated by hUpdate.

A lo mejor no hay que subir un .res sino un .obj o si no ya no sé...

Lo malo es que toda la información que he encontrado (hay poca) está en inglés...

A ver si alguien que sepa algo de inglés me puede ayudar leyendo estas páginas (o alguna por lo menos):

http://msdn2.microsoft.com/en-us/library/ms648049.aspx
http://msdn2.microsoft.com/en-us/library/ms776221.aspx
http://msdn2.microsoft.com/en-us/library/ms648008.aspx
http://msdn2.microsoft.com/en-us/library/aa365002.aspx

Lo agradecería mucho.

Weno, espero que alguien me pueda ayudar y saludos ;)


« Última modificación: 8 Septiembre 2007, 00:07 am por nhaalclkiemr » En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Parobook, el Facebook creado para desempleados
Noticias
wolfbcn 0 1,774 Último mensaje 27 Enero 2011, 22:26 pm
por wolfbcn
duda con buscador php creado con dreanweaver
Desarrollo Web
wiipunto 1 1,818 Último mensaje 30 Marzo 2011, 21:22 pm
por Shell Root
Problema con UpdateResource
Programación C/C++
carlosx64 0 1,541 Último mensaje 18 Agosto 2011, 15:25 pm
por carlosx64
Exagente de la CIA: EE.UU. ha creado un paraíso para los 'hackers'
Noticias
wolfbcn 0 1,162 Último mensaje 18 Febrero 2015, 14:44 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines