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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Temas
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 39
191  Programación / Ingeniería Inversa / [F.A.Q] ¿Eres nuevo? - Aprende Ingeniería Inversa desde cero en: 25 Noviembre 2011, 01:31 am
F.A.Q Ingeniería inversa

última modificación: 13/06/2018

Introducción
El siguiente hilo contiene una recopilación de toda la información necesaria para poder indagar en el mundo de la Ingeniería Inversa sin poseer algún tipo de conocimientos previos, se sugiere considerablemente la lectura de este hilo antes de postear dudas en el sub-foro. El autor de esta recopilación de información no se responsabiliza por el mal uso que se brinde de este.

Reglas
Reglas generales del foro elhacker.net:
Clic aquí para ver las reglas

Las reglas del subforo Ingeniería Inversa:
-Los mensajes con pedidos de serial, crack, warez, etc. serán eliminados sin previo aviso.
-Los mensajes alusivos a programas comerciales serán eliminados sin previo aviso.


Preguntas frecuentes (F.A.Q)

-¿Qué es ingeniería inversa?

Citar
El objetivo de la ingeniería inversa es obtener información o un diseño a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado. Hoy en día los productos más comúnmente sometidos a ingeniería inversa son los programas.
para más información clic Clic aquí

-¿Qué es un cracker?
Se suele referir a una persona como cracker cuando:
Citar
Mediante ingeniería inversa realiza: seriales, keygens y cracks, los cuales sirven para modificar el comportamiento o ampliar la funcionalidad del software o hardware original al que se aplican, y se los suele utilizar para saltearse restricciones como por ejemplo que un programa deje de funcionar a un determinado tiempo, o que sólo funcione si es instalado desde un CD original, etc.
para más información clic Clic aquí

-¿Como empezar desde cero?
Para empezar desde cero con el arte de la Ingeniería inversa podemos estudiar los siguientes tutoriales:
-Tutorial:Introducción al cracking con OllyDBG desde cero
 Autor: Ricardo narvaja
 Link del tutorial:Clic aquí

-Tutorial:Introducción al reversing con IDA desde cero
 Autor: Ricardo narvaja
 Link del tutorial:Clic aquí

-Tutorial:Taller de cracking desde cero
 Autores:Shaddy-karmany
 Link del tutorial:Clic aquí

-Informativo:Guía para los que comienzan
 Autor:Apuromafo
 Link del tutorial:Clic aquí

-¿Donde encuentro herramientas?
Opción 1 foro:Clic aquí
Opción 2 web:Clic aquí

-¿De qué manera puedo estar al día con la ingeniería inversa?
Noticias:Clic aquí

-¿Donde encuentro información sobre temas interesantes que se hayan tratado en el foro?
Temas destacados:Clic aquí

-¿Donde encuentro crackme's, keygenme, unpackmes, etc.?
Contamos con un post con una gran diversidad de crackmes y keygens.
Clic aquí

-¿Retos de script's?
Los retos de script pueden ser de gran ayuda, ya que nos permiten practicar la creación y optimización de esta potente herramienta.
Clic aquí

-¿Donde buscar tutoriales?
Pare encontrar tutoriales, contamos como primera opción la página de Ricardo narvaja, en ella se encuentra una gran cantidad de contenido que pueden facilitarnos para lograr un objetivo.
opción 1:Clic aquí
opción 2:Clic aquí

-¿Como pedir un crack?
En primera instancia está absolutamente prohibido pedir un crack, si deseas conseguir uno hay un post especialmente dedicado a ello:Clic aquí
El subforo de ingeniería inversa, brinda ayuda a aquellos que se han quedado atascado en la obtención de un serial o crack,etc. Es decir aquellos usuarios que tienen un interés por aprender y entender el porqué de las cosas.

-¿Es necesario manejar algún lenguaje de programación sobre todo ASM para comenzar a crackear?
Esta es una de las preguntas más comunes planteadas por los usuarios o visitantes, La respuesta es NO ES NECESARIO aun que si es un complemento fundamental para un mejor entendimiento del código a reversear, es decir no se necesita manejar el lenguaje de manera directa ni mucho menos saber programar en ASM, tan solo se necesita conocer APIS o nemónicos de instrucciones importantes como operaciones booleanas o instrucciones de saltos condicionales, estas son claramente explicadas en el documento: "Introducción al cracking desde cero" por lo que para poder comenzar a crackear no se requiere conocimientos previos.
(*La adición de conocimiento y experiencia facilita el estudio y el entendimiento del porqué de las cosas pero aun así no es un requerimiento, de todas maneras puedes aprender haciendo clic aquí).

-¿Cual es el Sistema operativo(SO) más óptimo para reversear(crackear) programas?
En cuanto al depurador OllyDbg fue diseñado primerizamente bajo la plataforma de Windows XP de 32 bits, aun así es compatible para el SO Windows 7, de todas formas es recomendable utilizar XP, en caso de no disponer de tal SO se puede montar una máquina virtual:
Vmware player:Clic aquí
Virtualbox:Clic aquí

Citar
Si van a usar vm de virtualbox tengan tildado en "aceleración" VT-x and AMD-V
esto permitirá usar hw bp, yo hoy bajé un sp3 y tildé aquella opción y ando testeando mis scripts funcionando sin problema (no como antes)

de lo contrario no podrán usarlo, esto es debido al registro dr5 y 6 que por defecto guarda cierto valor fijo, al tildar aquella opción usa otro módulo para guardar algun valor relacionado
puede confirmarse en tickets como
https://www.virtualbox.org/ticket/477
https://www.virtualbox.org/ticket/11302).

Apuromafo

-¿El estudio y conocimientos de protecciones de crackme's se podrían llevar a un programa comercial?
Claramente es posible aplicar los estudios y conocimientos pero generalmente nunca de manera directa, esto debido a que cada programa es diseñado por un programador distinto, por ende cada software posee un sistema de seguridad diferente, aunque si se pueden tomar ideas generalizadas que pueden ser muy útil en el logro de un objetivo.

-¿Cómo plantear una pregunta de manera correcta sin incumplir las normas del foro?
Las preguntas planteadas en este subforo generalmente carecen de información, esto por causa de querer evitar incumplir las normas. Se es muy difícil poder analizar un ejecutable al cual no poseamos o desconozcamos su nombre, por lo que subir el instalador nos sería de gran ayuda. Al igual que las preguntas mal redactadas, sin avances o sin intentos, debemos saber que redactar las opciones fallidas pueden ser muy útiles para aquellos usuarios que intentan solventar las preguntas, ya que se optimiza el tiempo en cuanto al análisis del ejecutable y descarte de posibilidades.
(*Se pide no aludir al nombre o empresa del programa dentro del post)

-He adquirido un programa comercial, el cual me exige la utilización de un pendrive (dongle) para que este se pueda ejecutar ¿Cómo podría ejecutar el programa sin utilizar dongles?
En el siguiente hilo, Karmany nos explica con lujo y detalle las diferentes formas de emular dongles (según el modelo de este):
Clic aquí
192  Programación / Ingeniería Inversa / Protección de copiado de CD en: 24 Noviembre 2011, 07:27 am
Protecciones de copiado de CD:

Estaba googleando y me he topado con algo que desconocía y es los tipos de protecciones que tiene un CD para evitar ser copiados, yo conocía por lógica el de agregar una sección dañada y que esta deba estar para que pueda funcionar el CD
Desconozco completamente del tema, pero me pareció interesante compartir algo nuevo...

Los sistemas de protección anti-copia para CD, son relativamente nuevos. Son posteriores a la puesta en el mercado de las unidades de CD, ya que un un principio estas no provocaron un boom debido a su escasa velocidad de lectura, con la aparición de las unidades de 4x, los freakers (piratas) comenzaron a copiar masivamente el software a este tipo de soporte, sabiendo donde buscar, una persona podía adquirir uno de estos CDs con más de 100 programas por un precio infinitamente inferior al precio de todo el software que contenia. Posteriormente con la aparición de las consolas; PSX y Saturn basicamente, la pirateria se multiplicó. Las grandes casas de software decidieron entrar en combate y como no, una vez más idearon diversos sistemas de protección para su preciado software. Existen varios tipos de protección de CDs:

Protecciones usando huellas digitales o marcas láser:

SecuROM: SecuROM es un sistema patentado por Sony que identifica al verdadero CD-ROM con un sistema de autentificación especial. Durante el proceso de masterización del DADC una huella digital electrónica es aplicada en la capa de plástico que asigna un numero a cada CD-ROM.

Identificación: Uno de estos ficheros debe estar en el directorio de instalación o en el directorio raíz del original.

Código:
CMS16.DLL
CMS_95.DLL
CMS_NT.DLL

Nota: En las últimas versiones de esta protección, estos ficheros no estan en ningún directorio, sino que se encuentran almacenados en una de las secciones del ejecutable.

El CD deberá contener este logotipo en el aro interior .

Eliminación: Existen varios parches genéricos creados por Pedro del grupo Laxity, que funcionan con algunas versiones de esta protección. Para la eliminación manual consulta el tutorial sobre la protección SecuROM.

http://club.myce.com/f81/illustrated-guide-copying-securom-7-rmps-emulation-144003/

SafeDisc C-Dilla: Es un sistema de protección basado en software que no requiere cambios en los sistemas hardware. Consiste en la combinación de una firma digital incrustada en el disco y una cifrado multicapa del ejecutable que asegura el contenido del CD. La firma digital que no es posible copiar con una CD-R es introducida mediante el láser durante la masterización del CD. Esta protección a sido creada por la compañia C-dilla, propiedad de Macrovision Corporation.

Identificación: Los siguientes ficheros existen el el CD original:

Código:
00000001.TMP
CLCD16.DLL
CLCD32.DLL
CLOKSPL.EXE

El icono del archivo clockspl.exe es un CD tachado con dos barras. Actualmente se conocen varias versiones de esta protección y en las últimas los ficheros mencionados anteriormente ya no existen.

Eliminación: Existe tambíen un programa creado por BlackChecks y otro creado por R!sc que usando fuerza bruta, consiguen obtener una copia funcional del ejecutable original, partiendo incluso de la copia. Para la eliminación manual de este protección, consulta los tutoriales sobre la protección C-Dilla.

LaserLock: Protección que usa una combinación de cifrado de software y marca láser en la superficie del CD creada durante un proceso de masterización especial. Cada aplicación tienen un parámetro de cifrado diferente.

Identificación: El CD original contiene un directorio oculto llamado LASERLOCK. En este directorio hay archivos con errores de lecturas. En las últimas versiones este directorio ya no existe.

Eliminación: Para la eliminación manual de este prot ección, consulta el tutorial sobre la protección LaserLock.

Protect-CD: Protección creada por VOB, para más info consulta el tutorial sobre la protección Protect-CD.

CD-Cops: Protección creada por Link Data Security y Spinner Software, es una protección añadida al ejecutable principal del CD. Las diferencias de tiempo son medidas para establecer una huella digital y para asegurar que no se pueda copiar.La huella habitualmente es expresada como un código de 8 dígitos o como un número clave.

Eliminación: Para la eliminación manual de este protección, consulta el tutorial sobre la protección CD-Cops.

DiscGuard: Protección creada por TTR Technologies Inc. Este sistema realiza dos cambios básicos en el software:

Los ejecutables principales están cifrados.
Una marca digital especial está inscrita en el disco esta marca contiene una llave de desencriptación de software. La marca digital no es reproducible mediante copia.

Cuando un disco original es utilizado, la firma está presente, la desencriptacion se produce y la aplicacion funciona. Cuando es una copia, la firma no está presente, no existe desencriptación y la aplicación no funciona, en su lugar un mensaje, una pequeña demo, un link a una web comercial o una presentación aparecen, transformando cada copia ilegal en una herramienta de marketing.

Protecciones mediante la alteración de la estructura del CD o de los datos de este:

Oversize: Algunos programas ocupan mas de 660 Mb y estos no pueden ser copiados por la mayoría de CDR's que no están preparadas para copiar mas de 659 Mb en un CD de 74 minutos. Con la aparición de los CD's de 80 minutos esta protección ya no es efectiva.

Illegal TOC: Esta protección se reconoce mirando las pistas del CD. Normalmente aparece una segunda pista de datos (después de algunas de audio). Las normas estándar CD ISO no permiten eso, de ahí el nombre Tabla de contenidos ilegal. Actualmente, todos los programas de duplicación de CD incluyen una opción para ignorar esta alteración, por lo que ya no es efectiva.

Dummy Files: Esta protección crea archivos falsos que señalan aleatoriamente a una parte del CD usada por otros archivos. Cuando se copia el contenido del CD al disco duro la imagen es mucho mas grande que el tamaño de las pistas originales (normalmente las pistas parecen tener 2 Gb). Esta protección suele aparecer en combinación con la de Oversize. Para saltarse esta protección, si el original tiene menos de 659 Mb, hacer una copia directa (DAO/TAO) y recreara los archivos en el CD copiado.Cuando el CD tenga mas de 659 Mb hacer lo mismo mediante overburning o usar un CD de 80 minutos.

Sectores Ilegibles: Este sistema es facilmente reconocible por aparecer un aro en el CD. Este aro es una sección del CD "estropeada" dentro hay unos ficheros que no se usan en el juego, pero que el programa testea que estén y que no son posibles copiar. Las posibles maneras de saltarse esta protección son dos, usar el LeeTodo/BlindRead o volcar el contenido del CD y crear los ficheros con cualquier editor de texto con la extension del fichero corrupto.

Link's:
bypass Star force:
http://club.myce.com/f80/starforce-bypass-method-without-unplugging-162993/

http://fileforums.com/showthread.php?t=74851

info: http://www.prysmax.com/forum/windows/1841-como-saltear-proteccion-securom-7-a.html

http://es.wikipedia.org/wiki/SecuROM

Saludos
193  Programación / ASM / Duda con resultado de las siguientes instrucciones en: 22 Noviembre 2011, 20:32 pm
Hola tengo los siguientes datos:

Código
  1. misBytes     BYTE   10h,20h,30h,40h
  2. misPalabras WORD 8Ah,3Bh,72h,44h,66h

y la siguiente instrucción:
Código
  1. mov esi, OFFSET misBytes
  2. mov ax,WORD PTR [esi]                      ; a.AX =
  3. mov eax,DWORD PTR misPalabras       ; b.EAX =

Cuales son los valores de AX y EAX en sus respectivas líneas?
en la pregunta a yo creo que AX = 4030h debido que el procesador trabaja en little endian, por eso los dos valores finales del arreglo misBytes
en la b creo que EAX = 6644723B8Ah

a ver si me pueden aclarar, que dudo de las respuesta de la tapa de mi libro

Saludos
194  Programación / ASM / Duda con la bandera de desbordamiento en: 21 Noviembre 2011, 16:23 pm
Hola a todos, tengo la siguiente duda con la bandera de desbordamiento (OF)

tengo dos instrucciones:
mov ax,7FF0h
add al,10h     ; CF=1 SF=0 ZF=1 0F=0

 11110000
 00010000
100000000

mov al,80
add al,80       ; CF=1 SF=0 ZF=1 0F=1

 10000000
 10000000
100000000

Mi duda es por qué la diferencia, tengo entendido que es el resultado de un xor del bit que es acarreado a MSB con el que bit que se acarrea hacia a fuera de MSB

por lo que en ambos sería xor 1,0 (1=bit acarreado hacia afuera de MSB y 0=bit acarreado hacia MSB) por lo que en resumen en ambos casos se activaría la bandera OF

Saludos
195  Programación / ASM / Por que esta instrucción no es válida? en: 18 Noviembre 2011, 17:46 pm
1)He aquí la instrucción:

Código
  1. mov ds, 1000h


2)Otra cosa, un programa en modo protegido mov puede tener como destino registros de segmento exceptuando a CS?

Saludos

EDIT:

3) movzx var2,al    ; es válida??? var2 WORD 1000h (yo creo que sí)


196  Programación / ASM / Posición de las constantes simbólicas en: 18 Noviembre 2011, 01:40 am
Pues eso, donde van las constantes simbólicas? (=, EQU,TEXTEQU)
(Recién me inicio)

Ejemplo tomado de un libro:

Código
  1. TITLE Resta  (Resta.asm)
  2. ; este programa resta enteros de 16 bits
  3. ; y almacena el resultado en una variable
  4. ; luego muestra los registros
  5.  
  6. INCLUDE Irvine32.inc
  7.  
  8. .data
  9. var1       word 40000h
  10. var2       word 20000h
  11. var3       word 10000h
  12. var4       word   500h
  13. Resultado  word ?
  14.  
  15. .code
  16.  
  17. main PROC
  18.     mov eax,var1      ; EAX valdrá 40000h
  19.     sub eax,var2      ; sustrae a EAX 20000h
  20.     sub eax,var3      ; sustrae a EAX 10000h
  21.     sub eax,var4      ; sustrae a EAX 500h
  22.     mov Resultado,eax ; mueve a Resultado el contenido de EAX
  23.     call DumpRegs
  24.     exit
  25. main ENDP
  26. END main

entre INCLUDE Irvine32.inc y .data?

EDIT: creo que en después de .code también pueden ir

Saludos
197  Programación / Ingeniería Inversa / Solución crackme v2 ASM cibergolen en: 16 Noviembre 2011, 00:10 am
Datos importantes:
El Usuario debe cumplir los siguientes requisitos:
-6 caracteres como mínimo
-letras solo en mayúsculas
-letras entre la "A" a la "K"

Si traceamos un poco notaremos funciones muy importantes dentro del crackme:
Citar
004015A5  |.  E8 0AFDFFFF   |CALL CrackMe_.004012B4
004012BD  |.  83E8 30       SUB EAX,30                         ; resta a cada valor de ID 30
004015AA  |.  35 4D000000   |XOR EAX,4D                        ; realiza un XOR 4D con el resultado de la resta anterior
004015AF  |.  8981 C8404000 |MOV DWORD PTR DS:[ECX+4040C8],EAX ; mueve el resultado

Esto quiere decir que si introducimos como serial ABCDEF

Ocurrirá lo siguiente:
A    B   C    D    E    F   (Serial introducido)
41  42  43   44  45  46  (Serial en hexadecimal)

Resta a cada valor del ID 30

41-30 42-30 43-30 44-30 45-30 46-30  (Operación)
11      12     13      14      15      16       (Resultado)

Luego realiza un xor con cada valor modificado(- 30) de la ID con 4D
x XOR 4D

XOR 11,4D
XOR 12,4D
XOR 13,4D
XOR 14,4D
XOR 15,4D
XOR 16,4D

Nos dará como resultado lo siguiente:

A  B  C  D  E  F
5C 5F 5E 59 58 5B

Si seguimos traceando llegaremos a otra función muy interesante:
Citar
004015CB  |.  E8 F8FCFFFF   |CALL CrackMe_.004012C8
004012D1  |.  83F0 4A       XOR EAX,4A                         ; realiza un XOR 4A con el contenido de [ECX+4040C8] (izquierda a derecha)
004015D1  |.  8882 48414000 |MOV BYTE PTR DS:[EDX+404148],AL   ; mueve el resultado
*En los comentarios podemos ver que realizará

XOR 5C,4A

XOR 5F,4A

XOR 5E,4A

XOR 59,4A

XOR 58,4A

XOR 5B,4A

obtendremos como resultado:
5C 5F 5E 59 58 5B
15 14 13 12 11 4A

Suma todos los caracteres=A9 (15 14 13 12 11 4A)

Suma todos los caracteres=195 (A B C D E F)
(41+42+43+44+45+46)

Fórmula del serial:

Usuario: ABCDEF
Clave: 6566676869706656667-87-1071

-Cada carácter es pasado de hexadecimal a decimal:
ABCDEF:
41=65
42=66
43=67
44=68
45=69
46=70

65 66 67 68 69 70

concatena (strcat) el número de caracteres del USUARIO

65 66 67 68 69 70 6

concatena las tres primeras letras del USUARIO

65 66 67 68 69 70 6 65 66 67

*NOTA: Copia hasta 70 (F) y lo concatena como 07
explicación:
si introducimos como serial DFGHJK el serial hasta lo explicado será de la siguiente manera:

68 70 71 72 74 75 6 68 7

verde=usuario convertido a decimal
naranja=nº de caracteres del usuario
rojo=concatena 68 7 lo lógico sería 68 70 71 pero concatena hasta 70 y no considera el 0 es decir 68 07.

Si el tercer carácter fuese una F quedaría de la siguiente forma:
ABFDEF 656670686970 6 65 66 7

luego concatena A9 en decimal (suma de todas los caracteres modificados, explicado anteriormente)

*Aclaramos que los números hexadecimales menores o iguales a 7 son positivos y mayor o igual a 8 son negativos por lo que A9 es un número negativo

FFFFFFA9 (DWORD)

por lo que quedará en negativo, nunca había visto un serial que utilizara el signo de un número como guiones intermedios.

quedando:
6566676869706656667-87

últimamente concatena FFFFF195 en decimal:
obteniendo:
6566676869706656667-87-1071

NOTA:Si el primer carácter es una F cambia queda de la siguiente manera la fórmula

ID usuario en decimal+último carácter de ID de usuario en decimal+suma de caracteres mod + suma de caracteres.

Gráfico de fórmula general:
00404010  41 42 43 44 45 46 06 41 42 43  A9 95 01 
ID......................................|
                                  LEN ID..|
                                  3 Dígitos ID........|
                                                  Suma MOD|suma ID|

KEYGEN:

El keygen está hecho en OllyScript tiene un solo error y es que cuando muestra el serial antepone un 0, solo permite 6 caracteres, ni más ni menos (el error y la restricción se debe a que OllyScript no es un lenguaje muy fuerte), una vez mostrado el ID y SERIAL, estos son guardados en un documento .txt (ubicado en el path del mismo crackme) para su fácil copia al crackme

Código
  1. VAR VAR70
  2. VAR VF
  3. VAR VALLOC3
  4. VAR LEN_AUX
  5. VAR AUX_N
  6. VAR AUX_W
  7. VAR CONTADORU
  8. VAR CONT_FIN
  9. VAR AUX_Z
  10. VAR VALLOC9_
  11. VAR AUX__2
  12. VAR VALLOC_TAM2
  13. VAR VALLOC_TAM
  14. VAR VALLOC___
  15. VAR COMPS
  16. VAR CONT4_
  17. VAR AUX_3
  18. VAR AUX_2
  19. VAR CONTMOD
  20. VAR VALLOC_
  21. VAR AUX_
  22. VAR AUX
  23. VAR AUX2
  24. VAR VALLOC
  25. VAR VALLOC
  26. VAR CARACTERES
  27. VAR RESP
  28. PREGUNTA:
  29. ASK "Introduzca su ID (en mayúsculas, solo letras de la A a la K, seis caracteres)."
  30. MOV RESP,$RESULT
  31. CMP RESP,0
  32. JE EXIT
  33. EVAL "{RESP}"
  34. LEN $RESULT
  35. MOV CARACTERES,$RESULT
  36. CMP CARACTERES,6
  37. JNE ERROR1
  38. ALLOC 50
  39. MOV VALLOC,$RESULT
  40. MOV VALLOC2,VALLOC
  41. MOV VALLOC3,VALLOC
  42. CMP 0,VALLOC
  43. JE ERROR2
  44. EVAL "{RESP}"
  45. MOV [VALLOC],$RESULT,CARACTERES
  46. BUCLE:
  47. MOV AUX2,[VALLOC2],1
  48. CMP AUX2,0
  49. JE CONTINUAR
  50. ADD AUX,AUX2
  51. INC VALLOC2
  52. JMP BUCLE
  53. CONTINUAR:
  54. CMP [VALLOC],46,1
  55. JE CONTINUAR2
  56. MOV [VALLOC2],CARACTERES,1
  57. JMP CONTINUAR2_
  58. CONTINUAR2:
  59. ADD VALLOC3,CARACTERES
  60. DEC VALLOC3
  61. MOV VALLOC3,[VALLOC3],1
  62. MOV [VALLOC2],VALLOC3,1
  63. MOV VF,1
  64. JMP CONTINUAR3
  65. CONTINUAR2_:
  66. INC VALLOC2
  67. MOV [VALLOC2],[VALLOC],3
  68. CONTINUAR3:
  69. MOV VALLOC2,VALLOC
  70. ALLOC 50
  71. MOV VALLOC_,$RESULT
  72. MOV VALLOC_2,VALLOC_
  73. SUB CARACTERES,1
  74. INC VALLOC2
  75. CONTINUAR3_:
  76. MOV AUX_,[VALLOC2],1
  77. CMP CONTMOD,CARACTERES
  78. JE CONTINUAR4
  79. SUB AUX_,30
  80. XOR AUX_,4D
  81. XOR AUX_,4A
  82. MOV [VALLOC_],AUX_
  83. INC VALLOC2
  84. INC VALLOC_
  85. INC CONTMOD
  86. JMP CONTINUAR3_
  87. CONTINUAR4:
  88. MOV [VALLOC_],4A
  89. INC CARACTERES
  90. CONTINUAR4_:
  91. CMP CONT4_,CARACTERES
  92. JE CONTINUAR5
  93. MOV AUX_2,[VALLOC_2],1
  94. ADD AUX_3,AUX_2
  95. INC VALLOC_2
  96. INC CONT4_
  97. JMP CONTINUAR4_
  98. CONTINUAR5:
  99. ALLOC 50
  100. MOV VALLOC_TAM,$RESULT
  101. MOV VALLOC_TAM2,VALLOC_TAM
  102. MOV [VALLOC_TAM2],AUX
  103. MOV AUX,[VALLOC_TAM2],1
  104. INC VALLOC_TAM2
  105. MOV AUX__2,[VALLOC_TAM2],1
  106. CONTINUAR5_:
  107. ALLOC 50
  108. MOV VALLOC___,$RESULT
  109. MOV [VALLOC___],#FFFFFF#,6
  110. ADD VALLOC___,3
  111. MOV [VALLOC___],AUX
  112. SUB VALLOC___,3
  113. MOV AUX,[VALLOC___]
  114. REV AUX
  115. MOV AUX,$RESULT
  116. ITOA AUX, 10.
  117. MOV AUX,$RESULT
  118. CONTINUAR6:
  119. ALLOC 50
  120. MOV VALLOC9_,$RESULT
  121. MOV [VALLOC9_],#FFFFFF#,6
  122. ADD VALLOC9_,3
  123. MOV [VALLOC9_],AUX_3
  124. SUB VALLOC9_,3
  125. MOV AUX_3,[VALLOC9_]
  126. REV AUX_3
  127. MOV AUX_3,$RESULT
  128. ITOA AUX_3, 10.
  129. MOV AUX_3,$RESULT
  130. MOV VALLOC2,VALLOC
  131. MOV CARACTERES2,CARACTERES
  132. CMP VF,1
  133. JE CONTINUAR6_
  134. ADD CARACTERES2,4
  135. JMP CONTINUAR7
  136. CONTINUAR6_:
  137. INC CARACTERES2
  138. CONTINUAR7:
  139. CMP CONT_FIN,CARACTERES2
  140. JE SALIR_
  141. MOV AUX_Z,[VALLOC2],1
  142. ITOA AUX_Z, 10.
  143. MOV AUX_Z,$RESULT
  144. EVAL "#{AUX_Z}#"
  145. MOV [VALLOC2],$RESULT,1
  146. INC VALLOC2
  147. INC CONT_FIN
  148. MOV AUX_Z,0
  149. JMP CONTINUAR7
  150. SALIR_:
  151. SUB VALLOC2,2
  152. MOV VAR70,[VALLOC2],1
  153. CMP VAR70,70
  154. JNE SALIR__
  155. MOV [VALLOC2],#07#
  156. DEC CARACTERES2
  157. JMP SALIR
  158. SALIR__:
  159. INC VALLOC2
  160. MOV VAR70,[VALLOC2],1
  161. CMP VAR70,70
  162. JNE SALIR
  163. MOV [VALLOC2],#07#
  164. SALIR:
  165. CMP CARACTERES2,CONTADORU
  166. JE SALIR2
  167. MOV AUX_N,[VALLOC],1
  168. ITOA AUX_N
  169. MOV AUX_N,$RESULT
  170. ADD AUX_W,AUX_N
  171. INC CONTADORU
  172. INC VALLOC
  173. MOV AUX_N,0
  174. JMP SALIR
  175. SALIR2:
  176. EVAL "Usuario:{RESP} Clave:{AUX_W}{AUX_3}{AUX}{AUX__2}"
  177. MSG $RESULT
  178. FREE VALLOC
  179. FREE VALLOC_
  180. FREE VALLOC_TAM
  181. FREE VALLOC___
  182. WRT "Serial.txt", $RESULT
  183. MSG "Se ha creado un .txt con el ID y SERIAL en el path del crackme"
  184. JMP EXIT
  185. ERROR1:
  186. MSG "Error:el ID debe ser de seis caracteres!!"
  187. JMP PREGUNTA
  188. ERROR2:
  189. MSG "Error inesperado"
  190. EXIT:
  191. RET

Comentario:
Primero que todo darles las gracias a cibergolen por compartir tal crackme que debe haberle quitado su buena cantidad de tiempo, considerando que utilizó ASM, también decirle que es bienvenido por todos los usuarios de este subforo, será entretenido contar con su ayuda. También disculparme por la falta de tutorial pero codear el keygen en OllyScript me quitó demasiado tiempo ya que tuve que inventar muchas ideas para poder hacer que OllyScript hiciera lo que yo quisiera.
También decirle a MCKSys Argentina que es un desesperado, le dije que me esperara un poco que estaba haciendo el keygen pero no se aguantó  :xD aun espero su tutorial de como injertar una DLL en visualbasic en fin saludos para el y para todos los que se tomaron la molestia de leer este mini tutorial y un saludo para mi.
198  Programación / Ingeniería Inversa / Tomar valores hex de memoria con OllyScript?? en: 15 Noviembre 2011, 01:39 am
Hola a todos tengo una sencilla duda como tomo los valores hexadecimales de un address ya que si los tomo y los paso a una variable me los toma como ascii

Saludos


[401000]
199  Programación / Ingeniería Inversa / API para cambiar contenido (texto) de ventana? en: 10 Noviembre 2011, 21:14 pm
Pues eso, por lo general los programas siempre muestran un MessageBox pero en varias circunstancias me he topado con mensajes que modifican el texto dentro de la misma ventana agregando un signo (imagen) de alerta o error, que api sería la encargada de alterar eso?.

Saludos
200  Programación / ASM / que es MOD? en: 9 Noviembre 2011, 17:47 pm
Hola a todos, bueno estoy iniciándome en ASM y me topé con:

23 mod 5 es 1

que es mod?
alguien podría ponerme más ejemplos y aclarar como calculo aquello?

Saludos

EI: juntando mensajes.

creo que es el resto o residuo del resultado de una división

Saludos
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 39
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines