October 13Oct 13 6 minutes ago, Washi said:@Sawyer555Automation is your best friend in this challenge.It uses 20 bytes as input, I guess bruteforce isn't an option. Do I have to let the binary work for me somehow? I was going to try and understand the encryption somehow but I believe this is not the right way.
October 13Oct 13 On 10/12/2025 at 8:35 PM, Washi said:A debugger's callstack is your best friend :)You probably want to revisit that reasoningThen we must conclude things that come in are not the right input parameters...The same approach should apply for the entire binary. Follow the breadcrumbs, they are sneaky with some of the encryption throughout the protocol...Are they really 4 exact copies of the binary?@Washi no, it has difference but I don't know what its effect is? What should I do next, please?
October 14Oct 14 Author @Sawyer555 On 10/13/2025 at 12:40 PM, Sawyer555 said:Do I have to let the binary work for me somehow?The binary itself is probably going to be too inefficient for you to do anything interesting at runtime, other than validating some individual tests. As for bruteforce, flare-on typically requires no bruteforce for any challenge, let alone bruteforcing 0x20 bytes which definitely won't finish before the end of the universe :^).@pypy @Washi no, it has difference but I don't know what its effect is? What should I do next, please?Pay close attention to how it differs. Is it deterministic?
October 14Oct 14 Any hints for ch6?I have the decompiled Python code and the contracts, but I can't derive the keys Edited October 14Oct 14 by eric_cartman
October 15Oct 15 7 hours ago, Washi said:@Sawyer555The binary itself is probably going to be too inefficient for you to do anything interesting at runtime, other than validating some individual tests. As for bruteforce, flare-on typically requires no bruteforce for any challenge, let alone bruteforcing 0x20 bytes which definitely won't finish before the end of the universe :^).@pypy@Washi no, it has difference but I don't know what its effect is? What should I do next, please?Pay close attention to how it differs. Is it deterministic?@Washi thank you very much, I have solved it!
October 15Oct 15 On 10/14/2025 at 8:31 PM, Washi said:@Sawyer555The binary itself is probably going to be too inefficient for you to do anything interesting at runtime, other than validating some individual tests. As for bruteforce, flare-on typically requires no bruteforce for any challenge, let alone bruteforcing 0x20 bytes which definitely won't finish before the end of the universe :^).I have progress a lot, but I'm really struggling to figure out what happens between the "f" functions and the memcmp. It's some sort of matrix manipulation but just so damn complicated. How am I supposed to reverse that?
October 16Oct 16 Author @Sawyer555 Try to identify the high level semantics that the code implements, as opposed to zooming in too much on the individual operations. After that, then it is pen and paper time :)
October 16Oct 16 On 10/12/2025 at 9:34 AM, pypy said:hi, can you give some hints for CH4, please? I've patched the M byte to make it run and I see it clones 4 copies. What should I do next?Try playing with filename... It change something?
Sunday at 06:28 AM3 days Need a little nudge for 8. I found the handler for the OK button.I think I found the comparison of the correct value, but I'm not really sure.I think it's some sort of a 8-byte hash (or some other calculation) of the input, compared to a certain value.The problem is that this value exists even when entering the OK button handler function, so that's why I'm not sure.Am I in the right direction? Or am I wasting my time?
Sunday at 10:41 AM3 days Author @g0lan 4 hours ago, g0lan said:The problem is that this value exists even when entering the OK button handler functionThen we must conclude this value was computed somewhere else before that...
Monday at 06:44 AM2 days Could really do with a nudge in the right direction for ch6, been working at it for a few days now and feel like I'm very close but missing something critical.I'm 99% certain I understand the logic and have re-implemented locally off-chain and can decrypt my own conversations for both modes but it won't work for the provided logs (seems a few people have hit this point). I've also adjusted my code in a few different ways based on assumptions about the chat logs being a two way conversation, e.g. the message count may vary at each end of the convo as would the conversation time, there might be two rsa keys etc, but still not having any success. At this stage I'm looking at trying to derive the lcg parameters, assuming none of the given states in the chat logs are actually the seed, but that seems to be mathematically very difficult. Edited Monday at 06:46 AM2 days by lpu
Monday at 04:25 PM2 days @lpurandom text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. 9 hours ago, lpu said:I've also adjusted my code in a few different ways based on assumptions [...] trying to derive the lcg parameters, assuming ...You shouldn't be making any assumptions - it's a crypto problem, not a guessing game. You were given all the data you need to solve it. Edited Monday at 04:27 PM2 days by kao
Monday at 11:22 PM2 days On 10/11/2025 at 9:56 PM, Rurik said:Edit: Feeling really bad. I already had the answer but forgot to try it the correct way. I thought I had :( Shamefully solved now after too long of getting myself stuckI may need a small nudge on 7 =( At the 99% mark and hit their last wall. I did it statically and dynamically, then recreated the logic in scripts.75% through the PCAP a value changes. I've been in the binary trying to find how it parses that and am just not seeing it, even though I have everything else in the binary marked up. The JSON parsing library they used, the crypto functions, MSVCRT string functions, etc. I even tried bruteforcing ... which got me the third value 🙃, but not the 2nd. What other methodology should I try?I think I'm in the same boat with 75%. I see where a value could potentially be changed, but it looks like it's being set to the same exact thing. Would you mind giving me a nudge?
Monday at 11:25 PM2 days @NoHayShark Sometimes malware does silly things that don't make sense. Assume the operator is dumb.
16 hours ago16 hr On 10/15/2025 at 1:31 AM, Washi said:@Sawyer555The binary itself is probably going to be too inefficient for you to do anything interesting at runtime, other than validating some individual tests. As for bruteforce, flare-on typically requires no bruteforce for any challenge, let alone bruteforcing 0x20 bytes which definitely won't finish before the end of the universe :^).@pypy@Washi no, it has difference but I don't know what its effect is? What should I do next, please?Pay close attention to how it differs. Is it deterministic?I'm a bit stuck on ch4I've reversed the .exe and found the part where it takes the file version, XORs it with 0x6746, and then runs it through an LCG and a modulo operation. This seems to generate a file index and a value to XOR with that file.I've already generated the results for the 100 versions after 150, but I'm still not seeing the connection to the flag. I feel like I'm missing something obvious.Could you give me a nudge in the right direction? Any help would be appreciated, thanks! Edited 16 hours ago16 hr by Pau1
13 hours ago13 hr @Pau1 :random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works. random text so that spoiler actually works.2 hours ago, Pau1 said:generated the results for the 100 versions after 150 [...] Could you give me a nudge in the right direction?You went in the wrong direction.
12 hours ago12 hr @Rurik : riiight! 😂 Some people leave no stone unturned and analyze each challenge in details. Good for them. 👍 But me, I've lost count how many easter eggs I did not find over the years...
Create an account or sign in to comment