Autor
|
Tema: [duda simple] Edicion de Texto (Leído 5,696 veces)
|
GaudyG
Desconectado
Mensajes: 23
|
Buenas, esta ha de ser una duda simple, quisiera editar un Texto q no figura en Edicion de Recursos, lo q quiero hacer es alargar el Texto, pero tengo entendido q por editor Hexadesimal no se puede ya q tiene q ser igual el numero de caracteres o menos, tambien he intentado con el OllyDBG, pero soy un completo ignorante en ello. Como podria alargar la frase ?
Gracias
|
|
|
En línea
|
|
|
|
Amerikano|Cls
Desconectado
Mensajes: 789
[Beyond This Life]
|
Si la cadena que vas a editar es una string que usa el programa la podes editar siempre y cuando no sea una cadena que se genere en memoria, o descifre (si esta cifrada), si esta predefinida desde la compilacion la podes editar y alargar el tamaño con un editor hexa simpre y cuando no hallan valores o demas cadenas contiguas a la que deseas editar, esto es porque normalmente los compiladores ponen una cosa detras de la otra y por tal motivo hay que tener en cuenta eso para poder modificarla y alargarla.
saludos
|
|
|
En línea
|
|
|
|
tena
Desconectado
Mensajes: 668
|
tambien se puede cambiar el puntero a la cadena por otra que tengas por ahi.
|
|
|
En línea
|
|
|
|
GaudyG
Desconectado
Mensajes: 23
|
Es un String el q quier editar. El String es visual desde el Editor Hexadesimal, eso quiere decir q esta predefinida desde el compilador? Si fuera asi, deberia poder editarse
Cuando estamos hablando de puntero nos referimos al Offset? Intenté hubicar el Offset en el editor Hexadesimal, pero simplemente no la encuentro, ese es mi problema
Se q los "00" estan para delimitar String y otras tareas, pero al final del editor esta lleno de "00", esos se pueden editar para cambiar la cadena de String a leer?
|
|
|
En línea
|
|
|
|
tena
Desconectado
Mensajes: 668
|
Fijate de esta forma
|
|
« Última modificación: 31 Marzo 2011, 19:04 pm por tena »
|
En línea
|
|
|
|
GaudyG
Desconectado
Mensajes: 23
|
Muchas Gracias Tena, me sirvio la imagen. Pero en un momento especifico del ejecutable q edité deja de correr establemente... aunq sigue corriendo En mi caso me aparecen algunas variables extra, debi hacer algo mas? La imagen muestra lo q hice. Lo habré hecho bien?
|
|
|
En línea
|
|
|
|
apuromafo CLS
|
@Tena buena imagen creo que ya esto lo habiamos comentado alguna vez por el foro pero vuelvo a comentar hay 2 tipos de texto en general , ascii y unicode, se escribe en los bytes y se copia (se guarda) copy all changes & save (GUARDADO Nº1) (ejemplo los bytes "hexadecimal 00313131313100 ->ascii: 11111 " cuando se abre el cambiado(Nº1) , se cambia el puntero, la estructura mas comun a cambiar son los mov XXX,YYYYY colocando en el original mov XXX, Direccion a Mov xxx,direccion_del_lugarcambiado o bien algun push XXXXX a Push YYYY si luego la modificacion son de estilo buffer, escribiendo en stack, esi ebp o otros, modificaciones a estilo inline, sugieren nopear el lugar, saltar a otra zona y escribir todo lo que se quiera y devolver el flujo mediante comparaciones y esperar el momento justo pushfd pushad opcional:comparaciones_de_valores {codigo inline} popad popfd
debes colocar la string y copiar (guardar) y ya deberia estar listo,siempre y cuando caiga bien en el espacio, lo mas comun es desviar el flujo (para ayudar a evitar bugs) y solo parchando con mov byte ptr[lugar],byte_parchar ejemplo 0075 a 0076 mov word ptr[lugar],word_parchar ejemplo 003031 a 003132 mov dword ptr[lugar],dword_parchar ejemplo 00313232 a 00313233 conclusion: los cambios estan bien, pero debes guardarlos, recordar que el inicio de un string depende del inicio y final en una cierta estructura, los espacios y cambiar un lugar y guardar y seguir copiando, pues las ediciones son referenciales a espacios con permiso de lectura y escritura, si esta comprimido, pues ni modo que primero debes desempacar, pero no creo que sea el caso pero si fuera el caso que plantea @Amerikano|Cls deberas usar inlinem pero tambien hay que recordar que tambien en las propiedades de ciertos bOX, de los recursos aceptan un cierto largo y ahi debe aparte del largo verse las propiedades del control/edit/form etc si es vb , mejor abrir vbdecompiler y ver si se puede editar.(ahorraras tiempo) saludos Apuromafo luego
|
|
|
En línea
|
Apuromafo
|
|
|
GaudyG
Desconectado
Mensajes: 23
|
conclusion: los cambios estan bien, pero debes guardarlos, recordar que el inicio de un string depende del inicio y final en una cierta estructura, los espacios y cambiar un lugar y guardar y seguir copiando... Esto se me es un poco confuso, osea q cada vez q cambie una variable en el compilador tengo q estar copiando y guardando? Pero entonces cual seria la diferencia entre eso y q al Final Copie Todos los Cambios y lo guarde? He tomado en cuenta el inicio del Offset, pero hay q tomar en cuenta el Final Tambien? Tenia entendido q el inicio y final de la String Nueva deberian haber "00" y q en el primer caracter de la String habia q tomar encuenta de la Offset, pero.. ¿y q hay q tomar en cuenta del Final de la String? Lamentablemente esta compilada con Visual C++
|
|
« Última modificación: 2 Abril 2011, 02:00 am por GaudyG »
|
En línea
|
|
|
|
apuromafo CLS
|
algun dia encontraras con cadenas con variables de wsprint , o variables dependientes de eax, ebx o otras solo te doy la idea y no la pierdas, si no, guarda este texto y guardalo para cuando pases 2 años y verifica denuevo , con respecto a las string nota que cuando guardas todos los cambios y si guardaste justo una api, deberas reparar la importacion, porque el cambio sera valido solo en tu maquina
ejemplo inyeccion de variables de entorno en armadillo, comparaciones en stack en asprotect , comparaciones de hiw en themida etc,
o mejor aun en lenguaje.net, deberas cambiar de herramientas como cff o guiarte con otras ideas.
es bueno que este en c++ porque convencionalmente no usar muchos unicode, que suelen ser para ejemplo el numero 20 no ascii:00323000 sino asi "0032003000" en forma hexadecimal
o mas divertido, si tu programa es autocripter, usa xor y va descifrando en bloques, al copiar todo, volvera a descifrar el bloque, si esta mal los registros, crasheara! por eso siempre es bueno practicar a lo que se tiene ejemplo un buffer de un archivo, puntero de string, y no generalizar tanto porque al final no funciona y denuevo tener que buscar que esta el error.
tengo guardado algunas historias que justo parcharon y no se dieron cuenta que no corria, y ya tenian hecho decenas de cambios, yo he hecho eso cuando intento desvirtualizar codigos muy ofuscados, aveces no corren porque esta mal, sobre todo en los "stolen oep"
bueno, no comento mucho para no asustarte, realmente es para que no tengas ningun error, ya se llevan años.
saludos Apuromafo
|
|
« Última modificación: 2 Abril 2011, 02:30 am por apuromafo »
|
En línea
|
Apuromafo
|
|
|
GaudyG
Desconectado
Mensajes: 23
|
estuve unos 3 dias intentando hacer esto y Cuando leí tu post, ya estaba q me retiraba porq si se necesitaba años para aprender hacerlo sin errores... y nada mas queria cambiar un String Pre-Definido, asiq quice dar mi ultimo intento
Al final me funcionó, cuando cargaba el EXE editado en OllyDBG, no aparecia los cambios que habia realizado en la ventana Hex Dump, pero si estaban las nuevas referencias para cargarlas, ahí me fije q quizas al momento de copiar, no se copiaba todo. Eso me hizo creer q algo hacia mal, el problema es q no sabia q cosa.
Al final hice lo mismo, pero los nuevos Strings los escribí en la ventana del Compilador, los referencie y me funcionó, con ello estoy satisfecho.
Una ultima duda: Para matar la duda... cuando ya terminaba de hacer los cambios, en la ventana del Compilador hacia click derecho > Copiar a Ejecutable > Todas las Modificaciones, y luego le daba Save. Pero no se guardaba nada en los cambios q hacia en la ventana Hex... En la forma q guardo, hay algo q hago mal?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Imprimir texto de forma simple en VB .Net
Programación Visual Basic
|
gaston.falco
|
0
|
3,150
|
21 Diciembre 2005, 22:45 pm
por gaston.falco
|
|
|
Photoshop Tutorial: Texto 3D Simple
Diseño Gráfico
|
Error_404
|
7
|
6,182
|
2 Junio 2006, 00:07 am
por + enrique ZP
|
|
|
Ayuda para edicion de video simple (agregar logotipo) !!
Multimedia
|
Diabliyo
|
2
|
7,385
|
20 Agosto 2008, 21:30 pm
por Diabliyo
|
|
|
edicion de fichers de texto
Scripting
|
diablo_jr
|
4
|
3,377
|
21 Abril 2011, 20:50 pm
por xassiz~
|
|
|
Programa edición imagenes texto editable
« 1 2 »
Software
|
sunbikers
|
13
|
4,843
|
30 Septiembre 2024, 16:26 pm
por sunbikers
|
|