UnPackMe_PELock1.06.d.exe tema 39 totalmente atascado

Iniciado por Potato, 14 Mayo 2012, 20:50 PM

0 Miembros y 3 Visitantes están viendo este tema.

Potato

hola chicos, pues como dice el titulo del mensaje estoy totalmente atascasco. No consigo ni avanzar un solo paso. Lo unico que consigo hacer es poner un BP KiUserExceptionDispatcher para abrir mi propio log pero no consigo ni sacar la oep ni nada de nada, solo consigo que me salga el graciosete cartel de que haga un tutorial si lo desempaco jeje que gracioso jaja. Dice tracear yo traceo pero no llego a ningun lado, no se si alguien puede hecharme un cable pues genial. Empieza en la página 177 de la version PDF, capitulos 31-40. un saludo a todos.



Os digo lo que hago: pongo el Bp en KiUserExceptionDispatcher doy run y me para el programa, miro en el log y apunto la direccion 395c74 Log data, item 1
Address=00395C74
Message=Access violation when writing to [7C81CAFF]

y luego salgo a la pantalla principal, e intento poner un Bp Conditional Log pero no hay manera de ponerlo o si lo pongo lo pongo mal, estas son mis pequeñas conclusiones de porque no puedo avanzar jeje  bueno ya lo he resuelto por el momento era que no tenia quitadas las excepciones jeje soy un novatillo pero oye resuelto ta de momento. os sigo comentando jeje


pues el siguiente paso me atasca pongo el condional log para que solo loguee y quito el otro pero no me arranca el programa, alguna idea??

apuromafo CLS

emm no se si aconsejarte o no, pero digamos que el KiUserExceptionDispatcher es parte de lo que esta entre el limite de ring 3 y ring 0, son excepciones que no ves, pero que ocurren pues digamos que los Int 3, int 2d son manejados por el sistema, la diferencia es que cuando colocas un bp (cc o int 3) el depurador se detiene para mostrarte en esa excepcion y manejarla..,
intenta mejor otra forma de acanzar, recuerda que también existen otros packers, y no es el unico a analizar,  te puedo contar otras cosas

para mi, es un packer con muchos recuerdos de unpack china ( un autor busco un poco del packer y guan los vencio a todos, luego el codifico un unpacker )

te sugiero la lectura si o si de:
http://www.ricardonarvaja.info/WEB/CONCURSOS%20VIEJOS/CONCURSOS%202004-2006/CONCURSO%2078/PELock%20v1.06%20%28All%20protections%29%20-%20por%20marciano.rar

http://www.ricardonarvaja.info/WEB/OTROS/AKIRA%20TODO/5.%20Estudio%20completo%20del%20empaquetador%20Pelock.rar

http://www.ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/901-1000/901-PeLock_DELPHI_por%20GUAN%20DE%20DIO.rar
http://www.ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1001-1100/1022-Pelock_by_GUAN%20DE%20DIO.rar

http://www.ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/000-100/051-DESEMPACANDO%20PELOCK%201.06-%203ra%20parte-%20El%20ANTIDUMP.zip

digamos un ejemplo cualquiera:
http://www.ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1301-1400/1374-complemento%20introduccion_41_coderedirection%20pelock%20by%20Apuromafo.pdf.7zo
cuidado que al querer descomprimir necesitas renombrar a ".7z"

hay otras formas como sfx:
http://www.ricardonarvaja.info/WEB/OTROS/COLABORACIONES/COLABORACIONES/DesempacarPelock1.06D.rar
pero no necesariamente funciona la reparacion de antidump (a mi el unpacked no me corre)


y el unpacker:
desde china:http://www.cr173.com/soft/31985.html
osea asi:
www.cr173.com/down.asp?id=31985

se llama PEunLOCK.exe 1.2 de Cyclotron esto fue creado para los pelock que contienen a full protection, no los especificos de 1 version registrada de antidump con una api externa, pero algo es algo, creeme que sirve bastante en casi todos los pelock







Potato

eres un crack en serio, pero con tu escrito me doy cuenta que tengo que aprender tereminologia, Asi que ahora empezare con ello, bueno primero quiero crackear mi programa ya que me meti para eso y quiero hacerlo, pero todo llega y paso a paso aprendere. un saludo bien grande again!!!!!!

Potato

#3
bueno despues de detername en packers sencillos he decidido avanzar con el curso de Ricardo, recordaba haber abierto este post que curiosamente es el mismo en el que estoy atascado, pero ahora con stolen bytes......


la pagina en concreto es la 186  del curso pdf  partes 31-40 y dice lo siguiente "Pues cuales son los metodos para hallar los stolen bytes, pues hay muchos realmente, el mas clasico es tracear luego de regresar de la ultima excepcion, probemos ese reiniciemos y volvamos a la ultima excepcion" hasta ahi bien,


pero luego dice "la misma se habia generado en 3A6744, por lo cual no me interesa en este caso el manejador de excepciones, asi que pondre un BP en el retorno, asi salteo el mismo"              y todo lo que viene a continuacion no  lo entiendo.    


Quiero decir yo he llegado a la ultima excepcion y estoy en la pila en la direccion que pone 12fcc0 pero luego dice la estructura context miremosla en el dump y bueno yo ahi me pierdo, alguna ayuda please



bueno pues como no entiendo lo de RN me he puesto ha investigar los otros metodos que me indico AM, gracias!!! pero aun asi no las tengo todas conmigo, vamos por partes:

Yo se donde esta el OEP y se donde esta el falso OEP pero como recuperar los estolen bytes me pierdo como pille al ladron no se lo que le hago  jaja es coña.....

una cosa clara se donde esta el OEP, ahora estoy tratanto de seguir el metodo de Marciano y en resumidas cuentas dice que hay que cambiar los bytes de un programa en vc++ 5.0 por los del pelock, hasta ahi bien. REseña: tambien se que hay unos bytes que hay que cambiarlos a mano por que cambian con cada programa.


Hasta ahi todo correcto, pero tengo una duda como se cuantos bytes hay que cambiar??? desde donde hasta donde......


Del Obligatorio 12ffc4 y siempre es ese?????? hablando siempre en VC++ 5.0 y  6.0, y si ya se que empiezan ahi ....... pero claro  no se estoy muy perdido y podria callarme y no poner nada, y copiar y pegar el ejercicio en mi casa, aprenderme el metodo de memoria y seguir para adelante,  y quedar como un señor, que sabe hacerlo, pero en verdad no sabria nada de nada, solo un automatismo..... pero no soy asi, a parte de que me gusta saber el porque prefiero quedar como un idiota y preguntar que callarme, por lo que si hay gente aprendiendo que lee esto tambien le valdra.....  a ver tengo un programa abierto en Vc++6.0 que empieza en 12ffc4 entonces la clave seria saber si todos los programas de vc++5.0 y 6.0 empiezan siempre igual, entonces un profano en la materia como yo preguntaria no se puede cambiar y dar al traste todo?????? perdonar mi ignoracia pero bueno como veis esto es complicado  complicado.

mario86

hola potato hace unos dias veo que estas muy activo en el cracking y en el foro ;D yo al igual que tu soy completamente nuevo en esto y tendre no mas de 1 o 2 meses leyendo ocasionalmente el curso y algunos tutoriales y recuerdo haber estado atascado varias veces y exactamente en el mismo punto que tu con el pelock, el context y todo eso ;).
asi que despues de varios dias de leer repetidamente el capitulo y algunos anteriores por fin le fui entendiendo mas pero me hubiera gustado que alguien me lo explicara mas asi que por eso intentare ayudarte lo mas que pueda.

dices que ya estas en la ultima excepcion con el Bp KiUserExceptionDispatcher tal como sale en el tutorial y con el stack en 12fcc0, recuerda que las direcciones pueden cambiar para cada maquina por lo que no siempre seran igual en tu pc que en las del tutorial por ejemplo en mi caso en el tutorial la ultima excepcion es en 3A6744 mientras que en la mia es 36744, el stack en el tutorial aparece en 12fcc0 mientras que en la mia es en 13fcc0 y eso hay que tomarlo bien en cuenta para no confundirse.

luego habla un poco de la estructura context, pero lo unico que explica alli es donde retorna el programa despues de la excepcion, recuerda que con el
Bp KiUserExceptionDispatcher estas trabajando directamente con la api y lo que se explica con todo eso del context y la direccion que en el tutorial es 3A6746 a la que apunta en el dump es simplemente la direccion en donde el programa sigue su curso. otra forma para que te quede mas claro lo que puedes hacer es eliminar todos los breakpoints y en vez de llegar a la ultima exception con
Bp KiUserExceptionDispatcher hazlo como normalmente se hace desmarcando todas las excepciones en las opciones del olly y cuando llegues a la ultima excepcion veras que la instruccion que le sigue al pasar la excepcion es la misma.
para que se vea mas claro te lo dejo con fotos:


aqui como en el tutorial estoy en la ultima excepcion y el stack como comentaba antes en 13fcc0-13fce4 que es la direccion para mi pc

aqui al igual que en el tutorial al seguir el stack a la que apunta mi pc
13fcc0-13fce4 en el dump alli en la direccion 13fd9c que esta sombreado esa es la direccion donde el programa continuara su curso o sea 36746.

ahora si lo hacemos por el metodo tradicional de las excepciones:


se puede ver que al llegar a la ultima excepcion en mi pc 36744 la instruccion que esta justo despues sera 36746 que es lo mismo que hicimos con el 
Bp KiUserExceptionDispatcher, es decir que el context nos sirvio para saber la direccion a la que el programa retorna al pasar la excepcion que como puedes ver llegamos a lo mismo.

