Hi @dev0, yeah for the very same reason I think the challenge is busted and cannot be solved. I have tried to contact the author on this but have not been successful yet |
==> |
Hi @SirWardrake, dnSpy appears to be unable to show the code (or even recognize the file as .NET) because of the way you compiled it (which might be intentional or unintentional). If you use Detect it Easy to check the file, you can find there is an overlay PE file at offset 0x25000. You can dump this file and load it with dnSpy, and see all of you code in it. |
==> |
Nice swift crackme! I am giving a level 2.5 difficulty given the obvious shortcut |
==> |
Same idea as https://crackmes.one/crackme/63b15b5333c5d43ab4ecf226 |
==> |
I had a look at it, and got a basic understanding of the algorithm, but I did not spend the time to actually solve it. This is a cool one, btw |
==> |
@f1ref1st, the intention is to understand the algorithm and write a keygen, otherwise the challenge would be trivial |
==> |
Hint: https://github.com/mandiant/GoReSym |
==> |
There seems to be a bug in this crackme, so that on certain Windows versions, running the crackme will get you nothing. However, it is still solvable if you analyze/debug it and see what the maker's intention is. And as timotei_ said, the MD5 of the key is 7813d1590d28a7dd372ad54b5d29d033 |
==> |
Great work, I like this! |
==> |
I like this crackme! And its name is great as well! |
==> |
Hi @0xZER0, your answer seems wrong! You get fooled by a little trick. The actual flag is something meaningful |
==> |
Nice one, thx! |
==> |
Looks interesting and approachable, nice one, thx! |
==> |
Thx for the crackme! However, I think it has some problems: 1. the crackme is not asking for an input, so the check will always fail. 2. It seems to me, that if it does ask for an input, any input that has length 6 will pass the check. I am not 100% sure about it because I just glanced the code and did not analyze it in detail. |
==> |
This is a nice algorithm crackme. I followed the key generation in the debugger, and find it is interesting. Thx! |
==> |
Nice addition to the crackme collection! The algorithm is not hard. And it is fun reversing swift code. |
==> |
This is a very nice one! It is not very hard, but it has some interesting techniques in it. Thx! |
==> |
Great challenge! I decrypted the script but did not proceed to solve it. |
==> |
Thank @Rex for re-uploading! I hope people will enjoy it! |
==> |
Interesting VM challenge! Although I have had tooooo many of VM challenges and no longer get excited by them easily, this one is still nice and worth trying out. |
==> |
This one comes with some interesting anti-debugging and obfuscation, but the actual algorithm is too simple, so giving a 3.0 difficulty and 4.0 quality rating. |
==> |
Thanks for the submission! It looks like a novel and challenging protector to me! As the reviewer for crackmes, I would recommend you remove the VM detection and re-upload. Anti-debugging is fine, though. If you do not understand why, please get in touch with us on Discord, thanks! |
==> |
Thanks for the submission! However, I do not really see how it is level 6. Probably something like a level 2-3. |
==> |
I personally do not think it is a malware. I have reversed it and found nothing suspicious. VirusTotal can have false positives, and the network and registry activity reported by it is not always accurate. But I am still open to other opinions. Feel free to DM me on the crackmes.one Discord server. |
==> |
This is a great and difficult challenge. It has sufficient and complex transformations for a reverser to break. I reversed most part of it and become lazy to piece together every part. It becomes a little bit dull in the end (no offense). The level is probably 4. Thanks for the challenge! |
==> |
This one offers a great chance to learn several fpu instructions that are not often used. The level is probably 3 though. Thx! |
==> |
Hi @omrifainaro, thanks for the report! Could you please tell me why you think its a virus? |
==> |
Nice challenge! The algorithm is simple, but finding it in the first place is the real challenge |
==> |
I am very doubtful that this is solvable unless we brute-force the sha256 or DES, any hint on it? |
==> |
not bad! |
==> |
I think this is probably a level 2. The compiler is unfamiliar -- so it might be a little bit challenging in the beginning, but soon it all sorts out |
==> |
This one uses WinLincence, which is fine -- but not a very good idea -- to use commercial packers/protectors to make a crackme |
==> |
This one is interesting! It uses a small and novel obfuscation trick to confuse the reverser. |
==> |
This is a GREAT challenge! I will make a writeup for it |
==> |
interesting one. Though I think r13 needs to be zeroed on entry |
==> |
This is nice, but it is probably better rated as level one |
==> |
Rust again! thx! |
==> |
@BitFriends There should be many dates that pass the check. Though they should all exploit the same flaw. It is nice that you found one. Congrats! |
==> |
a good practice for string operations and division by multiplication |
==> |
nice! not hard to find all possible solutions |
==> |
This one is super nice! I like the algorithm. Finding the second solution is harder but also more interesting. |
==> |
nice algorithm! not hard, but a good practice for floating point instructions |
==> |
Interesting one! The real challenge is to find the main() function |
==> |
Hi BitFriends! If you are talking about the disassembly at line 0x6dc then yes, it is comparing two addresses. But you have to understand why it is doing this, or, what is the criteria it can pass. If you want a faster discussion, you may wish to reach me on discord. |
==> |
@BitFriends: Nope, I do not think so. It is not comparing addresses |
==> |
btw, if its convenient for you, pls join the crackmes.one discord server (shown on the front page) so we can communicate faster (if you would like) ^_^ |
==> |
Its definitely worth trying to come up with a concrete collision method and a working exploit, though I am not sure how motivated I am to do it. Anyway, thx for the crakcme! If I get back on this I will let you know. |
==> |
I do not have a working collision method but I remember seeing some materials on this topic so I assume it would not be too hard to make it work. I am not sure whether gcc source code is related. Because I think the relevant implementation is in glibc C++ runtime implementation. |
==> |
Ohhh, my bad, yeah, it is still waiting for input. The problem is if I input too many chars at a time, maybe its truncated. I will get back to this later |
==> |
My solution is probably wrong bc I did not trigger the collision in the correct way. But since I get the idea I will skip for this. Nice challenge and thx! |
==> |