Hola!
Como te han dicho, el string que estás tratando de cambiar se accede por un puntero.
Cambiar el string el tiempo de ejecucion no vale de mucho si el programa lo cambia de nuevo.
El tema es saber que es lo que estas intentando hacer: cambiar un string antes de que se lo compruebe? Despues?
Tu imagen muestra un puntero (direccion de memoria que hace refencia a otra direccion de memoria) a un string, que es el que (al perecer) quieres modificar.
Ademas, para que lo tengas en cuenta, si se trata de un puntero a la sección .data, vas a tener que tener en cuenta las relocaciones (si hay).
Saludos!
Me temo que ese es mi problema... Cada vez que arranca el programa carga el mismo serial (A1C7CE59). Pero lo carga en un lugar de memoria diferente. Seria inutil cambiarlo ahi...
Por mas que busco no encuentro de el lugar donde recoge dicha numeracion el .exe... podria ser en alguna .dll del programa???
La idea seria modificar ese serial (A1C7CE59) y poner el de mi cable(AK08LS). Para que cada vez que arranque haga la comprobacion con el serial de mi cable y de el OK. Por que tampoco encuentro el salto en el que hace esa comprobacion... si no seria otra opcion.
Saludos,
- Primero tienes que saber que los textos que aparecen en la parte de la derecha, como 4C2124:&L"AH2P83" son solo comentarios, pueden ser propios o automáticos, ayudan a identificar cosas como referencias a Api, Números, Strings, etc.
-- Si haces modificaciones ahí, no afectan al programa en sí, ya que son solo comentarios.
- En la parte central se muestran los detalles de la línea seleccionada.
- También tienes que entender que significa estos detalles o comentarios, en particular te interesa: 4C2124:&L"AH2P83", y esto se lee asÍ:
-- Dirección 4C2124, hay un Puntero (&), es decir, una Dirección donde a su vez hay un String o Texto Unicode* (L) que dice: "AH2P83"
04C2120 00 00 00 00 EC AE 6A 00 7C 39 69 00 00 00 00 00 ....ì®j.|9i.....
-- Ese EC AE 6A 00 es un Puntero a tu Texto, pero recordar también que los datos del Dump se leen de derecha a izquierda (Little Endian) quedando así: 00 6A AE EC o 006AAEEC, ve a esa dirección y deberías encontrar tu Texto, algo así:
006AAEE0 47 00 41 00 54 00 4F 00 53 00 00 00 41 00 48 00 G.A.T.O.S...A.H.
006AAEF0 32 00 50 00 38 00 33 00 00 48 00 4F 00 4C 00 41 2.P.8.3..H.O.L.A
- Me parece que sería mejor usar un Editor Hexadecimal para hacer y guardar la modificación del String, si es que el String no se modifica en tiempo de ejecución ...
* No he encontrado documentación detallada sobre como leer y entender esos símbolos en x64dbg, espero que alguien ponga una referencia, yo entiendo a &L como puntero a un String Unicode XD.
como bien dices lo de la derecha pertenece al comentario de esa linea(modificado por mi). Pero como le comento al compañero. De nada me sirve modificarlo en la memoria. Si cuando abra de nuevo el programa, pega el serial en otro lugar de la memoria....
Ando dentro de un rompecabezas, nunca mejor dicho jejejeje
Descubri algo nuevo. En la llamada que muestro en pantalla. Es justo donde mete en memoria el numero de serie que quiero modificar al hacer dicha llamada...
y mas concretamente dentro de esa llamada y luego en esta:
SOLUCIONADO. Me salto la verificacion del serial number del cable y programa operativo. Listo!!!