Buenas Noches Me Ayudan :

Como reemplazar un offset por ejemplo :

Remplazar el offset 12000 por 57

http://byronlabs.blogspot.com/
explica mejor que quieres hacer, asi te podremos ayudar con mas precision, pues si te refieres a cambiar un valor no tienes mas que abrirlo en modo binario y despues editarlo, con la api writefile se puede hacer solo tienes que buscar en el msdn, poniendo en google api WriteFile y ahi podras coger y usar esa api para editar archivos, yo lo hice en ruby para una funcion avfucker pero no me hacia el avfucker como dios manda ya que lo hice sin APIS, haber si me pongo y hago una con la api a si me saldra, tambien tendrias que hacer una funcion que copia todo el archivo lo guarde en una variable y lo restaure (por si rompe), y una vez modificado restaura el normal haciendo una copia del mismo ejecutable modificado, al menos a si lo hago yo en ruby y me salia, simplemente que cuando llegaba al EOF ocurria un overflow lo dejaba en uso y no dejaba restaurarlo xD, de ahi mi comentario de que no me salia como dios manda por que dejaba el verdadero con bytes de mas sin posibilidad de hacer una restauracion
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
te respondo con una cita mía.
Pink escribió:Podrías hacer algo como esto

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal L As Long)

Private Sub Form_Load()
Dim file As String
Dim datos() As Byte
file = "C:\Users\Pink\Desktop\1.txt" 'tu archivo a cargar
Open file For Binary As #1
ReDim datos(LOF(1) - 1)  ' LOF(1) - 1 numero de offset de tu archivo
Get #1, , datos  ' obtenemos tu archivo en un array de byte
Close #1

'aqui seria el numero del offset
'datos(0) =  offset 0

Call CopyMemory(datos(0), Asc("h"), 1) ' aqui copiamos la letra h a nuestro offset 0 1 byte
'si quieres copiar 30 bytes seria algo asi
'Dim bytes2() As Byte
'bytes2() = StrConv("XXXXXXXXXXXXXXXXXXXXXXXXXXXX", vbFromUnicode)
'Call CopyMemory(datos(0), bytes2(0), 30)

Open file For Binary As #1
Put #1, , datos
Close #1



End Sub




saludos
lo puedes hacer sin copymemory.

saludos
Imagen
Responder

Volver a “VB/.NET”