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)
| | |-+  Cracking .Net AYUDA!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cracking .Net AYUDA!  (Leído 4,188 veces)
mickro

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Cracking .Net AYUDA!
« en: 19 Marzo 2009, 00:23 am »

Estoy dando mis primeros pasos con el cracking, y para empezar estoy practicando con la plataforma .Net, ya que es mas sencillo.
Bueno, resulta que el me he bajado un componente/control para el .net. Nose si las normas del foro me permiten decir el nombre del producto, pero el software sirve para agregar a tus proyectos la administracion de usuairos, roles, permisos, ect.
Al instalarlo su me copiaron 5 archivos dll. Inmediatamente abri el proyecto de prueba que viene con el instalador para observar que limitacion tenia dicho producto.
Y la unica limitacion que existe es que permite administrar hasta 4 usuarios.
Bien, una vez hecho eso abrí las dll con el Reflector y para mi sorpresa el assembly no estaba ofuscado, esto facilito mucho mi tarea, ya que lo unico que tenia que hacer era buscar el lugar en donde el software hacia el control (de no permitir mas de 4 usuarios) y modificarlo.
Cuando encontre la dichosa linea, vi que era un simple If:

Código:

if(context.Runtime.RolesProvider.GetMaxUsers(utcNow) <= ((int) context.PrincipalManager.GetSpecialValue("count")))
{
  VGTrace.WriteLineIf(VGTrace.TraceError, SR.UserCreationNotAllowedMaxUserHasBeenReached);
  status = VGMembershipCreateStatus.TooManyUsers;
  return null;
}


El metodo context.Runtime.RolesProvider.GetMaxUsers() devuelva la cantidad de usuarios permitidos por este trial, en este caso 4 y context.PrincipalManager.GetSpecialValue("count") devuelve la cantidad de usuarios ya ingresados en el sistema.
Luego, utilizando ildasm y ilasm logre modificar ese if y que de la siguiente manera:

Código:
if(context.Runtime.RolesProvider.GetMaxUsers(utcNow) <= 0) 
{
  VGTrace.WriteLineIf(VGTrace.TraceError, SR.UserCreationNotAllowedMaxUserHasBeenReached);
  status = VGMembershipCreateStatus.TooManyUsers;
  return null;
}


es decir, nunca va a dar verdadero y nunca va a entrar en ese if, que era mi objetivo. En realidad, el verdadero objetivo es que no se ejecute esta linea:

Código:
status = VGMembershipCreateStatus.TooManyUsers; 

Bien, hasta aqui todo bien....pero no. Resulta que la dll estaba firmada (strong name) y aqui empezo mi calvario.
Con la ayuda de la herramienta CFF Explorer removí el Strong Name Signature, pero de vuelta al visual studio me salio el siguiente error :

No se puede cargar el archivo o ensamblado 'xxxxxx.xxxxx.xxxxxxx, Version=2.8.812.19, Culture=neutral, PublicKeyToken=8e423a8f05ffd0dc' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)

Pueden ayudarme???, por donde sigo?
Gracias de antemano.


Mickro
En línea

KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: Cracking .Net AYUDA!
« Respuesta #1 en: 19 Marzo 2009, 01:46 am »

No conozco mucho de firmas digitales, pero podria ser tambien que checkee el si se ha modificado algo dentro de la dll.

Ahora, no hay algo que emule la firma digital??
En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
mickro

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Cracking .Net AYUDA!
« Respuesta #2 en: 19 Marzo 2009, 13:35 pm »

SI, checkea si se ha manipulado la dll. Asi funciona, por eso elimine el strong name signature.
Pero al eliminarlo me tira esto cuando algun proyecto intenta cargar la dll :

No se puede cargar el archivo o ensamblado 'xxxxxx.xxxxx.xxxxxxx, Version=2.8.812.19, Culture=neutral, PublicKeyToken=8e423a8f05ffd0dc' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)
En línea

KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: Cracking .Net AYUDA!
« Respuesta #3 en: 19 Marzo 2009, 15:01 pm »

Lamentablemente no se tanto sobre c# (y eso que programo con el), lo unico que se me ocurre es ver si se puede emular el strong name para dejarlo como antes.
En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: Cracking .Net AYUDA!
« Respuesta #4 en: 19 Marzo 2009, 15:16 pm »

Perdon por el doble post, pero queria seprar los dos temas.

Si bien no tengo idea sobre strong names, leyendo en google encontre un post que explica como "clonar" el strong name de una dll incluso saltear la verificacion de este. te dejo los links, pero eso si, postea si pudiste hacer algo, y si te animas hace un tutorial ya que no hay muchos por ahi.

Código:
http://www.atrevido.net/blog/2004/11/28/Cracking+Code+4+Replacing+A+Strong+Name.aspx

http://groups.google.co.uk/group/microsoft.public.dotnet.security/browse_frm/thread/268e8fab2a7124df?hl=en&lr=&rnum=2&prev=/groups%3Fq%3DRahul%2BKumar%2Bgroup:*security*%26hl%3Den%26lr%3D%26selm%3D%2523UDXSOX0EHA.3820%2540TK2MSFTNGP11.phx.gbl%26rnum%3D2


Saludos y espero noticias  :D
« Última modificación: 19 Marzo 2009, 15:26 pm por KJD » En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
Mintaka

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: Cracking .Net AYUDA!
« Respuesta #5 en: 20 Marzo 2009, 14:10 pm »

Hola a tod@s.
Mira a ver si te pueden ayudar estos otros dos tutoriales:

http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/901-1000/911-Evadiendo%20StrongNames%20de%20.NET%20con%20OllyDbg%20-%20por%20marciano.rar

http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1001-1100/1041-StrongNames%20y%20Reflexil.rar

Suerte,

Mintaka
En línea

Si lloras por no ver el Sol tus lágrimas no te dejarán ver las estrellas.(Tagore)
KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: Cracking .Net AYUDA!
« Respuesta #6 en: 20 Marzo 2009, 14:37 pm »

Mintaka comom siempre impecable, es lo mismo que encontre yo pero mejor explicado y en castellano  :D

Ahora no se si servira para framework 3.0-3.5, esperemos que mickro de alguna respuesta si le sirvio.
En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
mickro

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Cracking .Net AYUDA!
« Respuesta #7 en: 21 Marzo 2009, 07:34 am »

Primero gracias por ayudarme. Este foro es excelente!.
Ahora bien, les cuento que he tenido novedades, mas tarde o mañana con mas tiempo posteo algo.
Nuevamente gracias a todos!

Mickro
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda [Cracking] No protegido*
Ingeniería Inversa
TornadoXml 4 3,115 Último mensaje 24 Julio 2016, 05:03 am
por sadfud
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines