Tags: windows executables 

Rating:

After having a look in ida,
I deduced that the executable reads the entered password  and calculates  the following:

Some pseudocode:
for each password attempt {
long x=0;
long x=(x*128h) + (each hex value of  the password chars) }
So the password is  roughly  6 or 7 chars in length , because final value from calculation  must equal :CEFF5331D4AAh

finally it checks the value of x;
If the value of the x ==CEFF5331D4AAh (the value of the EDX:EAX registers ,denoting a long value) , we have a match.
I thought the best approach was to try to brute force the password.
So I wrote a java program and used lowercase alpha and digits to try to determine the password .
The password  was "d00m3r" 
flag was : xiomara{MD5(password)}  
flag=xiomara{48c92083dc430eb4e8af78a38f9cc877}

excerpt from java program:

long x=0;
for (int i=0;i<password.length();i++) {             
     x=(x*0x128)+ (byte)(password.charAt(i));          
     if (x==0xCEFF5331D4AA) {                   
             System.out.println(password);                    
             System.exit(0);<span>             
     }
</span>}