espero haberte ayudado y mi unico consejo es que si te quedan dudas sobre las excepciones te vuelvas a leer ese capitulo y que cada leccion que leas lo hagas muy despacion entendiendo todo y repasandolo varias veces.

saludos!

apuromafo CLS

si quieres practicar con las excepciones no comienzes  con pelock, comienza con PECOMPACT,  luego hay un temaso de SEH:

http://www.ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/801-900/889-Structured%20Exception%20Handling%20por%20karmany.rar


digamos que estas en donde pasa la excepcion..sigues con esta imagen
http://subir.cc/images/dibujoqlq.png
bp e ese lugar y luego entras con f7, siguiendo asi hasta el valor que ya se prevehia desde el menu seh(desde olly1) o bien desde stalk(olly2)

insitsto, comienza con pecompact, ya mas adelante desempacaras a gusto pelock
saludos Apuromafo

Potato

#6
muchas gracias Maritolazo ahora estoy leyendo tu mensaje y me lo voy a leer mas  a fondo..... que esto es muy complejo.....

y a ti AM pues lo de siempre muchas gracias again y pues a darle a PECOMPACT a ver si asi se me aclara mas.

Lo del SEh mas o menos lo pillo, hay que cambiarlo porque son excepciones y en cada programa cambian (ahora me pondre con el temazo de Karmany) , lo que no me entero de nada es con los stolen bytes en general. Mi problema es saber que parte del codigo se ejecuto antes de llegar al falso OEP, es ahi donde me pierdo, es que esa la clave porque si se cuanto se ha ejecutado se cuanto tengo que cambiar, igual se me aclara leyendo lo de Karmany, en fin sigo perdidisimo jejejejejeje.......


Bueno despues de llevar todo el dia leyendo y leyendo y leyendo aalgo mas claro tengo las cosas..... solo algo...... DE lo de Karmany decir que todavia me queda un poco grande por lo que tengo que trabajarlo mejor, mucho mejor pero algo si que me he aclarado, pero repito tengo que estudiarlo a fondo.....


Del metodo de Ricardo pues estoy donde dice AM jejejejejeje y tengo que hacer varias pruebas pero bueno gracias a  maritolazo y a AM va mejor......

Pero el que no entiendo una parte en concreto es el otro metodo, y no entiendo exactamente "la parte del codigo que hay que reponer------- la que se ejecuto antes de llegar al falso OEP"  no se en este enlace


http://www.ricardonarvaja.info/WEB/OTROS/COLABORACIONES/COLABORACIONES/DesempacarPelock1.06D.rar                     

esta explicando las excepciones y de repente te dice la parte de codigo que hay que reponer sin explicar como, y pondria mas enlaces pero no me deja entrar a la pagina de Ricardo. Es decir yo se que cambiando esa parte del codigo y cambiando las excepciones que salen en mi computadora me va a arrancar y lo voy a hacer bien, pero claro eso es para este programa, y yo quiero saber como saber la parte del codigo que hay que cambiar para poder aplicarlo a todos los programas......     La unica explicacion que se me ocurre es que los stolen  bytes solamente puedan ser de esa parte que es comun a todos los programas en c++ 5.0 y 6.0  pero mis conocimientos son muy limitados asi que mis pensamientos tambien..... porque claro si pudieran ser de otras partes que no son comunes pues la llevamos clara no??? por eso pienso eso, pero bueno, no se...... yo a lo mio que es leer y practicar......

Posdata: AM No puedo practicar estoy baneado jejejejejejejeje y eso que hoy no he hecho tantas descargas jejejejejjeje




Potato

#7
digamos maritolazo que por medio de las excepciones he llegado a 396746 que es la ultima excepcion en mi programa pero ahora tengo un problema no me va el traceo..... como lo hiciste???? digo yo que tendre que utilizar otro metodo que no sea el  de las excepciones porque claro sino para en todas las excepciones creo que sera por eso jejejejeje.

apuromafo CLS

#8
pero baneado de mediafire o de ricardo?
si es la de ricardo:
cambia ricardonarvaja.info/WEB por http://ricardo.crver.net/WEB/
saludos Apuromafo

mario86

si lo haces tal cual como esta en el tutorial al llegar a la ultima excepción que en tu caso es 396746 pones el Bp en la siguiente instrucción y para el traceo el que me funciono a mi es que el olly pare cuando encuentre un push ebp, una vez alli lo pones a tracear y cuando para en el push ebp alli puedes ver junto con el tutorial cuales son las instrucciones a tomar en cuenta y cuales no. ya despues solo es de agregar las instrucciones arriba del falso oep y listo solo queda el tema de la iat.

saludos!