Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - apuromafo CLS

#1291
Cita de: liurap en 15 Agosto 2008, 22:49 PM
Aiba! :O! Es verdad XDD!! Hay q ver lo q puede cambiar un solo signo.  . jajaja, muxas asias tena no me habia dao cuenta ;) ahora el code funciona a la perfeccion :D

Ahi les dejo el crackme; a ver si me dicen cual es la pass correcta :D

http://rapidshare.com/files/137601522/Crackme_Liu.exe.html

Un saludo

el password es  "H4ck3r" sin las comillas

ahora bien vamos lento

la api pues descubre un lugar si esta escrito,
y si esta detectado o no, depende si es un diferente de 0 ,
valor de  1->detectado
valor de 0->no detectado

ahora bien como puede pasarse sin tener que nopearlo el call a exit?

Citar004014C4  |.  85C0          test    eax, eax                         ; |

no es necesario nopear--

cambienlo a
Citar004014C4      33C0          xor     eax, eax
(colocando espacio o assembler)


bueno haciendo el tutorial para resolverlo
bien dije ya el pass
sale lo siguiente al colocarla

Password: H4ck3r

Access Granted :D! Pass:: cooomemel4


Password: cooomemel4

Access Denied :(

porciacaso jeje


Solucion Crackme de liurap

no sabia que habias puesto un crackme
pero demos la solucion, aprovechando que tengo tiempo

pues tenemos la estructura de un c++

Citar00401220 > $  55            push    ebp
00401221   .  89E5          mov     ebp, esp
00401223   .  83EC 08       sub     esp, 8
00401226   .  C70424 010000>mov     dword ptr [esp], 1
0040122D   .  FF15 0C514000 call    dword ptr [<&msvcrt.__set_app_ty>;  msvcrt.__set_app_type
00401233   .  E8 C8FEFFFF   call    00401100

entramos en el call

entramos en un procedimiento que comienza con push ebp
y mas o menos al terminar se ve esto
Citar004011E2  |.  E8 A9000000   call    00401290
004011E7  |.  89C3          mov     ebx, eax                         ; |
004011E9  |.  E8 020A0000   call    <jmp.&msvcrt._cexit>             ; |[msvcrt._cexit
004011EE  |.  891C24        mov     dword ptr [esp], ebx             ; |
004011F1  |.  E8 3A0B0000   call    <jmp.&KERNEL32.ExitProcess>      ; \ExitProcess
004011F6  |>  894424 04     mov     dword ptr [esp+4], eax           ; |
004011FA  |.  8B15 14514000 mov     edx, dword ptr [<&msvcrt._iob>]  ; |msvcrt._iob
00401200  |.  8B42 10       mov     eax, dword ptr [edx+10]          ; |
00401203  |.  890424        mov     dword ptr [esp], eax             ; |

entrando en ese call , estamos en el procedimiento del crackme
claramente para quien no sabia que pasa ahi, pues comenta que hay otra manera
Citar
00401465  |.  C685 DEFEFFFF>mov     byte ptr [ebp-122], 72           ; ||
0040146C  |.  C685 DFFEFFFF>mov     byte ptr [ebp-121], 64           ; ||
00401473  |.  C685 E0FEFFFF>mov     byte ptr [ebp-120], 3A           ; ||
0040147A  |.  C685 E1FEFFFF>mov     byte ptr [ebp-11F], 20           ; ||
00401481  |.  8D8D 58FEFFFF lea     ecx, dword ptr [ebp-1A8]         ; ||
00401487  |.  BA 04304000   mov     edx, 00403004                    ; ||ASCII "Que buscas, cadenas de textos ?? haya otra manera ;) || CRACKME MEDIUM COMPILED BY LIURAP! www.fotolog.com/liurap"
0040148C  |.  B8 73000000   mov     eax, 73                          ; ||
00401491  |.  894424 08     mov     dword ptr [esp+8], eax           ; ||

bueno les explique ayer creo el crackme que habian unos codigos ascii

ahora bien el crackme de ahora requiere que sepan que pasa


sigamos
Citar0040149C  |.  E8 AF070000   call    <jmp.&msvcrt.memcpy>             ; |\memcpy
004014A1  |.  C785 44FEFFFF>mov     dword ptr [ebp-1BC], 17          ; |
004014AB  |.  C785 40FEFFFF>mov     dword ptr [ebp-1C0], 2B          ; |
004014B5  |.  C785 3CFEFFFF>mov     dword ptr [ebp-1C4], 1C          ; |
004014BF  |.  E8 7C080000   call    <jmp.&KERNEL32.IsDebuggerPresent>; |[IsDebuggerPresent
004014C4      85C0          test    eax, eax
004014C6  |.  74 33         je      short 004014FB                   ; |
004014C8  |.  C74424 0C 000>mov     dword ptr [esp+C], 0             ; |
004014D0  |.  C74424 08 773>mov     dword ptr [esp+8], 00403077      ; |ASCII "Liurap dice: "
004014D8  |.  C74424 04 883>mov     dword ptr [esp+4], 00403088      ; |ASCII "Eyy!! compadreee!! buen intento!; anda, nopeame pa k te deje continuar ;)"
004014E0  |.  C70424 000000>mov     dword ptr [esp], 0               ; |
004014E7  |.  E8 24080000   call    <jmp.&USER32.MessageBoxA>        ; \MessageBoxA


pues ahi se muestra que hay un mensaje cuando somos detectados, y pues la forma que podemos evitarla es pues evitando que nos detecte

asi que no le haremos caso y no nopearemos
pues cambiaremos a xor eax,eax obligando al salto a saltar

despues buscamos el mensaje malo

normalmente uno supone algunas cosas
pero en este caso todo se ve aqui

00401692  |.  894424 04     |mov     dword ptr [esp+4], eax          ; |
00401696  |.  C70424 D23040>|mov     dword ptr [esp], 004030D2       ; |ASCII "%c"
0040169D  |.  E8 FE050000   |call    <jmp.&msvcrt.printf>            ; \printf
004016A2  |.  8D85 50FEFFFF |lea     eax, dword ptr [ebp-1B0]
004016A8  |.  FF00          |inc     dword ptr [eax]
004016AA  |.^ EB CC         \jmp     short 00401678
004016AC  |>  C70424 D53040>mov     dword ptr [esp], 004030D5        ; |
004016B3  |.  E8 E8050000   call    <jmp.&msvcrt.printf>             ; \printf
004016B8  |.  C785 4CFEFFFF>mov     dword ptr [ebp-1B4], 0
004016C2  |>  83BD 4CFEFFFF>/cmp     dword ptr [ebp-1B4], 0F         ; |

uno debe ser el chico bueno y otro el malo

claramente el malo tendra mas de 1 salto normalmente

y pues
004016AC  |> \C70424 D53040>mov     dword ptr [esp], 004030D5        ; |


este tiene varios saltos


colocamos un bp en cada cmp     edx, eax     que esta sobre el salto
Citar
00401581  |.  2B85 44FEFFFF sub     eax, dword ptr [ebp-1BC]         ; |5f- 17-> valor
00401587  |.  39C2          cmp     edx, eax                         ; |comparacion entre el 48 y el de nosotros :)
00401589  |.  0F85 1D010000 jnz     004016AC                         ; |



y claramente vemos que 48 es el valor correcto

ahora bien ese 48 representa a la letra H


siguiendo se encontraran con las otras letras

pero primero
eax=00000048
edx=00000061
esta algo asi
cambiamos el valor de edx a 48 para pasar tranquilo
eax=00000048
edx=00000048

seguimos

004015AE  |.  2B85 3CFEFFFF sub     eax, dword ptr [ebp-1C4]         ; |0cf-1c
004015B4  |.  83C0 64       add     eax, 64                          ; |add 64
004015B7  |.  39C1          cmp     ecx, eax                         ; |cmp 34 v/s mio
004015B9  |.  0F85 ED000000 jnz     004016AC                         ; |

ahi sacamos el segundo que es 34

y bueno seguimos hacia abajo hasta completar todo



ahora bien todos esos numeros y valores vienen de una tabla
http://www.ascii.cl/es/codigos-html.htm

bueno saludos y espero le sirva como se hacia :)

bendiciones esta resuelto :-)
#1292
Ingeniería Inversa / Re: programa
16 Agosto 2008, 01:32 AM
yo en mi tiempo antes pensaba que crackear era mover el archivo registrado por el normal, pero con el tiempo aprendi que eran esos mismos programas que estaban editados, en algo

y ese algo lo aprendi y pues realmente me ayudo con el tema de sacar troyanos en mi pc , pues en esos tiempos los antivirus no tenian como detectarlos

saludos y que bueno que te sirva la informacion, nos leemos

se cuida bendiciones
Apuromafo
#1293
simplemente es ir en orden y no perderse

cuando te pierdes no va porque no sepas usarlo, sino porque no sabes que estas haciendo , no estas acostumbrado a eso
proyectate paso a paso
mira que hacen compara busca lo que encontraron los otros , pero cuando ya sepas que lo que te dicen es el resumen de largas horas de busqueda creeme que ahi entenderas que la ayuda que te han dicho es algo nuevo

saludo
#1294
Ingeniería Inversa / Re: 3 Crackmes by Bocvk
15 Agosto 2008, 01:50 AM
Solucion al crackme 1 y 2 y mi solucion para mi nombre 3

solucion 1
"dwfdlrjt"
solucion 2
"qd|~sddwd"
solucion 3
nombre
serial

apuromafo
]ny|oa]xo


CRACKME 1
pues colocamos un valor cualquiera para ver si rompe en el dialogo, pero no aparece nada
revisamos y hay unalinea llamada cmp eax, 8
Citar0040108F  |.  E8 0A010000   call    <jmp.&user32.GetDlgItemTextA>    ; \GetDlgItemTextA
00401094  |.  83F8 08       cmp     eax, 8

Citar00401097  |.  0F85 A4000000 jnz     00401141


ahi dice que compara con 8 valores sean letras o numeros

Citar004010B6  |.  68 9C314000   push    0040319C                         ; /String2 =
004010BB  |.  68 4C314000   push    0040314C                         ; |String1 =
004010C0  |.  E8 C7000000   call    <jmp.&kernel32.lstrcmpiA>        ; \lstrcmpiA

coloco como pass 11111111 y aparece la comparacion entre

Citar004010B6  |.  68 9C314000   push    0040319C                         ; /String2 = "fudfnphv"
004010BB  |.  68 4C314000   push    0040314C                         ; |String1 = "33333333"

por lo tanto lo sube en 3 numeros o letras

ahora bien donde ocurrio todo esto
Citar
0040109F  |.  68 74314000   push    00403174                         ; |Buffer = Crackme_.00403174
004010A4  |.  68 EE030000   push    3EE                              ; |ControlID = 3EE (1006.)
004010A9  |.  FF75 08       push    dword ptr [ebp+8]                ; |hWnd
004010AC  |.  E8 ED000000   call    <jmp.&user32.GetDlgItemTextA>    ; \GetDlgItemTextA
004010B1  |.  E8 94000000   call    0040114A

pues hay un call

Citar00403174=00403174 (ASCII "crackmes")
el push dice crackmes


bueno pero lo importante es que sigue el codigo

Citar
0040114A  /$  33D2          xor     edx, edx
0040114C  |.  33C9          xor     ecx, ecx
0040114E  |>  8B91 24314000 /mov     edx, dword ptr [ecx+403124]
00401154  |.  83F2 02       |xor     edx, 2
00401157  |.  8991 4C314000 |mov     dword ptr [ecx+40314C], edx
0040115D  |.  41            |inc     ecx
0040115E  |.  3BC8          |cmp     ecx, eax
00401160  |.  74 02         |je      short 00401164
00401162  |.^ EB EA         \jmp     short 0040114E

ese es el primer loop

y en el segundo encuentro el causante de crear el 111 en 333

asi que lo aprovecharemos para encontrar el serial
Citar0040116E      83C2 03       add     edx, 3

lo cambio a
Citar0040116E      83EA 03       sub     edx, 3

y ejecutamos
Citar

00401164  |>  33D2          xor     edx, edx
00401166  |.  33C9          xor     ecx, ecx
00401168  |>  8B91 74314000 /mov     edx, dword ptr [ecx+403174]
0040116E      83EA 03       sub     edx, 3
00401171  |.  8991 9C314000 |mov     dword ptr [ecx+40319C], edx
00401177  |.  41            |inc     ecx
00401178  |.  3BC8          |cmp     ecx, eax
0040117A  |.  74 02         |je      short 0040117E
0040117C  |.^ EB EA         \jmp     short 00401168
0040117E  \>  C3            retn
y como sabemos que  el correcto era
0040319C=0040319C (ASCII "fudfnphv")
pues colocamos en practica si quieren primero 33333333 y aparecera 11111111 asi que lo usamos ahora para saber el correcto

y aparece lo siguiente
Citar0040314C=0040314C (ASCII "dwfdlrjt")

copio el valor y restauro el algoritmo a como estaba, o mejor dicho cierro el olly e ingreso el valor "dwfdlrjt"


---------------------------
Bien
---------------------------
Lo lograste, espero que este crackme haya sido de tu agrado
---------------------------
Aceptar   
---------------------------

sep fue de mi agrado
---------------------------
Información
---------------------------
   <> Crackme #1 by Bocvk <>

           Encuentra el serial

          bocvk@hotmail.com

    Dedicado a CracksLatinos

               Perú - 2008
---------------------------
Aceptar   
---------------------------


CRACKME 2

ahora el 2do

pues comenzamos con lo mismo
Citar
00401094  |.  83F8 09       cmp     eax, 9
00401097  |.  0F85 A4000000 jnz     00401141
0040109D  |.  6A 0A         push    0A                               ; /Count = A (10.)
0040109F  |.  68 80314000   push    00403180                         ; |Buffer = Crackme_.00403180
004010A4  |.  68 EE030000   push    3EE                              ; |ControlID = 3EE (1006.)
004010A9  |.  FF75 08       push    dword ptr [ebp+8]                ; |hWnd
004010AC  |.  E8 13010000   call    <jmp.&user32.GetDlgItemTextA>    ; \GetDlgItemTextA
004010B1  |.  E8 94000000   call    0040114A
004010B6      68 A8314000   push    004031A8
004010BB  |.  68 58314000   push    00403158
004010C0  |.  E8 BB000000   call    00401180
004010C5  |.  0BC0          or      eax, eax
004010C7  |.  74 16         je      short 004010DF
004010C9  |.  6A 40         push    40                               ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004010CB  |.  68 FE304000   push    004030FE                         ; |Title = "Bien"
004010D0  |.  68 00304000   push    00403000                         ; |Text = "Lo lograste, espero que este crackme haya sido de tu agrado"
004010D5  |.  FF75 08       push    dword ptr [ebp+8]                ; |hOwner
004010D8  |.  E8 F3000000   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA


tenemos ahora 9 letras a comparar
y como tengo experiencia en el tema , cuando son numeros pequeños como la solucion de arriba se puede, pero aca ya lo considero un poco mas grande, asi que bueno vamos a el


analizemos de otra forma
si antes la palabra crackmes lo convertia a un valor y ese valor era comparado con el xor y proximamente con el add  pues debemos entender algo

todo xor puede ser reversible
por lo tanto tenemos que a xor b= c
c xor b = a
y a xor c= b

pues en ese sentido mas o menos seria lo de ahora


ahora bien son 3 algoritmos a entender o 3 trozos de codigo a entender
1)
Citar
0040114E  |> /8B91 30314000 /mov     edx, dword ptr [ecx+403130]
00401154  |. |83F2 08       |xor     edx, 8
00401157  |. |8991 58314000 |mov     dword ptr [ecx+403158], edx
0040115D  |. |41            |inc     ecx
0040115E  |. |3BC8          |cmp     ecx, eax
00401160  |. |74 02         |je      short 00401164
00401162  |.^\EB EA         \jmp     short 0040114E

2)
Citar
00401168  |> /8B91 80314000 /mov     edx, dword ptr [ecx+403180]
0040116E     |83C2 07       add     edx, 7
00401171  |. |8991 A8314000 |mov     dword ptr [ecx+4031A8], edx
00401177  |. |41            |inc     ecx
00401178  |. |3BC8          |cmp     ecx, eax
0040117A  |. |74 02         |je      short 0040117E
0040117C  |.^\EB EA         \jmp     short 00401168

3)
Citar
00401180  /$  55            push    ebp
00401181  |.  8BEC          mov     ebp, esp
00401183  |.  56            push    esi
00401184  |.  8B4D 08       mov     ecx, dword ptr [ebp+8]
00401187  |.  8B55 0C       mov     edx, dword ptr [ebp+C]
0040118A  |.  33F6          xor     esi, esi
0040118C  |>  8A040E        /mov     al, byte ptr [esi+ecx]
0040118F  |.  3A0416        |cmp     al, byte ptr [esi+edx]
00401192  |.  75 10         |jnz     short 004011A4
00401194  |.  83C6 01       |add     esi, 1
00401197  |.  84C0          |test    al, al
00401199  |.^ 75 F1         \jnz     short 0040118C
ahora bien un sitio estrategico para entender el final de todo esto es en  40118f
pues ahi comparara valor por valor

ahora bien comenzemos con un valor que no corresponde

ejemplo 1111111111

son 9 unos

cuando lleguemos en una ejecucion con un bp en
004010B1  |.  E8 94000000   call    0040114A

pues se vera un valor
Citar00403180=00403180 (ASCII "remoteexe")

a partir de este valor sera convertido  y verificado nuestro serial, pero obviamente no sera tan facil, o sera medianamente facil si se tiene paciencia

vamos
a convertirlo en otro ejemplo 1111
el resultado proximo seria un 888888888

pero eso es para referencia
osea solo ese valor se formaria
pero para las letras pues recomiendo este segundo metodo para resolverlo y veran que se entetendran


detenidos en el
Citar0040118F  |.  3A0416        |cmp     al, byte ptr [esi+edx]

ds:[004031A8]=79 ('y')
al=39 ('9')
aparece la famosa comparacion
aparece una y y yo tengo un 9, ese 9 proviene del 1er uno

asi que a modo de juego si cambio la y por el 1 que teniamos tendremos el valor real

es facil verlo, pero explicarlo no lo es tanto, pues solo lo comento para que salga mas facil resolverlo

sigamos
ahora cambio mi clave 111111111 a y11111111

y veo en mi lugar estrategico
Citards:[004031A8]=79 ('y')
al=71 ('q')

una q, bien, si ahora a esa q , la coloco en el lugar, puede que de y, pues seria el xor inverso

y xor desconocido= valor de ahora

y entre el mismo xor, pues es divertido ver esto

sigamos, no quiero que se enreden, vean que aparece una q
ahora cambiamos la palabra a
q11111111

y nuestro lugar ahora dice
Citards:[004031A8]=79 ('y')
al=79 ('y')
impresionante o no es una forma de resolver los famosos estilos de xor tuvimos el valor valido :)


ahora sigamos


si juntara todo pues seria algo asi
Citar004031A8  79 6C 74 76 7B 6C 6C 7F 6C                       yltv{lll
esos signos son raros, asi que debo ir lento

solo debo hacer es mirar el nuevo valor, copiarlo
y ver el valor nuevo que debo ingresar

pues me aprovecho que ya se donde esta el valor bueno y pego todos esos valores y me muestra lo siguiente
Citards:[004031A8]=79 ('y')
al=71 ('q')

ahora el truco esta en anotar el valor de al y falsear el nuevo valor

anoto el q y edito ese q para que sea 79
(modify register)

dejandolo asi

Citards:[004031A8]=79 ('y')
al=79 ('y')

ahora bien como ya tenemos un notepad amigo, pues pegamos los valores y los dejamos a mano

primera letra

Citards:[004031A8]=79 ('y')
al=71 ('q')


para el segundo
Citards:[004031A9]=6C ('l')
al=64 ('d')

para la tercera letra
Citards:[004031AA]=74 ('t')
al=7C ('|')

para la cuarta
Citards:[004031AB]=76 ('v')
al=7E ('~')

para la quinta
Citards:[004031AC]=7B ('{')
al=73 ('s')

para la sexta
Citards:[004031AD]=6C ('l')
al=64 ('d')

para la septima
Citards:[004031AE]=6C ('l')
al=64 ('d')
para la octava
Citards:[004031AF]=7F
al=77 ('w')

para la novena
Citards:[004031B0]=6C ('l')
al=64 ('d')
y despues saldra esto
Citards:[004031B1]=00
al=00
ahora bien juntamos todo

para cuando llegue a
Citar004010C5  |.  0BC0          or      eax, eax
eax valdra eax=00000009

y seria solucionado


ahora bien miramos el resultado
Citar00403158=00403158 (ASCII "qd|~sddwd")

interesante :)

---------------------------
Bien
---------------------------
Lo lograste, espero que este crackme haya sido de tu agrado
---------------------------
Aceptar   
---------------------------


ahora bien demosle a pegar ese serial "qd|~sddwd"

y esta resuelto :) y sin tener que modificar a un comando que puede que desconozcan

saludos

---------------------------
Información
---------------------------
   <> Crackme #2 by Bocvk <>



           Encuentra el serial

          bocvk@hotmail.com

    Dedicado a CracksLatinos

               Perú - 2008
---------------------------
Aceptar   
---------------------------


TERCER CRACKME


pues plantea nuestro amigo un reto novedoso

hacer que 2 loops sean iguales desde matematicas diferentes
encontre 1 entre un mini analisis
suma
xoreo
resta


y la segunda

suma
xoreo
resta

ahora bien los valores son diferentes


el truco es el siguiente
encontrar la logica de 1 letra es suficiente para encontrar las posibles letras




para nombre  con la letra j (sobre 6 veces la misma)
jjjjjj
pues el serial es la letra d
dddddd


y la comparacion sera asi
Citar004010BA  |.  68 2C324000   push    0040322C                         ; /String2 = "iiiiii"
004010BF  |.  68 F0314000   push    004031F0                         ; |String1 = "iiiiii"
004010C4  |.  E8 FF000000   call    <jmp.&kernel32.lstrcmpiA>        ; \lstrcmpiA

la letra i de comparacion igual

ahora bien existe una igual para cada letra, siempre y cuando se este dispuesto a encontrar para su letra, minimo requiere un buen tiempo que no tengo

pero si se puede hacer algo impresionante
es juntar un codigo ascii de 255 y lograr recopilar cada letra, por el tiempo solo busque para mi nombre



pero colocare para mi nombre apuromafo
Citara->]
p->n
u->y
r-| (alt 124)
o->o
m->a
a->] (alt+93)
f->x
o->o


apuromafo->"dspqvhdmv"
//
a->]
p->n
u->y
r-| (alt 124)
o->o
m->a
a->]
f->x
o->o






apuromafo
]ny|oa]xo


con esto dice
---------------------------
Bien
---------------------------
Lo lograste, espero que este crackme haya sido de tu agrado
---------------------------
Aceptar   
---------------------------


ahora bien



letra nombre->letra serial



Citarj->d
k->c
l->b
m->a

p->n
q->m

Citar0(48)->.(46) 
1(49)->-(45) 
2 50 ->< 60)   
3 51 ->;(59)
4(52)->0 (48)  ???
5(53)->/ (47)   ??

a ->]
` ->^
^ ->`
?->?
>->@


como bien tengo poco tiempo

Citar00401097  |.  83F8 06       cmp     eax, 6
comparacion con 6 de nombre

comparacion con 6 de serial
Citar004010B0  |.  83F8 06       cmp     eax, 6
004010B3  |.  72 47         jb      short 004010FC
004010B5  |.  E8 C1000000   call    0040117B
004010BA  |.  68 2C324000   push    0040322C                         ; /String2 = ""
004010BF  |.  68 F0314000   push    004031F0                         ; |String1 = ""
004010C4  |.  E8 FF000000   call    <jmp.&kernel32.lstrcmpiA>        ; \lstrcmpiA


las rutinas
Citar0040117B  /$  33C9          xor     ecx, ecx
0040117D  |.  33D2          xor     edx, edx
0040117F  |>  8B91 78314000 /mov     edx, dword ptr [ecx+403178]
00401185  |.  83C2 02       |add     edx, 2                          ;  1
00401188  |.  83F2 06       |xor     edx, 6
0040118B  |.  83EA 01       |sub     edx, 1
0040118E  |.  8991 F0314000 |mov     dword ptr [ecx+4031F0], edx
00401194  |.  41            |inc     ecx
00401195  |.  3BC8          |cmp     ecx, eax
00401197  |.  74 02         |je      short 0040119B
00401199  |.^ EB E4         \jmp     short 0040117F
0040119B  |>  33C9          xor     ecx, ecx
0040119D  |.  33DB          xor     ebx, ebx
0040119F  |>  8B99 B4314000 /mov     ebx, dword ptr [ecx+4031B4]
004011A5  |.  83C3 03       |add     ebx, 3
004011A8  |.  83F3 09       |xor     ebx, 9
004011AB  |.  83EB 05       |sub     ebx, 5
004011AE  |.  8999 2C324000 |mov     dword ptr [ecx+40322C], ebx
004011B4  |.  41            |inc     ecx
004011B5  |.  3BC8          |cmp     ecx, eax
004011B7  |.  74 02         |je      short 004011BB
004011B9  |.^ EB E4         \jmp     short 0040119F
004011BB  \>  C3            retn


donde se ve que  el primero valor
Citar0040117F  |> /8B91 78314000 /mov     edx, dword ptr [ecx+403178]
00401185  |. |83C2 02       |add     edx, 2                          ;  xxx
00401188  |. |83F2 06       |xor     edx, 6
0040118B  |. |83EA 01       |sub     edx, 1
0040118E  |. |8991 F0314000 |mov     dword ptr [ecx+4031F0], edx
00401194  |. |41            |inc     ecx
00401195  |. |3BC8          |cmp     ecx, eax
00401197  |. |74 02         |je      short 0040119B
00401199  |.^\EB E4         \jmp     short 0040117F
y el segundo valor
Citar0040119F  |> /8B99 B4314000 /mov     ebx, dword ptr [ecx+4031B4]
004011A5  |. |83C3 03       |add     ebx, 3
004011A8  |. |83F3 09       |xor     ebx, 9
004011AB  |. |83EB 05       |sub     ebx, 5
004011AE  |. |8999 2C324000 |mov     dword ptr [ecx+40322C], ebx
004011B4  |. |41            |inc     ecx
004011B5  |. |3BC8          |cmp     ecx, eax
004011B7  |. |74 02         |je      short 004011BB
004011B9  |.^\EB E4         \jmp     short 0040119F



pasa que e add, xor y sub debe ser igual entre las 2 de modo que
las dos sean identicas
como conozco mas o menos el alfabeto, dar una colicion con los centros es la primera opcion y vemos que sale de lujo


Citarh->f
i->e
j->d
k->c
l->b
m->a

ahora bien

apuromafo tiene varias letras y consonantes, y justo sobre 6 , asi que le hago el empeño y comparo en


pero como no necesariamente sigue la logicapues
Citar
004010BA  |.  68 2C324000   push    0040322C                         ; /String2 = "^^^^^^12"
004010BF  |.  68 F0314000   push    004031F0                         ; |String1 = "12_______"
004010C4  |.  E8 FF000000   call    <jmp.&kernel32.lstrcmpiA>        ; \lstrcmpiA

cada vez que coloco un valor  similar , pues copio el valor y la dejo en la tabla

esto es conocido como colision, porque por chocar un valor con otro, pues en un momento dado es encontrado

no siempre se vera el valor tan claramente, por algo deben probar para su nombre


la web con codigo ascii que sugiero es la siguiente
http://www.ascii.cl/es/codigos-html.htm


por lo demas, espero les vaya bien en el 3ro
y ojala me de el tiempo de hacer algun keygen mas presentable :)

saludos

se cuidan y si alguien resuelve mucho mejor o necesita alguna explicacion mayor, pues cuando tenga tiempo la complemento :) o aprendo de lo que comenten

por mi parte creo que estaria medianamente resuelto :)
#1296
pues leyendolo parece que te falto algo, porque todo eso esta en la introduccion

karmany puso un post si eras nuevo

eso simplemente es colocar bp, ejecutar y esperar las comparaciones

si el tema es hacerlo simple busca algo llamado vbstcmp del team resurecction que son 2 dll que se colocan en los vb y se veran las comparaciones

no puedo ayudar en programas comerciales, lo sabes bien, pero si se puede decir a modo global que te falta solo practicar y mucho

leer asi como asi los titulos sin entender no sirve mucho, estan los links y el foro esta muy bien lleno de escritos

saludos , te animo por mi experiencia

bendiciones se cuida
pd:bp all references, run f7 run f8 mirar los registros, y en un momento dado, pff

cmp serial bueno, malo
test , 0

je chico bueno

saludos Apuromafo

te sugiero leas este link y los subs links

http://foro.elhacker.net/ingenieria_inversa/iquesteres_nuevo_en_el_foro_lee_esto-t93855.0.html

en especial
http://foro.elhacker.net/ingenieria_inversa/leer_todos_los_que_comienzan_primer_paso_responde_si_lo_leiste-t223174.0.html
#1297
naa, sirve como apunte tambien, ademas queda indexado :)

esperamos que puedas aprender tambien del tema :)
hay un mensaje si eres nuevo para que lo leas :)
bienvenido y saludos Apuromafo
#1298
esto ya esta
http://foro.elhacker.net/ingenieria_inversa/cracking_sin_secretos-t184624.0.html
y inclusive tambien se pregunto una vez
http://foro.elhacker.net/ingenieria_inversa/libros_de_cracking_o_ingenieria_inversa-t191957.0.html

y mira el consejo ante ese tutorial o guia
http://foro.elhacker.net/ingenieria_inversa/iquestque_desensamblador_me_recomendais-t169569.0.html

segun yo, ese libro es bueno, pero despues que ya sabes cracking
eso no apoya a comenzar, solo a lectura complementaria

llevo mas de 3 años en ingenieria inversa y mas de 20 novatos que han aprendido junto a mi y creeme que de un 90% dicen que el de ricardo que aparece en el foro esta muchisimo mejor el de ricardo

por eso y mucho mas, sugiero que lo lean cuando tengan tiempo

yo lo tengo sin contraseña en
mediafire.com/apuromafo
en ingenieria inversa->introduccion .. en el numero 5

saludos y espero verte seguido apoyando en el foro ;)
saludos Apuromafo
#1299
usar peid, RDG que te recomienda karmany, bajar la actualizacion de bases de datos que aparecen en uno de los menus del programa.
debes usar las 2 secciones de escaneo de ejecutable

pero aparte de ello debes saber que no porque te diga molebox significa que esta programado en molebox
sino que es un programa empacado con molebox, que cuando desempaques recien veras el lenguaje usado

los lenguajes normales de programacion son c++, delphi, borland c++, fox pro y muchos mas

cuando comienzas en olly y te guias con las secciones ,tambien lograras aveces identificar que programa puede ser

saludos
#1300
Ingeniería Inversa / Re: Simexam
7 Agosto 2008, 19:16 PM
SI, al presionar assemble, al escribir otra instruccion, ya esta hecho el cambio luego de pulsado el assemble y haber visto el cambio

cuando ya tienes cambiado debes guardar los cambios, y ejecutarlo

ahora bien solo cambiando lo que te decian  presionas en save all changes

te sugiero que leas muy bien el escrito anterior porque en una de ellas incluyen mas de 300 hojas para que puedas hacer y verificar todo esto

los escritos de ricardo son 58 tutoriales , inclusive mas..
recuerda la cita que dice Solid

aprende a guardar los cambios y revisa si te funciono o no

pero de experiencia, cambiar algo sin saber que estas haciendo no te ayuda de mucho, intenta revisar el curso desde 0 de ricardo en la cita de solid o en los escritos de shaddy y karmany

amm y no es de hacking desde 0, es de introduccion al cracking desde 0 con ollydbg

y en save changes  es copy to executable ->all changes y cierras y guardas con otro nombre  o el mismo, si es que ya le tienes un respaldo
eso ya se hablo en el foro y en los escritos de ricardo
ahora bien el grupo cracklatinos
esta el autor de ese escrito e inclusive los moderadores de este foro, y si te comento esta realidad es solo para que sepas que estas orientandote en buenas manos

ahora bien no hablare para que sirve el programa ni para que te pueda servir , pero en caso que no te resulte bien puedes pedirle una mano amiga a quien descubrio ese cambio
ahora bien nada es gratis ni regalado, piensa que en escribir un tutorial y ese tema requiere experiencia

si te hago un tutorial quizas ni lo leas de tantos datos que puedan aparecer
pero si te oriento en lo que necesitas, pues ahi se que realmente estaras bien ;)
saludos Apuromafo

saludos