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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator  (Leído 7,267 veces)
aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« en: 27 Diciembre 2017, 17:37 pm »

Hola amigos, llevo varios días intentando desempacar/descifrar un C#.NET C# pero son todo problemas cuando lo intento.
He probado lo siguiente: https://forum.tuts4you.com/topic/36776-unpackcryptoconfuser-19/
Pero:

1- Tengo problemas en el paso 3: de4dot.exe "path" -p un --strtyp delegate --strtok 0600002f". (En mi caso es 0600002f). Si uso el parámetro strtok da error y no da ninguna pista de que falla.
2- No tengo "CryptoObfuscator constant fixer".
3- No tengo "ResourceManager".

También probé con este: https://bbs.cracker.in.th/thread-6462-1-1.html
Con los mismos problemas.

También probé con este: https://es.scribd.com/document/255653902/NET-Decrypt-Constants-Manually-Using-PowerShell

Code:
Código:
$MetadataToken = 0x0600002f
$path = 'C:\...\file.DumpedMethods-cleaned.exe'
$asm = [System.Reflection.Assembly]::LoadFrom($path)
$module = $asm.GetModules()[0]
$decryptionMethod = $module.ResolveMethod($MetadataToken)
$result = $decryptionMethod.Invoke($null,80)
Write-Host $result
Con este resultado:
Código:
Excepción al llamar a "LoadFrom" con los argumentos "1": "No se puede cargar el archivo o ensamblado 'file:///C:\...file.DumpedMethods-cleaned.exe' ni una de sus dependencias. Se esperaba que el módulo tuviera un manifiesto de ensamblado."
En línea: 3 Carácter: 46
+ $asm = [System.Reflection.Assembly]::LoadFrom <<<< ($path)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
 
No se puede llamar a un método en una expresión con valor NULL.
En línea: 4 Carácter: 26
+ $module = $asm.GetModules <<<< ()[0]
    + CategoryInfo          : InvalidOperation: (GetModules:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
No se puede llamar a un método en una expresión con valor NULL.
En línea: 5 Carácter: 42
+ $decryptionMethod = $module.ResolveMethod <<<< ($MetadataToken)
    + CategoryInfo          : InvalidOperation: (ResolveMethod:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
No se puede llamar a un método en una expresión con valor NULL.
En línea: 6 Carácter: 35
+ $result = $decryptionMethod.Invoke <<<< ($null,80)
    + CategoryInfo          : InvalidOperation: (Invoke:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
¿Alguien puede ayudarme? please.
Ya no sé qué más probar y estoy muy perdido en .NET.
En línea

aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« Respuesta #1 en: 27 Diciembre 2017, 21:13 pm »

Comparto el enlace para que puedan echarle un vistazo: https://mega.nz/#!Q8txCZxJ!RAQW55e32jgtSobfckU0zyXRuv_NdgnqJ4W_ZiF3aFw
En línea

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« Respuesta #2 en: 28 Diciembre 2017, 03:19 am »

si es de ayudar, aqui va sin confuser :) , eso tengo varios recuerdos, asi que deberia estar listo.

del cryptoobfuscator no tengo experiencia  pero igual te dejo uno como referencia a como deberia verse mas menos
https://megaup.net/1pAD/explorar.rar

Saludos Apuromafo
En línea

Apuromafo
aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« Respuesta #3 en: 28 Diciembre 2017, 09:41 am »

Pues estamos atascados mas o menos en el mismo sitio amigo.
Tenemos un codigo imposible de entender porque usa constantes para obtener las strings y esa parte sigue sin solucionar y ademas usa una serie de funciones que dudo mucho que lo haya creado asi el creador del programa. Un ejemplo:
Código
  1. byte[] array = Class41.smethod_0((int)Class37.smethod_0(eData));
En realidad si voy viendo lo que hace cada metodo de cada clase quedaria algo como:
Código
  1. byte[] array = new byte[(int)eData.Length];
Mucho mas comprensible que lo anterior y lo que está es asignando memoria a un array de bytes y el tamaño es el del largo del eData.
Otro ejemplo:
Código
  1. fixed (byte* ptr = &eData[Class4.smethod_0(276)])
queda como:
Código
  1. fixed (byte* ptr = &eData[BitConverter.ToInt32(Class4.byte_0, 276)])
Es mas comprensible pero sigue siendo una maraña de clases que no hay quien la entienda porque ¿donde se declara byte_0?
Código
  1. static Class4()
  2. {
  3. if (Class4.byte_0 == null)
  4. {
  5. string text = Class46.smethod_1<string>(439275159u, 16521681396958907343uL);
  6. byte[] array = Convert.FromBase64String(text);
  7. text = Encoding.UTF8.GetString(array, 0, array.Length);
  8. Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(text);
  9. Class4.byte_0 = Class6.smethod_1(97L, manifestResourceStream);
  10. }
  11. }
Lo que hace es rellenar byte_0 con datos de un archivo de recursos cuyo nombre no puedo saber ya que Class46.smethod_1 es una funcion con muchas operaciones matematicas para obtener la cadena y que sin la ayuda de un matematico nivel dios no podré entender jajaja.
Pero usando tools llegué a algo más y así quedo esa función:
Código
  1. if (Class4.byte_0 == null)
  2. {
  3. string text = "UmVzaWRlbnQgRXZpbCBSZXZlbGF0aW9ucyAyIERlY3J5cHRlciU=";
  4. byte[] array = Convert.FromBase64String(text);
  5. text = Encoding.UTF8.GetString(array, 0, array.Length);
  6. Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(text);
  7. Class4.byte_0 = Class6.smethod_1(97L, manifestResourceStream);
  8. }
En realidad la cadena es "Resident Evil Revelations 2 Decrypter%" con lo que esa funcion podria quedar como:
Código
  1. if (Class4.byte_0 == null)
  2. {
  3. Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Resident Evil Revelations 2 Decrypter%");
  4. Class4.byte_0 = Class6.smethod_1(97L, manifestResourceStream);
  5. }
Class6.smethod_1 si no me equivoco es parte de cryptoofuscator ya que realmente viendo sus tripas creo que descifra el archivo de recurso para meter los bytes en Class4.byte_0. Realmente no creo que el programador sea el responsable  :xD
« Última modificación: 28 Diciembre 2017, 11:57 am por aguml » En línea

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« Respuesta #4 en: 28 Diciembre 2017, 13:28 pm »

ojo hay recursos en dll... no solo en el exe..no lo subi porque los puedes dumpear facil con megadumper
En línea

Apuromafo
aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« Respuesta #5 en: 28 Diciembre 2017, 15:40 pm »

Vi que salian 3 dll con MegaDumper pero no se que hacer con ellas  :P
En línea

aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« Respuesta #6 en: 28 Diciembre 2017, 16:19 pm »

He conseguido desofuscar las cadenas  ;D
Esto pone:
this.byte_0 = Encoding.ASCII.GetBytes("zW$2eWaHNdT~6j86T_&j");
Esa se supone que es una Key que usa el programa para descifrar/cifrar archivos y lo que tengo que saber ahora es como la usa porque creo que podria ser TEA pero no es nada seguro.
En línea

aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: Ayuda para desempacar/descifrar confuser 1.9 + CryptoObfuscator
« Respuesta #7 en: 28 Diciembre 2017, 18:35 pm »

Adjunto lo que llevo hasta ahora: https://mega.nz/#!p4MDHYoK!8iJCvwdKIqYDzkfpQoKvdJEagIZbU0gReBpqRpEP-Jk
Por ahora quitados los delegates, descifrado, resueltas las strings, y vaciado el constructor de <Module>.cctor.
Me falta reparar los recursos que los tengo dumpeados con megadump, reparar las constantes que la verdad no se ni que son pero supongo que tendrá que ver con las funciones extrañas y clases que no vienen mucho a cuento y que tienen pinta de ser cosa de uno de los ofuscadores, y tambien me falta limpiar las clases y delegates que ya no sirvan. La verdad es que aunque lo resuelva no voy a poder depurarlo en mi pc porque desde que instalé visual studio ya no me deja y me da un error que por lo que he leido es porque el ejecutable fue creado en una maquina con framework 4.5 y yo tengo 4.0 y tengo xp y en xp no se puede instalar el 4.5. Lo que no entiendo es porque funcionaba bien hasta que instalé Visual Studio si seguia sin tener el framework 4.5  :¬¬
« Última modificación: 28 Diciembre 2017, 18:42 pm por aguml » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Confuser Ayuda
Ingeniería Inversa
TornadoXml 2 3,202 Último mensaje 28 Julio 2016, 18:51 pm
por apuromafo CLS
Help to deobfuscate Confuser 1.9
Ingeniería Inversa
zilox 2 5,102 Último mensaje 10 Agosto 2016, 15:48 pm
por zilox
Guia para desempacar themida
Ingeniería Inversa
LukaCrosszeria 3 2,819 Último mensaje 12 Mayo 2019, 06:38 am
por apuromafo CLS
Desempackar Confuser 1.2
Ingeniería Inversa
virgilio2 1 21,781 Último mensaje 28 Marzo 2023, 23:59 pm
por MCKSys Argentina
[DUDA] Confuser 1.9 + .NetReactor
Ingeniería Inversa
Skurk52 1 6,844 Último mensaje 1 Agosto 2023, 01:33 am
por reymosquito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines