Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: bodoke1969 en 13 Febrero 2013, 06:31 am



Título: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: bodoke1969 en 13 Febrero 2013, 06:31 am
Hola a todos los del foro, espero me puedan ayudar en la siguiente duda que tengo:

Hay un programa que cheque con el RDG Pakcer Detection, y dice que fue hecho en Visual C#.net, lo abro con el ollydbg Shadow (1.10), le agrege unas excepcion y corre excelente, solo que al momento de sacar las ventanas activas (opcion W), veo claramente la frase que quiero modificar, pero, cuando le doy un Follow ClassProc, deberia mandarme a la direcion que ejecuta dicha instruccion, abre la CPU ( opcion C) pero vacia, checo en la opcion ID y dice =Handle, y en la columna ClsProc me manda la direccion FFFF01AF que no existe, como podria ver realmente de donde se origina dicha instruccion?

GRACIAS DE ANTEMANO!!!  ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: apuromafo CLS en 13 Febrero 2013, 16:33 pm
ver temas en ollydbg, que deben verse en otras herramientas realmente no tiene precio.., yo que tu usaria herramientas como kam(de kakeware), para confirmar las apis, o simplemente monitores..o algo para alguna handle...
respecto a lo de olly  

aver todo .net debe ser depurado con las herramientas que son para ese entorno, es un framework, no es un programa compilado asi como tal y conocemos siempre, se ejecutan componentes de tu equipo y segun el core

las sugerencias como siempre es leer el faq, confirmar con herramientas mas especializadas como PID
http://pid.gamecopyworld.com/
con eso deberias tener algo

la otra es que uses windows juggler en ollydbg

pero respecto a modificarlo para siempre aveces podrias intentar cheat engine o bien intentar reversarlo(decompilar , guiarte con el codigo)
para eso requiere otro tiempo muchisimo mayor:

, reflector (plugins como reflexil, deblector) entre otros deberian ser lo mas basico, junto con simple assembler, http://code.google.com/p/simple-assembly-explorer/

CFF Explorer:
http://www.ntcore.com/exsuite.php


realmente no tengo tanta experiencia modificando .net, pero para ver eventos tambien hay herramientas  para eventos en .net
http://portal.b-at-s.net/download.php?view.53

entre otros muchos debes aprender codigo intermedio (il)


suerte en tu investigación.

Saludos Apuromafo


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 14 Febrero 2013, 00:51 am
Gracias por responder Apuromafo: :rolleyes:

  Perdona la demora que no te conteste rapido, estaba checando lo que me escribiste y tienes razon, fue mejor ver los .DLL con SAE y no con el ollyDBG  ;-), creo que ya estoy mas cerca, solo que he tenido problemas en modificar los .DLL la version 1 del ILSpy, no me deja modificar el codigo que me aparece, baje la version 2 y tampoco, solo me kedaron 6 .DLL que no lo abre el SAE, lo cheque y no tienen  codigo que modificar, pero, eso s lo de menos, y la pregunta de los 64 mil, conoces un programa para modificar los .DLL que necesito modificar? porque me aparece en C o C++, ya que con el Ollydbg no puedo jejejej!!! me manda el mensaje que o que estan dañados, incompletos o que esta cifrado, y asi no puedo modificarlos.

NUEVAMENTE GRACIAS X TU AYUDA !!!!  ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: apuromafo CLS en 14 Febrero 2013, 04:29 am
primero debes saber si estan empacados, luego quitar desofuscacion en caso que haya y para modificar siempre es de preferencia reflector, hay teams que ya tienen crackeado(keygen) el reflector, no debe ser dificil de encontrar... 


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 15 Febrero 2013, 00:09 am
Hola Nuevamente Apuromafo:

   Cheque el archivo DLL en cuestion y me dice lo siguiente:

File Type : 32-Bit Dll (Subsystem : Win CUI / 3), Size : 507904 (07C000h) Byte(s)
[File Heuristics] -> Flag : 00000000000001001101000000110000 (0x0004D030)
[!] Possible CD/DVD-Key or Serial Check -> SerialNumber
[CompilerDetect] -> .NET
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.796 Second(s)
 :rolleyes:

Lo que me llama la atencion es el Posible CD/DVD-Key   :-*, pero con el Net Reflector lo lee bien ( me refiero a que no tengo problemas de lectura en eventos, instrucciones, referencias, etc), me comentas que te quite el desofucador, pero cheque por la internet y solo he visto pocos, otros para javascript, o C# (pero era para ofuscar dentro del programa, no para verificar), tambien lo he desesamblado jejeje!!! con el net reflector, pero solo quiero cambiar unas lineas del propio DLL y que se grabe, se puede hacer eso? o debo de instalar el visual studio para programar en C#, bueno, no codificar sino copiar y pegar ? jejeje!!!!. Perdona mi ignorancia ...  :-(


GRACIAS NUEVAMENTE !!!!  ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 15 Febrero 2013, 00:58 am
Hola Apuromofo:

 Creo que ya descubri como modificar los DLL en el Net Reflector, ya que por lo que veo hay que agregar unos Add-Ins, pero ya van como 5 que trato de meter y solo me marca error de cargar el archivo, que debo de checar el evento de excepcion???? en fin, sigo checando....


   NUEAVAMENTE GRACIAS!!!  ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 15 Febrero 2013, 08:38 am
Hola Nuevamente Apuromofo:

  MMM!!! corrigeme si me equivoco :P, el NET Reflector por si mismo no modifica los DLL, verdad??? :o, y si los hay debe ser mediante un Add-Ins (creo yo), lo mas que hice fue bajar descompilado el DLL que quiero modificar, y lo mande como libreria de Clase (CLass Library), lo descompila y me manda cero errores, abro el visual studio 2008 (me manda que es una version anterior, estoy bajando el 2005, actualiza a 2008 y listo), pero al momento de generar la solucion, simplemente me manda arriba de 15 errores, jejeje!!! (ya agrege las referencias, etc), lo que no se es que si debo de agregar todoooooo el sistema al proyecto, pero creo que no, ya que las dll, las puedes crear por separado, verdad???. Espero tus comentarios y jalones de orejas jejeje!!!  :laugh:

GRACIAS POR TODO Y SOPORTAR A GENTE COMO YO !!!!  ;-) ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: apuromafo CLS en 15 Febrero 2013, 15:57 pm
pues digamos que mi nick es apuromafo,

para saber si un .net esta o no con algun packer o algo heuristico  extra es necesario usar Dnid,
http://forum.tuts4you.com/topic/24739-dnid-v10/

pero si pid no muestra nada puede que a lo mas pueda estar ofuscado o sin nada extra


al poderse decompilar(obtener el codigo de fuente) tienes casi todo, el tema va en otro lado, hay componentes que muchas veces provienen de otros lados y obviamente eso uno los desconoce a menos que sepas codificar.

si , la habilidad de reflector es para mostrar el tipo de codigo de fuente, pero la habilidad de modificar viene desde sus plugins o addons,

hay a lo menos 2 tipos de historias que ocurren adicionalmente en los .net
1)  existen GUID y recursos que deben estar alineados (net reactor modifica por ejemplo valores y coloca extra..si dumpeas..no corre tu exe/dll)
2) existen algunos que estan por decirlos Firmados  , algunos removiendo o cambiando la firma corren bien


ahora bien, yo se que esto es como dificil de decir, pero digamos que luego que conoces el codigo, luego que sabes donde modificar, el cambio de preferencia debe ser en codigo IL, pues asi no altera tanto, muchos de los crackers que he leido hacen los cambios en hexadecimal (si con un editor hexadecimal), y modifican tranquilamente el archivo, pues dominan el tema de direcciones(rva) y que offset o pointer deben modificar

para mi es mas facil e intuitivo intentar usar reflexil, ir a la rutina y escribir el codigo posible, pero por motivo personal, jamas he investigado mas alla, pues claramente los .net hay muchas historias


yo te sugiero ahora seguir la lectura de .net desde otras personas :
http://ricardonarvaja.info/WEB/buscador.php

coloca ".net"

obviamente es mejor seguir con la lectura de faq, en cada uno de los puntos y ya explorar paso a paso en este mundo.


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 18 Febrero 2013, 05:54 am
Hola Apuromafo:
 
  Perdona la confusion de tu nombre, ya estaba cansado y desvelado, ahora te digo como me fue: Proble con el Reflector 7.6 pero tuve problemas a la hora de modificar la DLL, probe con el Dis#, igual forma, pero, pude bajar el fuente en C# y lo puse en Visual Studio 2003 (VS), el unico error que me manda fue una apertura de una DLL que hace referencia (no se si en las demas me indica lo mismo, ya que llega ahi y me manda ese error), pense que ese archivo que hace referencia tenia llave, pero la verifique y nada de llave, en fin, como no es de aqui la duda la mande al apartado de programacion en C, jejejje!!! De todas formas sigo leyendo lo que me mandaste, voy a probar otras cosas en lo que resuelvo la duda de programacion en C#

 GRACIAS DE ANTEMANO POR LA AYUDA !!!!  ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: apuromafo CLS en 18 Febrero 2013, 18:11 pm
ok, yo te aconsejaria mas usar el ultimo reflector..de medicinas y eso tambien existe el keygen ...


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 19 Febrero 2013, 00:41 am
Hola Apuromafo:

   En serio, el que sabe sabe, jejejeje!!!! eres un guru  :rolleyes: , tenias razon, ya deje la programacion del VS2003, y me dedique de lleno con el Reflector 7.6, ya se como modificar las DLL, y grabar los cambios, ufff!!!, ahora solo toy modificando en base a prueba y error (no sabia que el Reflector viene con un pequeño compilador, pequeño pero eficaz), solo me estoy acostumbrando a las instrucciones jejeje!!!, ahora solo quiero "jugar" con las instrucciones y valores, ya que cuando hago que no haga el reset del dispositivo, no sabia que habia 2 bloques que llaman a la funcion (grrrr!!!! pense que eran diferentes), en fin, nuevamente:

    GRACIAS POR TODO APUROMAFO ERES GRANDE ENTRE LOS GRANDES!!!  ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: apuromafo CLS en 19 Febrero 2013, 04:48 am
no, tu lo has hecho, yo solo te he dado un empujoncito, lo ideal es que tus aprendizajes que resultan los hagas tutorial, asi enseñas, luego que ya sabes del tema,verias que aveces podrias haber intentado otras cosas

eso, espero que le hagas un tutorial y vayas de a poco mejorando

Saludos Cordiales Apuromafo
pd:yo ya estoy retirado de estar reversando,pero no significa que no leo ni mucho menos deje de apoyar, una cosa es que yo no depure :D pero me gusta ver que las personas son capaces

br.false a br.true entre otros



Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 19 Febrero 2013, 19:37 pm
Hola Apuromafo:

   No al contrario, gracias a ti por ayudar  ;-), y si no es mucha molestia  :silbar:, cheque en la internet tratando de conseguir 2 cosas pero no encontre, te comento: Lo que me gusto del Dis# es que tiene por default un desobfuscador pero, no guarda lo que hago (de ahi saque el codigo fuente para VS2003) y rehacer por fuera la DLL, cosa que en Reflector no, cheque y no encontre alguno, si me podrias ayudar en eso? en orientarme para ponerle un add-ins desobfuscador?  :rolleyes: y dos, he buscado por la net buscando un programa para capturar eventos del un programa hecho en .NET, pero igual, nada d eso, ya que tengo problemas en el mar de funciones que tiene la aplicacion que tiene la DLL que quiero modificar, te comente que era 1 funcion que la mandaban llamar, pero, modifique segun la o las funciones que estaban pero no son (????), ya que no veo en que parte exactamente ocurre eso, solo me aparece una frase que esta haciendo el reinicio, pero, en el ollydbg solo veo en la memoria y segun esta en el .exe del programa, pero igual forma me meto al .exe y no veo eso, pense que estaba obfuscado, solo que en el Reflector no tiene esa opcion, lo he ejectuado en el ollydbg para ver los thread, pero simplemente se traba y ya no sigue.  :-[

OTRA VES GRACIAS Y PERDONA LAS MOLESTIAS!!!!  ;-) ;-) ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 19 Febrero 2013, 20:46 pm
Hola Apuromafo:

   Tengo una duda, y espero que me puedas orientar, mmm!!! dentro del Reflector, y en la modificacion del codigo, habra una manera de ponerle un BP ? o algo similiar? solo asi me podria ayudar en seguir donde exactamente esta la rutina a modificar.

  GRACIAS POR TODO!!!  ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: apuromafo CLS en 19 Febrero 2013, 20:47 pm
yo creo que el tema va en el manejo, aun reflector no es facil de manipular, para agregar esos todo depende del pluggin,   hay que saber codigo IL(intermedio), pero en si los procedimientos que lo llaman tambien debes escanearlos.

con respecto a desofuscar y otros te sugiero Simple assembler explorer...  hay bastantes temas en .net

con respecto a los eventos, te sugiero busques el team blackstorm, tienen bastante documentacion en .net (ingles), ademas de herramientas

espero logres pillar lo que quiero comentar...


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 20 Febrero 2013, 04:18 am
Hola nuevamente Apuromafo:

  Perdona que te moleste, solo para confirmar (y espero no incomodar) busque lo del equipo de tormenta negra y segun yo, esta es la pagina web: http://board.b-at-s.info/ es correcta?.

  Y por ultimo y la verdad ya no se que hacer, cambie valores de string con el reflector, pero, veo que a la hora de ejecutar no aparece la modificacion (pequeñas palabras en ingles la cambie por español para guiame, incluso cambie palabras de ingles que eran valores de llamadas a funciones para guiarme y nada  :-[), pero, si las veo con el reflector, pense que estaban en otras DLL, pero carge todas las DLL del sistema (arriba de 125 DLL), busque con el F3 palabra por palabra (tanto en español como en ingles, y en español me arroja solo lo que cambie y en ingles, solo las llamadas de funciones) y me llevan al mismo lugar de donde las modifique, no se que pasa, no se de donde ejecuta esas instrucciones, lo unico que he logrado es "detener" el proceso de reinicio del dispositivo (provoco un error de sintaxis), fuera de ahi, ya no se que hacer . :-[

  GRACIAS POR TU AYUDA Y PERDONA SI TE SOY MOLESTO !!!!  ;-) ;-) ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 20 Febrero 2013, 08:40 am
Hola Apuromafo:

   Ya despues de los pequeños sin sabores de esto jejeje!!!  :laugh:, ya mas o menos lo tengo hecho, como te comente con anterioridad, no m sirvieron cambiar los valores que segun yo, eran (palabras de ingles a español para distinguir el proceso, ahora, dspues de mucho batallar, lo que que ya no hiciera el reinicio y que fuera al proceso que quiero, hasta ahi felicdades para mi jejeje!!!  ;-) ;-) cuantas veces le diera el click para que lo haga, sin problemas, peroooooo, ahora que voy a otro proceso que necesito hacer y a su vez voy a dar el click que no haga el reincio, cual es mi sorpresa que estan ligadas, en la opcion que me brinco el reinicio, me manda el mensaje "parametro invalido" ???  :-\ , de donde saca eso???  :-*, he visto que mientras no ingrese a esa opcion del sistema, no hay problema, pero, si me meto, surge ese mensaje y a pesar de que puse disponible el boton de que se ejecute, le doy click y hasta ahi llego. mmm!! deseo quitar un try catch, me voy linbea por linea y me manda error en el bloque completo, y vuelvo a empezar. Alguna suguerencia???  :rolleyes:

   GRACIAS POR AYUDARME !!!  ;-) ;-) ;-) ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 20 Febrero 2013, 09:47 am
Hola de nuevo Apuromafo:

   jejeje!!! perdona la hora  :rolleyes: , ya vi donde estaba el problema de todo  ;-), lo que pasa es que habia en una funcion la llamada al reinicio del dispositivo, y en la otra tenia la misma rutina con if, aqui viene lo bueno, en una funcion en el if que preguntaba si estaba disponible, le mande un valor de 1, me manda error (el que te comente anteriormente) pero funciona, ahora en la otra funcion, ahi tengo el problema, ya que la rutina que quiero que realize (segun yo jejeje!!!  :rolleyes:), esta dentro del if que pregunta si el dispositivo esta disponible, tengo que irme paso por paso para quitar ciertas partes del if y dejar las demas? o se puede hacer algo al respecto?

   GRACIAS Y SALUDOS!!!!  ;-) ;-) ;-) ;-) ;-)


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: MCKSys Argentina en 20 Febrero 2013, 10:01 am
Creo que necesitas tomarte un tiempo respecto a este tema.

Mira el código. Examínalo. Hazle cambios y observa cómo se comporta. Juega un poco.

De esta forma, este post no se transformará en un diario y mafo (apuromafo) no se desmayará cuando lea lo que haz escrito (me refiero a la cantidad)... :)

Saludos!


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 20 Febrero 2013, 12:11 pm
Hola MCKSys:

   Ok, lo tomare en cuenta y tienes razon, ya parece un diario jejeje!!!  :laugh: :laugh: :laugh: :laugh:


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: apuromafo CLS en 24 Febrero 2013, 00:48 am
todo es paso a paso, poco a poco, los exe tambien se alinean en tamaño, peso recurso, no es llegar y cambiar una direccion(los recursos luego no se usaran y luego dara error)

no siempre se cambian las string, se cambian las direcciones donde se leen

es diferente cambiar
mov eax,"hola"
que cambiar mov eax,direccion hola

ademas como comentaba al principio, yo creo que todo va en como vayas aprendiendo a usar tu depurador

te sugiero codifiques algo en .net, luego vas modificandolo, cuando ya domines el tema, ya deberias ser capaz de maniobrarlo a comodidad,


Título: Re: DUDA ACERCA DE UNA DIRECCION DE MEMORIA EN OOLYDBG
Publicado por: arturoro en 28 Febrero 2013, 05:04 am
Hola Apuromafo y MCKSys Argentina (gurus  :rolleyes: :rolleyes:):

  Despues de tanto sufrir (literalmente), ya logre que no relizara el reinicio, ahora para sorpresa mia, resulta que el dispositivo "guarda" no se en que parte de la tarjeta logica, como si estuviera en modo de reinicio, despues de investigar, vi que en el sistema y en el administador de tareas hay un archivo del sistema que pesa apenas 60k, si mato el proceso, me reinicia la PC, lo cheque con el RDG Packer Detector v0.7.0. y me dice que esta hecho en Visual C++ (no .NET) pero, me aparece abajo en letras rojas la leyenda "Check IsDebbugerPResent" que significa eso? y aparte me abre otra ventana que dice "Detected: Private Exe Protect V3.x" como le quito eso o como le puedo hacer para brincar adentro del programa el reincio del dispositivo? la conexion es con USB

   GRACIAS DE ANTEMANO !!!!  ;-) ;-) ;-)