brokensociety on 2026-07-10 22:29:
[Click to reveal]After dissasemly, i tried to patch binary for getting access, but then i found a funny logic of password generation
for e.x. serial = (sum * 0x539) ^ 0x5a5a
so then i write a simple keygen, which will get my user input, and then convert it into a serial key for my username :P
Answer: username: xivi | password: 620954
Lover1500 on 2026-07-11 20:02:
[Click to reveal]Very Educational program. Not so hard. Not so easy. This is my very first level 3 solving problem.
The password is generated according to the input user name. So, every username will work once we find out which solution the program use to generate password and compare to what.
We have to really try to understand what is being compared to get Granted response. In the program asm, we see that it get total decimal bytes of the input username and multiply it with 1337 and xor with 0x5a5a. and the result is compared to input password. So, by writing the solution to generate password according to whatever username input, we will pass for every username. Below is my lua version to generate valid password.
local User = "liuasfuhflkwe"
local function getValidPassword(username)
local username_total_bytes = 0
for i=1, #username do
local decimal = string.byte(username, i)
username_total_bytes = username_total_bytes + decimal
end
return (username_total_bytes*1337) ~ 0x5a5a
end
local validPassword = getValidPassword(User)
print(validPassword)