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


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 131
1  Programación / Ingeniería Inversa / Re: Ingenieria Inversa de Basic Ms-Dos en: 23 Julio 2020, 00:14
Y recuerdas cómo se llama el decompiler de pura casualidad?
Para una aplicación a 16 bits el desensamblador más conocido era W32DASM (Win32dasm) -¡Uff! si han pasado años-. Sobre el depurador, yo recuerdo que hice una aplicación con ¡Visual Basic for DOS! y supe depurarla con una app llamada Turbo Debugger -me costó tiempo aprender a manejarla-. Pero dejé de desarrollar mi programa por la obsolescencia de ese proyecto y hoy día una aplicación 16bits en Windows 10, por defecto, no funciona hasta activar NTVDM (Windows NT DOS Virtual Machine) y creo que en las versiones home no viene ni para activarlo.
Aunque si vas a analizarlo tal vez con IDA....
2  Programación / Ingeniería Inversa / Re: Monitor de archivos y registro en Windows 10 Resuelto en: 10 Julio 2020, 23:52
Otra herramienta que te gustará y que hace primeramente una captura de archivos y registro y después realiza otra captura de archivos y registro y finalmente te muestra en un archivo txt o html el resultado de las modificaciones que se han producido.
Regshot: https://sourceforge.net/projects/regshot/
3  Programación / Ingeniería Inversa / Re: Saltarse truco antidebug de Windows 10 en: 1 Junio 2020, 12:26
Te acabo de leer ahora.
Es muy interesante, cuando lo tengas postéalo si no te importa.
Muchas gracias.
4  Foros Generales / Dudas Generales / Re: Error (0xc0000005) en: 10 Abril 2020, 23:35
Aunque ya hayas solucionado tu problema (primeramente muchas gracias por comentar dónde estaba el fallo), quisiera añadir que en mi experiencia con ingeniería inversa yo he recibido muchas veces el error  (0xc0000005) y este error se producía cuando alguna API del programa no se cargaba al iniciar la aplicación porque no existía. También me pasó una vez con un programa que, seguramente, por el mismo fallo que acabo de comentar, se ejecutaba correctamente en Windows XP pero en Windows 10 daba este error.
Si te ha saltado ese error podría ser que el virus necesitara una API que no tienes, así que podría ser que no se haya ejecutado y no te haya llegado a infectar.
No estaría de más pasarle el: Adwcleaner
https://es.malwarebytes.com/adwcleaner/
5  Programación / Ingeniería Inversa / Re: Se puede crackear o parchar este programa. en: 2 Abril 2020, 21:20
En este foro nuestras normas son claras: no se pueden pedir cracks ni seriales de un programa comercial.
Me veo en la obligación de cerrar el tema al ser una solicitud tan explícita.
Un saludo.
6  Foros Generales / Foro Libre / Re: Hasta siempre Papá en: 21 Marzo 2020, 20:30
Mucho ánimo amigo.
Lo siento mucho.
7  Foros Generales / Dudas Generales / Re: [Python] ¿Qué me recomiendan para aprender?. en: 19 Marzo 2020, 21:01
También te recomiendo este enlace de Curso de Python desde cero realizado por Ricardo Narvaja. Aunque el curso tiene años y en algunos capítulos está orientado a ingeniería inversa, el curso te servirá.
http://ricardonarvaja.info.info/WEB/OTROS/PYTHON%20DESDE%20CERO/
8  Programación / Ingeniería Inversa / Re: Ayuda!!!! en: 9 Enero 2020, 19:31
Al inicio de este foro tienes 5 mensajes fijos con muchísima información y miles de tutoriales para iniciarte en la ingeniería inversa. Para buscar información que te pueda ayudar debes intentar saber con qué ha sido compilado.
¿Qué te dice RDG Packer Detector? ¿Te deja abrirlo con OllyDBG o x64dbg? Pon una captura del código desensamblado en el inicio (Entry Point), igual tenemos una idea...
9  Programación / Ingeniería Inversa / Re: [Reto] Crackme Loki-Mouse Flamer en: 30 Agosto 2019, 00:01
Bueno, para que la gente se anime a estudiar el Crackme me he propuesto analizarlo y crear un sencillo Keygen.
Para el keygen, aunque valen muchos caracteres, solo voy a usar números para evitar poner muchas condiciones en el código fuente. Pongo un enlace al final con el código fuente del keygen, el exe del mismo y una copia del crackme por si desapareciera en un futuro.

Carga el crackme en un depurador, yo lo hice con varios, pero para explicarlo lo hago con OllyDBGv2 en W10. Lo primero que llama la atención es que pesa muchísimo para el poco código que lleva, a ver si Flamer nos comenta el porqué.

Encontrar el código es sencillo buscando en las strings: botón dcho > search for > all referenced strings. Así se llega rápido al código.

Explicación del código
Código
  1. 00401700  cmp eax,0A
Nos indica que el serial tiene que tener exactamente 10 caracteres:
XXXXXXXXXX

El primer valor, voy a poner uno cualquiera: "1" = 31h
1XXXXXXXXX

Aquí trabaja con valor1 y valor6:
Código
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 00401750  |.  83E8 60       sub eax,60
  4. 00401753  |.  8945 DC       mov dword ptr ss:[ebp-24],eax
  5. 00401756  |.  837D DC 08    cmp dword ptr ss:[ebp-24],8
  6. 0040175A  |.  0F8E 62020000 jle 004019C2

En esa parte hace estas operaciones (todo en HEX):
valor6 + valor1 - 60 > 8; valor6 + 31h - 60h > 8h;
valor6 > 37h; Por lo tanto, valor6 = 38h ("8") o 39h.
1XXXX8XXXX

El valor 2 es un número aleatorio entre 0 y 9. Pongo por ej 7:
17XXX8XXXX

Un poco más adelante, empieza a realizar un montón de operaciones con los valores 1, 2, 6 desde 4017E3 hasta 401818. En este ejemplo, poniendo en el depurador el serial anterior, y BP en 401818, el resultado en eax de esas operaciones es: 6

Ahora volvemos a analizar un poco más arriba y verás que resta 30h al valor5 en 4017D7 y la comparación en 401821 compara el 6 del párrafo anterior con esto último:
valor5 = 6 + 30;
valor5 = 36h = "6"
17XX68XXXX

valor3 tiene que ser menor que 33h, mira en:
Código
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 00401861  |.  837D CC 32    cmp dword ptr ss:[ebp-34],32
  4. 00401865  |.  7F 73         jg short 004018DA
valor3 puede ser 32h("2"), 31h("1") o 30h("0")
172X68XXXX

valor4 tiene que ser mayor que 35h, mira en:
Código
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 00401867  |.  837D C8 35    cmp dword ptr ss:[ebp-38],35
  4. 0040186B  |.  7E 6D         jle short 004018DA
valor4 puede ser 36h, 37h, 38h o 39h.
172668XXXX

Y los 4 últimos caracteres pueden ser cualquier valor:
172668FORO

Dejo el código fuente que he realizado para el keygen, en Visual C++ 2019:
Código
  1. // Keygen Loki-Mouse.cpp
  2. //
  3.  
  4. #include <iostream>
  5. #include<time.h>
  6. #include <sstream>
  7.  
  8. using namespace std;
  9.  
  10. int codigo_asm(int num1, int num2)
  11. {
  12. int resultado;
  13. _asm
  14. {
  15. mov eax, num1
  16. mov edx, num2
  17. imul edx
  18. sar edx, 2
  19. mov eax, num1
  20. sar eax, 0x1F
  21. sub edx, eax
  22. mov num2, edx
  23. shl edx, 2
  24. add edx, num2
  25. add edx, edx
  26. mov eax, num1
  27. sub eax, edx
  28. add eax, 0x30
  29.  
  30. mov resultado, eax
  31. }
  32.        return resultado;
  33. }
  34.  
  35. int main()
  36. {
  37. int numHex = 0x00;
  38. int hexCaracter[11] = {};
  39. string caracter[11] = {};
  40.  
  41. srand(time(NULL)); //Inicializa números aleatorios
  42.  
  43. cout << "Keygen Crackme Loki-Mouse\n==========================\n\n";
  44.  
  45. cin.clear();
  46. cout << "Para generar autom\240ticamente un serial v\240lido, pulsa una tecla...";
  47. cin.ignore();
  48.  
  49. // El serial tiene que tener exactamente 10 caracteres
  50.  
  51. // ----------------
  52. // Caracteres 1 y 6
  53. // ----------------
  54.  
  55. // El carácter 1 va a ser un número aleatorio entre el 0(30hex) y 9(39hex):
  56. hexCaracter[1] = 0x30 + rand() % (10);
  57.  
  58. // El carácter 6 responde a esta fórmula: c6 + c1 - 60 > 8; c6 > 68 - c1;
  59. hexCaracter[6] = 0x69 - hexCaracter[1]; // Este es el primer valor válido
  60. hexCaracter[0] = 0x39 - hexCaracter[6]; //Número de valores también válidos hasta el 9 (39h)
  61. if (hexCaracter[0] != 0)
  62. {
  63. hexCaracter[6] = hexCaracter[6] + rand() % hexCaracter[0]; //Calcula aleatoriamente un valor válido entre todos los posibles.
  64. }
  65.  
  66. // ----------
  67. // Caracter 2
  68. // ----------
  69. // Un número aleatorio entre 0 y 9
  70. hexCaracter[2] = 0x30 + rand() % (10);
  71.  
  72. // -----------------------------------------
  73. // Realiza operaciones en ASM con C1, C2, C6
  74. // -----------------------------------------
  75. hexCaracter[0] = hexCaracter[2] + hexCaracter[1] + hexCaracter[6] - 0x90;
  76.  
  77.  
  78. // ----------
  79. // Caracter 5
  80. // ----------
  81. hexCaracter[5] = codigo_asm(hexCaracter[0], 0x66666667);
  82.  
  83. // ----------
  84. // Caracter 3
  85. // ----------
  86. // Tiene que ser < 33h
  87. hexCaracter[3] = 0x30 + rand() % (2);
  88.  
  89. // ----------
  90. // Caracter 4
  91. // ----------
  92. // Tiene que ser > 35h
  93. hexCaracter[4] = 0x36 + rand() % (3);
  94.  
  95. // --------------------
  96. // Caracter 7, 8, 9, 10
  97. // --------------------
  98. // Cualquiera, yo voy a usar solo números, pero vale cualquier otro carácter
  99. for (int i = 7; i < 11; i++)
  100. {
  101. hexCaracter[i] = 0x30 + rand() % (10);
  102. }
  103.  
  104.        // Convertir números en cadena de texto y mostrarlos en pantalla
  105. for (int i = 1; i < 11; i++)
  106. {
  107. caracter[i] = hexCaracter[i];
  108.        cout << caracter[i];
  109. }
  110.  
  111. cout << "\n";
  112. system("pause");
  113. return 0;
  114. }
  115.  

Y aquí la descarga:
Descargar Keygen desde Mega

Muchas gracias Flamer por el reto
10  Programación / Ingeniería Inversa / Re: Se Puede Sacar Codigo 2 .exe en: 7 Junio 2019, 15:18
Como dice .:UND3R:. tienes que mostrarnos tus avances, tus archivos hacen saltar muchos antivirus y un/a usuario/a ha reportado este hilo.
Si no muestras tus avances, en un tiempo tendremos que eliminar tus descargas por posible malware.
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 131
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines