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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1]
1  Programación / Ingeniería Inversa / Unpackme difícil Themida v2.2.0.5 (Reto) en: 19 Junio 2018, 19:25 pm
Resulta que gracias a Dios os traigo una aplicación empacada con un themida en sus nuevas versiones, el objetivo principal es unpackearlo completamente y escribir un tutorial detallando cómo se encontró el OEP, cómo se arregla la IAT, y cómo se arreglan los stolen bytes de la aplicación.

Reglas:

- Se puede hacer uso de los scripts de LCT-AT
- Se puede hacer a mano
- Se pueden usar plugins para proteger vuestro olly de la detección del mismo
- ...

PD: Traceando un poco se puede llegar a encontrar el OEP específicamente en el registro EAX en modo FPU.

EAX = 00401000 -> OEP Found!

PD2: Acuérdense que la tabla de importaciones (IAT) está completamente destruida con saltos indirectos a la misma o a una sección del packer.

E9+API+Jump

Fixed

FF25-API-Jump

PD3: La aplicación está hecha en masm.

Link

https://mega.nz/#!2TIRjQTZ!rM3hb_bwWUsZctQjZ8YEmokBqeeb7u50YFGwD2zpdlU

Que Dios te bendiga, protega y acompañe.
2  Programación / Programación C/C++ / Ayuda con crackme en: 10 Junio 2018, 05:41 am
Necesito un poco de ayuda, si Dios lo permite, con este crackme.
El problema es a la hora de compilarlo no se puede.

Código
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <windows.h>
  6.  
  7. int main()
  8. {
  9.  char nombre[20];
  10.  char serial[20];
  11.  char vseril[20];
  12.  char vnombr[10] = "Crackme";
  13.  char vseria[10] = "100000";
  14.  
  15.  cout << "Ingrese su nombre:\n\r" << endl;
  16.  cin >> nombre;
  17.  cout << "Ingrese su serial\n\r" << endl;
  18.  cin >> serial;
  19.  system("CLS");
  20.  int ilen = nombre;
  21.  int slen = serial;
  22.  if(ilen > 5 && slen > 5)
  23.  {
  24.    MessageBox(NULL, "Nombre y serial como mínimo 5 caracteres.", "Error", MB_OK+MB_ICONEXCLAMATION);
  25.    exit 0;
  26.  elseif (strcmp(nombre, vnombr) && (strcmp(serial, vseria)))
  27.  {
  28.    MessageBox(NULL, "¡Felicidades!", "Bien", MB_OK+MB_ICONINFORMATION);
  29.    exit 0;
  30.  }
  31.  }
  32.   getch();
  33.   return 0;
  34. }
  35.  

Que Dios te bendiga, protega y acompañe.
3  Programación / ASM / Ayuda con esta aplicación en ensamblador en: 29 Mayo 2018, 19:46 pm
Resulta que esta aplicación hecha en ensamblador hace algunas llamadas, muestra un mensaje de texto utilizando la API MessageBox y puede detectar si hay algún depurador ejecutándolo.

