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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  [duda simple] Edicion de Texto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [duda simple] Edicion de Texto  (Leído 5,143 veces)
GaudyG

Desconectado Desconectado

Mensajes: 23


Ver Perfil
[duda simple] Edicion de Texto
« en: 29 Marzo 2011, 21:01 pm »

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 Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: [duda simple] Edicion de Texto
« Respuesta #1 en: 30 Marzo 2011, 17:35 pm »

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





Mi blog:
http://amerikanocls.blogspot.com
tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: [duda simple] Edicion de Texto
« Respuesta #2 en: 30 Marzo 2011, 18:47 pm »

tambien se puede cambiar el puntero a la cadena por otra que tengas por ahi.
En línea

GaudyG

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [duda simple] Edicion de Texto
« Respuesta #3 en: 31 Marzo 2011, 14:09 pm »

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 Desconectado

Mensajes: 668



Ver Perfil
Re: [duda simple] Edicion de Texto
« Respuesta #4 en: 31 Marzo 2011, 18:58 pm »

Fijate de esta forma

« Última modificación: 31 Marzo 2011, 19:04 pm por tena » En línea

GaudyG

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [duda simple] Edicion de Texto
« Respuesta #5 en: 31 Marzo 2011, 21:55 pm »

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


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: [duda simple] Edicion de Texto
« Respuesta #6 en: 1 Abril 2011, 20:57 pm »

@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

Código:

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 Desconectado

Mensajes: 23


Ver Perfil
Re: [duda simple] Edicion de Texto
« Respuesta #7 en: 2 Abril 2011, 01:46 am »

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


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: [duda simple] Edicion de Texto
« Respuesta #8 en: 2 Abril 2011, 02:28 am »

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 Desconectado

Mensajes: 23


Ver Perfil
Re: [duda simple] Edicion de Texto
« Respuesta #9 en: 2 Abril 2011, 14:03 pm »

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

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

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,003 Último mensaje 21 Diciembre 2005, 22:45 pm
por gaston.falco
Photoshop Tutorial: Texto 3D Simple
Diseño Gráfico
Error_404 7 5,842 Último mensaje 2 Junio 2006, 00:07 am
por + enrique ZP
Ayuda con caja de texto html(simple codigo?)
PHP
Tengu 5 4,179 Último mensaje 17 Julio 2007, 18:23 pm
por Tengu
Ayuda para edicion de video simple (agregar logotipo) !!
Multimedia
Diabliyo 2 7,118 Último mensaje 20 Agosto 2008, 21:30 pm
por Diabliyo
edicion de fichers de texto
Scripting
diablo_jr 4 3,073 Último mensaje 21 Abril 2011, 20:50 pm
por xassiz~
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines