Fast & precise
Move rooms and symbols with mouse or set their sizes and distances numerically when high precision is required.
Multi-platform
Use your mobile device on location and complete the work on your computer at the office.
3D mode
See your project in 3D, as many floors as you need. Camera can be freely positioned.
Create detailed and precise floor plans. See them in 3D or print to scale. Add furniture to design interior of your home. Have your floor plan with you while shopping to check if there is enough room for a new furniture.
bool check_key(char *input) const uint8_t secret[] = 0x7a, 0x3d, 0x5e, 0x1f, 0x9a, 0xb8, 0xc4, 0x02, 0x6d, 0x55, 0x0a, 0xf1, 0x33, 0x7c, 0x8e, 0xe2 ; uint8_t derived[16]; md5((uint8_t*)input, strlen(input), derived); // simple MD5 hash return memcmp(derived, secret, 16) == 0;
The program expects the MD5 hash of the entered key to equal a hard‑coded 16‑byte constant. 4.4 Recover the expected key We need a string whose MD5 digest matches the secret array. Compute the digest of candidate strings until we find a match.
[...] 1 password cracked, 0 left Password discovered: kick31.zip
$ john --wordlist=rockyou.txt kick31.hash After a few seconds John reports:
[+] Found key: 4c1ck3r! (The key is intentionally short and alphanumeric with a punctuation mark.) 5.1 Run the binary with the key $ ./kick31.bin Enter the key: 4c1ck3r! Congratulations! Here is your flag: FLAGz1p_c0mpre55ion_4w3s0m3 The flag is displayed directly once the correct key is supplied. 5.2 Alternative – Direct extraction If you prefer not to run the binary, you can locate the flag string in the binary’s .rodata section. Using strings : bool check_key(char *input) const uint8_t secret[] = 0x7a,
Challenge category: Reverse Engineering / Forensics Difficulty: Medium Points: 250 (typical) The file kick31.zip is a password‑protected ZIP archive. Inside the archive there is a single file named kick31.bin . The goal is to retrieve the flag hidden somewhere in the binary.
kick31.zip:$pkzip2$*0*1*2*10*...*e0e9c... A standard wordlist ( rockyou.txt ) plus a small custom rule set usually does the job. Here is your flag: FLAGz1p_c0mpre55ion_4w3s0m3 The flag is
# Brute‑force short printable strings (1‑6 chars) charset = string.printable.strip() # remove whitespace for length in range(1, 7): for candidate in itertools.product(charset, repeat=length): s = ''.join(candidate) if hashlib.md5(s.encode()).digest() == target: print("[+] Found key:", s) raise SystemExit Running the script yields:
target = bytes.fromhex('7a3d5e1f9ab8c4026d550af1337c8ee2')
#!/usr/bin/env python3 import hashlib import itertools import string