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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Ayuda con una modificación que no funciona
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con una modificación que no funciona  (Leído 8,033 veces)
arfgh

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Re: Ayuda con una modificación que no funciona
« Respuesta #10 en: 8 Julio 2016, 19:35 pm »

hombre, herramientas ya me imagino que habrá, el mismo ollydbg te deja escribir en esas partes, pero me refiero .... programaticamente, o sea, desde nuestro propio programa.
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Ayuda con una modificación que no funciona
« Respuesta #11 en: 10 Julio 2016, 02:45 am »

hombre, herramientas ya me imagino que habrá, el mismo ollydbg te deja escribir en esas partes, pero me refiero .... programaticamente, o sea, desde nuestro propio programa.

Mujer, para que quieres hacer "programaticamente"? (no sé a que te refieres con eso), Si no puedes hacer una pequeña modificación de un salto condicional, dudo que puedas programar internamente un editor de secciones (si es que a eso te refieres a programaticamente). Mejor usa una tools no te compliques la vida.
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: Ayuda con una modificación que no funciona
« Respuesta #12 en: 11 Julio 2016, 05:28 am »

leo con tranquilidad que quieres insertar un pequeño injerto

hay ciertos detalles a considerar cuando cambias un byte

1)el programa está empacado?, esto influye porque el lugar donde escribes puede que esté está protegido contra escritura, aunque de comienzo tenga permisos de escritura o bien que tenga verificacion de crc.

2) el programa si no está desempacado la sección que está influye bastante
ya que si no tiene permiso para escribir en el lugar hará una excepción,que hará que no funcione

3) digamos que usas topo
herramienta disponible en http://ricardonarvaja.info/WEB/OTROS/HERRAMIENTAS/Q-R-S-T-U/topo12corregido.rar


 indicado en la parte anterior, determinas no se 100 o 200 bytes de espacio libre o el tamaño que quieras ,tu código será algo asi


Citar
nop
nop
nop
NOp por cantidad de bytes ...
JMP entrypoint



lo ideal que hagas es que coloques en este  entrypoint lleno de nops algo asi


pushad ;guarda los registros
injerto a realizar (cambiar una direccion, redireccionar o lo que quieras)
// cambiar una direccion
ejemplo mov ptr ds:[direccion del salto],90909090 ;nopeando el lugar de destino
mov ptr ds:[direccion del salto+4],bytes  ;siguiendo la escritura de los bytes
mov ptr ds:[direccion del salto],bytes del salto a direccion del destino

la idea de los bytes es para parches a luego del salto del oep
donde antes decia jmp lugar/jne/je, ahora dirá jmp direccion2

popad ;restaura los registros
jmp entrypoint ;aqui empezara el programa....
una vez que acceda al lugar parchado irá a direccion 2 donde devolverás el flujo

direccion2:

aqui codigo que antes era nop, ahora le colocas lo que quieres hacer o cambiar etc
cmp eax,0
je siguiente
mov eax,1
siguiente:
jmp lugar retorno

una idea de injerto cualquiera es definir el espacio donde estamos

osea

entrypoint (con nops)
COdigo que cambia algunas instrucciones hacia el codecave , luego
ejemplo cambio incondicional al lugar de destino (despues de la redireccion del oep)

salto al oep (original entrypoint)
codigo del injerto donde restauras o sigues el flujo normal, parchas donde quieres
y saltas al retorno del programa tal cual como siempre



esto de usar un injerto que no altere las apis, se puede hacer sin lio cuando conoces bien el ejecutable, pero cuando ya requieres apis, debes tener cuidado de agregar a la sección iat las nuevas apis, y de cuadrar bien la sección para que sean compatibles con otros sistemas operativos...

bueno eso


la sugerencia es que si aún no encuentras bien el espacio o como administrarlo, lo ideal es que leas bien el faq y termines los escritos de ricardo narvaja

quizas de primera es complicado, pero con el tiempo comienzas a darte cuenta que no es algo complicado

Saludos Apuromafo
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda en modificacion de una foto (principiante)
Diseño Gráfico
Erick_666 3 2,222 Último mensaje 11 Mayo 2005, 11:14 am
por Erick_666
AYUDA - Modificacion de Registro x VBScript
Scripting
robo_z 4 3,731 Último mensaje 5 Febrero 2010, 22:15 pm
por robo_z
ayuda con modificacion de bytes
Java
chungui_ 0 1,395 Último mensaje 26 Enero 2013, 23:35 pm
por chungui_
Ayuda con modificación de proyecto SDL
Programación C/C++
WHK 4 2,429 Último mensaje 31 Marzo 2016, 00:26 am
por MAFUS
Ayuda Modificacion de diccionario
Programación C/C++
eduardo1985 0 1,509 Último mensaje 26 Enero 2017, 13:51 pm
por eduardo1985
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines