Buscar valores hexadecimales

Iniciado por Pegano25, 8 Julio 2011, 20:56 PM

0 Miembros y 1 Visitante están viendo este tema.

Pegano25

Buenas tardes a toda la comunidad programadora, tengo un archivo abierto con acceso binario y al igual que la funcion instr que busca caracteres y devuelve la posicion, mi pregunta es si existe alguna funcion que permita buscar valores hexadecimales
por ejemplo: CD A9 (como lo hacen los editores hexadecimales) , Y que me devuelva la posicion donde se encontro, la idea es reemplazarlos por otros valores
he buscado y no encuentro algo para esta tarea, muchas gracias de antemano

x64core

buenas  ;D lo quieres es buscar valores hexadecimales en archivos EXEs???

Pegano25

Cita de: Raul100 en  8 Julio 2011, 21:07 PM
buenas  ;D lo quieres es buscar valores hexadecimales en archivos EXEs???

Gracias Raul100, en genaral a cualquier archivo como lo hacen los editores hexadecimales , buscando y reemplazando cadenas de valores hex

x64core

 ;D pues eso es un poco dificil no es facil te dejo un codigo de un editor hexadecimal hecho en vb es muy sencillo y aun asi horas para entenderlo a la perfeccion:

http://www.mediafire.com/?74ksnq518579moi

Pegano25

Cita de: Raul100 en  8 Julio 2011, 21:28 PM
;D pues eso es un poco dificil no es facil te dejo un codigo de un editor hexadecimal hecho en vb es muy sencillo y aun asi horas para entenderlo a la perfeccion:

http://www.mediafire.com/?74ksnq518579moi
gracias nuevamemente Raul100  pero parece que me entendiste mal, lo que quiero es como la funcion InStr pero con valores hexadecimales, por ejemplo buscamos el valor &HFF45 y si lo encuentra que lo reemplaze por &H2222 por tener un ejemplo

raul338

Cita de: Pegano25 en  8 Julio 2011, 23:03 PM
gracias nuevamemente Raul100  pero parece que me entendiste mal, lo que quiero es como la funcion InStr pero con valores hexadecimales, por ejemplo buscamos el valor &HFF45 y si lo encuentra que lo reemplaze por &H2222 por tener un ejemplo
Tienes que abrirlo en binario, buscar ese valor y reemplazarlo en los bytes correspondientes.
Si quieres reemplazar &HFF45 tendras que obtener los lo-bytes y hi-bytes (&HFF y &H45 :P) y reemplazar de 2 en 2 o asi. Un editor hexadecimal hace eso pero mejora la vista, si queres hacerlo en codigo, hacelo en binario :P

Pegano25

Gracias raul raul338 , cierto lo abro con acceso binaro pero de ai un array de bytes, la verdad no soy muy experto en Vb, que funcion se utiliza para buscar y si se utiliza alguna variable para almacenar los datos antes de buscar, gracias nuevamente

x64core

buenas  ;D pues necesitas un arrays de cadena por si el archivo pesa mas de lo limite de una sola variable string luego usas la funcion instr para buscar la cadena todo esto sobre un bucle for sobre si el array tiene mas de una longitud :P creo q asi es  :xD

raul338

Cita de: Pegano25 en  8 Julio 2011, 23:35 PM
Gracias raul raul338 , cierto lo abro con acceso binaro pero de ai un array de bytes, la verdad no soy muy experto en Vb, que funcion se utiliza para buscar y si se utiliza alguna variable para almacenar los datos antes de buscar, gracias nuevamente

Es asi, y para buscar, secuencialmente no hay otra manera :P
Yo te diria que avanzes mas en la programacion antes de animarte a hacer eso

Pegano25

gracias compañeros por las respuestas, probare con array de cadenas y tambien con bytes, pero tengo una duda mas , por poner como ejemplo:
tengo cargado en un array de longitud 1 ,como hago para que me devuela en que array se encuentra determinado caracter, al hacer una busqueda

Cadena = "Mundo"

R(0)= M
R(1)= u
R(2)= n
R(3)= d
R(4)= o

si busco "n" que duelva R(2)