Desencriptacion en Memoria

Iniciado por Hendrix, 26 Mayo 2006, 18:30 PM

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

Hendrix

Ok...esto me lo puedo empollar yo solo...pero una vez sepa modifikar el PE, hacia donde lo ago apuntar???? :-\ :-\ :-\ supongo que a la funcin de desenkriptacion no, o si???stoy algo perdido... :-\ :-\ :-\

Saly2 y reitero las gracias... ;) ;)

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

byebye

logico, tiene que apuntar a tu rutina para descifrar el codigo.

Eternal Idol

Efectivamente y esta despues de descifrar tiene que saltar al codigo descifrado.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Hendrix

haber...diganme kon este eskema si voy en lo cierto o estoy perdido....

[ejecucion del archivo]
-Modificamos el PE-
- lo redireccionamos al code de desencriptacion-
-a este lo redireccionamos a una string enkriptada-
- la desenkritpa y luego que hace???-
- vuelve a otra string enkritpada y la desenkripta-
- se produce esto repetidas veces hasta finalizar la desenkriptación del ejekutable-
[Fin del ejektuable]

Mas o menos es asi????

Duda: - la desenkritpa y luego que hace???-

:-\ :-\ :-\

Salu2

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Eternal Idol

Sera una ristra de bytes me imagino y no una string como tal. Despues de haber descifrado todo saltas o llamas (jmp/call) al entry point original del programa.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

byebye

mas o menos es como dices pero no del todo.

supongamos que el codigo del ejecutable original esta en 4500 (ficticio). ahora tu pones tu codigo en 4800 (el que descifra) pues el entrypoint del programa a de ser 4800 (esto no es asi ya que las direcciones no son igual en disco que en memoria pero para explicarlo mas o menos sobra).

ahora tu rutina tendria un puntero a 4800 que es donde estaria el inicio de los bytes cifrados, los desencriptas y saltas a esa direccion una vez la descompresion se a realizado.


lee el formato PE, y desde luego en vb no voy a decir que no se pueda, pero que es un trabajo de chinos si te lo digo.


Hendrix

#16
Kon lo que tu me as dicho entiendo esto:

tenemos un archivo de 4500 que okupa esto:

[---------------------------------]

Bien, kuando lo enkripto me tiene que ekdar esto????:

[---------------------------------][---------------------------------]

Pero esto es obvio que no es asi...proek, de que serviria enkriptarlo???

Otra kosa que se me vieen a la kabeza es esto:

Este espacio:

[---------------------------------] Pero vacio!!!! y ahora tenemos esto:


[---------------------------------][---------------------------------]

Lo que esta en kolor es la aprte enkritpada....luego lo que yo me imagino es que redirecciono a la parte enkriptada y kuando lo desenkritpa lo pone en la aprte kee sta vacia, luego kuando lo tiene todo desenkritpado direcciona el PE al PE original del archivo desenkritpado...y asi ya funcionaria normal....

Creo que esta ultima es la mas coerente....es asi que se hace???

Muchas Gracias!!!

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

byebye

si mas o menos.

CitarPero esto es obvio que no es asi...proek, de que serviria enkriptarlo???

por logica la funcion que descifra tiene que estar sin cifrar, pq si el ordenador reconoce una instruccion como 6 y cifrada vale 8 no tiene ni idea de que le estas diciendo. ¿de que te sirve? pues desensambla un programa con upx por ejemplo y veras la rutina de descompresion pero ¿y el codigo original?

Hendrix

ok ok...ya lo entendi.... ;D ;D ;D ;D muchas gracias!!!!

Ahora solo me falta saber komo manejar el PE....me podriais dar alguna funcion que lo haga???? despues yo ya buskare como se utiliza y esto....y tendre que escribir en memoria, no??? puesto que tendre que redireccionar el PE mientras se esta ejekutando.... :-\ :-\ :-\

Salu2 y Gracias...
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón