Number of crackmes:
Number of solutions:
Comments:
Name | Author | Language | Arch | Difficulty | Quality | Platform | Date | Solution | Comments |
---|---|---|---|---|---|---|---|---|---|
x64_crackme_keygen | dev0 | Assembler | x86-64 | 2.0 | 3.4 | Unix/linux etc. | 6:19 PM 12/26/2021 | 2 | 3 |
Crackme | Infos |
---|---|
PassCode | Thank you! |
Keygenme #3 | Writeup with C source keygen |
CrackMe#3_By_7T7 | Writeup with a potential keygen implementation |
Simple password with checksum | |
CrackMe-0x1 | |
BabyRE | Writeup and source file to generate the valid flag |
VMAdventures 1 | |
Keygen | Thank you and please continue to make more! |
crackme v1.0 by bkah | Thank you! I really enjoyed this one. Your assembly was really cool in this. |
CrackMe#2_By_7T7 | |
Wolf by Lucas0001 | Thank you for the challenge! |
CrackReverse | Very interesting and good! Thank you! |
Bruteverse | |
Cookie's Byte Playground | Thank you Blepperton for the learning opportunity! |
find a real key | Good for practicing static analysis and learning what strings/arrays look like in x86 assembly. |
CrackMe #1 | I really this one! Thank icgc! |
Confusion | Thank you bl4ack! |
BlockBreaker | |
Keygenme - Muldimalph | Write up with a C source keygen |
Super Random Guessing | Yariza Crackme 3 | Write up with C source valid string generator |
Keygen me Quick! | Write up with a C source keygen file |
Grandfather Clock | Write up with a C source solution. |
kgenme1.0 | Write up with a C source keygen |
Guess The Password | Write up with a C solution |
CrackThis | Simple write up and password generator C source file |
KeygenMe | Write up and a keygen C source file. |
Comment | Link |
---|---|
Very good challenge combining classic algorithms and RE! | ==> |
@GhostmaneX That key works because the result from running "vol c:" on your machine is probably "Volume Serial Number is B628-C8A2" | ==> |
Opcode 3 is a NOP. Would you accept a NOP sled to the two bytecode instructions (Opcode 0 loading the strings) that loads to the two registers with the "Good password!" message and VM name? At that point the user would never even need to enter anything and the correct message would output. | ==> |
There appears to be a bug where the same buffer is used as both inputs into a memcmp | ==> |
A little curious (if you do not mind me asking), what compiler flags did you use for this? | ==> |
Really good challenge! Thank you. | ==> |
I believe the goal is to get the program to output a flag in the form "flag{...}" | ==> |
How did you code the vector operations in the function? | ==> |
I really enjoyed this. Thank you! Was the division by 2 operation intended to be a little lossy? Example, 97 / 2 = 48 and 96 / 2 = 48. | ==> |
@Danofred and @suzaku-coding, where are you getting the char needing to be 0x31 for the 7th character? The disassembly in the weird "strcmp" like function only checks index 4, 8, and 9 from what I see. It looks like one only needs xxxx4xxx0 to pass validation. | ==> |
Good introduction into GUI reversing and things that happen outside of just main. The algorithm is kind of cool too. Simple but needs a bit of critical thought. Great crackme overall and I enjoyed it. | ==> |
Really great crackme/keygen @BinaryNewbie! Really enjoyed it and it really tests static disassembly skills with the algorithm used and how it was coded. I do have to ask even though it is in the c_cpp category, did you have some custom assembly in the binary linked in or inline? Great binary and thank you for the challenge. | ==> |
Really good one for learning and practicing static analysis | ==> |
At the moment I can not beat the Matrix. Reversing it is fairly simple but the valid_key algorithm is a bit troubling. I see that the shift and multiply essentially divide by 2 and zero out the 2 least significant bits. When summed I do not see mathematically how the total that is compared can be computed with the algorithm. I know it has been solved because it is currently a lvl 3.6. Is there a way to mathematically calculate it with using brute force? | ==> |
I believe there is a subtle bug in this. Use a key with a 1 or 0x31 byte value as the last letter and see what happens. It appears the address space between the byte for the character and unsigned int are problematic when using the atoi function. | ==> |
I thought I had it haha. Is there a need to patch? I am stuck on getting something to "happen" but I can't figure out a way to trigger it without a patch since its a register mov instruction previous with an immediate value. | ==> |
Very good crackme! | ==> |
This one was really good! flag{1w1DL1h6_1h3_b1h4Ry_5y513m} | ==> |
Interesting little twist and algorithm used. | ==> |