El problema es a la hora de compilarlo con masm que arroja demasiados errores, y talvez haya cometido algún error decidmelo.

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap:none
  4.  
  5. include windows.inc
  6. include user32.inc
  7. include kernel32.inc
  8.  
  9. includelib user32.lib
  10. includelib kernel32.lib
  11.  
  12. .data
  13.  
  14. MsgBoxTitulo db "¡Importante! - Cristo te ama (:", 0
  15. MsgBoxMensaje db "Lista de archivos:", 13, 10, 13, 10, "- Dedicatoria.txt", 13, 10, "- Instrucciones.txt", 13, 10, "Contactarme.txt", 13, 10, "Archivos *.reg&.exe", 13, 10, 13, 10, "Autor: jJPHyES|CrackSLatinoS.", 13, 10, "Fecha: Martes 29 de Mayo, del 2018.", 13, 10, "Que Dios te bendiga, protega y acompañe.", 0
  16. MsgBoxIsDT db "¡Depurador detectado!", 0
  17. MsgBoxIsDM db "Deberías salir de vuestro depurador...", 0
  18.  
  19. .code
  20.  
  21. progasm01:
  22.          mov eax, [fs+0x18]
  23.          mov eax, [eax+0x30]
  24.          movzx eax, byte [eax+0x2]
  25.          cmp eax, TRUE
  26.          je isdebugpreasmd
  27.  
  28.          push 0
  29.          call FreeConsole, 0
  30.          push 0
  31.          push offset MsgBoxTitulo
  32.          push offset MsgBoxMensaje
  33.          call MessageBox
  34.          xor eax, eax
  35.          xor ebx, ebx
  36.          xor ecx, ecx
  37.          push 0
  38.          call ExitProcess, 0
  39.  
  40.          isdebugpreasmd:
  41.          push 0
  42.          push offset MsgBoxIsDT
  43.          push offset MsgBoxIsDM
  44.          call MessageBox
  45.  
  46.          end isdebugpreasmd
  47.  
  48. end progasm01

Editado: Que Dios te bendiga, protega y acompañe.
4  Programación / Ingeniería Inversa / Reto de unpacking difícil (VMProtect) en: 21 Mayo 2018, 22:15 pm
Bueno, como dice el título del tema este es un reto de unpacking enfocado solamente en VMProtect en una de sus versiones. Cabe destacar que VMProtect se caracteriza por liar un poco el trabajo de unpacking para los crackers.

Nota: He adjuntando también el programita completamente desempacado para que lo veáis, si Dios lo permite.

Enlace de descarga:

MEGA
https://mega.nz/#!36oDlQhY!TaFzeBB2AjVL1Y4CUmEizMkLixXaXqKPHg6A-Zazsjk

Que Dios te bendiga, protega y acompañe.


5  Programación / ASM / Agregar más lineas en un pequeño mensaje de texto (Ensamblador) en: 21 Mayo 2018, 02:03 am
El código en ensamblador es el siguiente:
Código
  1. push 0
  2. invoke FreeConsole, NULL
  3. push 0
  4. push addr MsgBoxTitulo
  5. push addr MsgBoxMensaje
  6. push MB_OK
  7. invoke MessageBox, NULL
  8.  

Nota: Lo que yo quisiera es que quede con más líneas como en c++
Código
  1. algo\ n\ r\ b
  2. algo\ n\ r\ b
  3. algo\ n\ r\ b
  4. algo...\ n\ r\ b.

Que Dios te bendiga, protega y acompañe.
6  Foros Generales / Sugerencias y dudas sobre el Foro / Warzone caído en: 13 Mayo 2018, 01:59 am
Que Dios te bendiga, protega y acompañe.

Quería empezar en el Warzone de vuestra página web, pero al parecer está caída o offline.
Quisiera que algún administrador o moderador me pudiera ayudar un poco.
7  Programación / Ingeniería Inversa / Tutorial acerca del crackme de SkaPunky en: 10 Mayo 2018, 19:46 pm
- Crackme Renascense por Skapunky -
-----------------------------------

Bueno, primeramente que Dios te bendiga, protega y acompañe. He decidido hacer
este tutorial acerca de cómo resolver el programita (crackme) de skapunky que
según la dificultad que le puso Shaddy o Karmany, es fácil, pero en realidad puede
resultar un poco complejo o difícil para algunos, como lo es en mi caso.

También quiero darle TODA LA GLORIA a Dios porque sin él yo no hubiera podido hacer nada.

Filipenses 4:13 dice:"Todo lo puedo en Cristo que me fortalece".
Proverbios 1:7 dice:"El principio de la sabiduría es el temor de Jehová o a Jehová...".

Nota: En este tutorial solo vamos hacer uso de nuestro depurador viejito y favorito llamado Ollydbg en su versión 1.10 final. También
haciendo uso de algunos plugins (extensiones) que serían solo Phant0m en su última versión ya que tiene protección para las breakpoints de olly y otras cositas más.

Enlaces de descarga de las herramientas necesarias:

Ollydbg 1.10 -> http://ollydbg.de/odbg110.zip
Phant0m 1.85 -> https://tuts4you.com/download.php?view.1276
                http://www.woodmann.com/collaborative/tools/index.php/PhantOm
Command Bar  -> http://www.openrce.org/downloads/details/105/commandbar
                https://tuts4you.com/download.php?view.40

Nota: En este tutorial aprenderemos dos maneras para poder resolver o en palabras viejitas crackear este programita llamado crackme de skapunky.
      La primera se supone que es la más fácil, que sería parchear el programa. Y la seguinda, sería la más difícil o compleja que sería encontrar o conseguir
      el "id" y "contraseña" válidos para poder registrar el programa correctamente y como se debe.


Primer manera de resolver el crackme:

Lo primero que se debe hacer es abrir nuestro depurador, que supongo que ya lo tenéis en vuestro pc, llamado Ollydbg.


Nota: Mi Ollydbg está así porque lo he personalizado un poco, pero vosotros también tenéis la posiblidad de hacerlo así o a vuestro gusto.

Ya cuando tengamos abierto nuestro depurador o ollydbg vamos a cargar nuestro programita o como diría ricardo narvaja nuestra víctima en ollydbg.
Vamos a Archivo->Abrir en inglés sería File->Open y cargamos nuestro programita.



Nota: Antés de cargar el programa, se me olvidada, tendréis que tener vuestro depurador o olly configurado con los plugins (extensiones) que ya os mencioné anteriormente.

Tendreís que configurar el directorio de los archivos o ficheros "basura" y el directorio de los plugins (extensiones), y ahí mismo pondréis los plugins que ya os dije con anterioridad.




Ahora, procederemos a configurar nuestro plugin (extensión) llamada Phat0m.
La configuraremos como se muestra en la siguiente imágen o captura de pantalla:



Bueno, ahora vamos a proceder a realizar la primera manera de resolver este crackme de skapunky.

Vamos a ver las referencias de texto del programa (crackme), y buscaremos las siguientes:

Producto registrado con exito, felicidades
Lo siento, password incorrecto"





Como se puede ver en las anteriores imágenes o capturas de pantalla, se puede ver algo que llama mucho la atención como
una API y una comparación y un salto. Lo que nos interesa, en este caso, si Dios lo permite es el salto para poder parchear el programa.
Lo único que se debe hacer es invertir el salto, de la siguiente manera:



Ahora, para poder obtener el programita parcheado se debe hacer lo siguiente como muestra las siguientes imágenes o capturas de pantalla:






Ahora, se debe proceder a probar que el programita este parcheado correctamente.



Ahora, con la ayuda de Dios se debe proceder a realizar la segunda manera de resolver este crackme; ésta es la más compleja o más difícil. Vamos a por ella.

Primero vamos a ver las APIS del programita (crackme) dándo CTRL + N en nuestro depurador o olly.



La que llama la atención es la API "vbaStrCmp" la cual hace una comparación entre dos cadenas de texto (Strings) o entre dos valores númericos (integers).

Se debe poner un BreakPoint en esa API haciendo uso del plugin (extensión) command bar, de la siguiente manera:


Ahora, ejecutamos el programa con F9, y se debe proceder a poner los datos necesarios que exige el programita (crackme).
En mi caso, puse como "id" el 7 y como contraseña "ska".

Vamos al stack (pila) para ver los dos strings comparados:



Como se puede ver se está comparando nuestra contraseña con la contraseña verdadera para poder registrar el programa, pero hace falta algo que es la "id" del programa.

Búsquemola un poco.



La "id" correspondiente a la contraseña serìa "165".

"id" sería 165.
"Pass" sería ska551650.
"id" sería 147.
"Pass" sería ska1561470.
ska
ska55165
ska551650
55
165
ska1561470
147
156

MOD: Imagenes adaptadas a lo permitido.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines