CrackMe® Practices for Newbies
Project 11: DREADX by noos

Reversing it
Tuesday, 27-Apr-1999 15:30:31

    After a few hours, I finally reversed the check function. Didn't check it
    because I'm too tired.


    I hope the code doesn't contain many mistakes (is certainly does, because of
    the complexity of the function,


    but anyway, they are not major ones).


    I'll maybe check the function tomorrow and correct it (anyway noos, please
    take a look at it if you are reading this :).


     
















































































    Variable name



    Address



    Initialization value



    Code



    4063fc



    Code entered



    Lcode



    40651c



    Length of code



    Newcode



    406314



    *



    Index1



    Ebp-2c



    0



    Index2



    Ebp-1c



    0



    Index3



    Ebp-20



    0



    Index4



    Ebp-18



    0



    Index5



    Ebp-24



    0



    sum2



    Ebp-0c



    0



    lim



    Ebp-8



    0



    v



    Ebp-14



    0



    sum



    Ebp-4



    1



    aux



    Ebp-10



    0



    Hardcoded



    406120



    D0 6f bf cc c7 31 b3 c1 ea 99


    D7 72 c2 af de a0 4d a6 b0 ea


    90 a0 47 96 98 72 d3 51 b2 41


    60 e6 7f a4 ca 5f a0 c1 b3 73


    9e 71 49 cd c3 ce b0 77 b0 f3




     



    for 
    (index1=0;index1<49;index1++)



    {



    reminder=(code[index1]*code[index2])
    % ‘&’;



    if (reminder<25)
    code[lcode+index]=’A’+reminder;



                else
    code[lcode+index]=’F’+reminder;



    }



    for (index2=0;index2<50;sum+=code[index2++]);



    lim=sum % ‘1’;



    for (index3=0;index3<=lim;sum2+=code[index3++]);



    aux=sum2 & 0xff;



    v=aux ^ code[lim];



    for (index4=0;index4<48;index4++)



                {



                v+=code[index]+1;



                newcode[index4]=v^(v+=str[index4+2);



    }



    v+=code[49];



    newcode[48]=v^(v+=code[2]);



    v+=code[2];



    newcode[49]=v^(v+=code[3]);



    for (index5=0;index5<50;index5++)



                if
    (newcode[index5]!=hardcoded[index5]) return 0;



    return –1;



    }



     



    Andy


Message thread:

Andy's thread(my first approach) (Andy) (25-Apr-1999 06:16:09)

Back to main board