shit on 1:30 PM 05/15/2023: The flag is I_LOVE_YOU
sudo0x18 on 2:17 PM 05/18/2023: Input Number: 243290200817664000
Flag: I_LOVE_YOU
cyb3rguru on 3:40 PM 05/19/2023: more detailed solution https://vlog.cyb3rguru.tech/posts/crackme/GDBBasics.html
hateisse on 6:21 PM 05/26/2023: Interesting. Not too hard, but it's good if it's one of your first cracking exercises like me. It helps doing the gdb commands again and again and remember which registers etc are used for.
Don't just display the content of the register before the cmp otherwise it's pointless. Go instruction by instruction and see what it's doing. If you're lost because you don't understand why some register was used, why some register is dereferenced at certain offset, tell yourself you haven't completed this crackme and go watch videos to deepen your knowledge about x86-64 asm :D
jeanpisstoute on 1:47 PM 06/11/2023: Not to spoil the solution, but after solving it I read others solutions, and I can tell that the calculated number is truncated to 32 bits, so if you calculated it based on the loop performed, you could find the entire number (like sud0x18 probably did), but if you just looked at the content of XXX (I don't spoil), then you found the truncated number. By the way, thanks for this crackme!
karlos on 9:43 PM 06/13/2023: wr1:
var_c = 2
for var_10 in range(2, 0x14):
var_c *= var_10
expected_input = var_c
print("Expected input:", expected_input)
wr2:
before patch:
CMP dword ptr [RBP + local_c],EAX
JNZ LAB_001011c0
after patch:
CMP dword ptr [RBP + local_c],EAX
JZ LAB_001011c0
dt on 4:37 PM 08/04/2023: recommended, nice crackme for beginner to learn debugging
JNVIEGJ on 12:26 PM 10/05/2023: num = 2
for i in range(2,20):
num *= i
print(num)
You must me logged to submit a solution
Solution by Sakindu: There is the flag : I_LOVE_YOU