2025-10-26

๐Ÿ” Puzzle Pieces Redux

image.png

๐Ÿ—„puzzle-pieces-redux.7z60KB ๐Ÿ—„original_puzzle_pieces_redux.7z64KB

image.png

image.png

for f in *.bin; do 
    echo -n "$(basename $f): "
    dd if="$f" bs=1 skip=$((0x189b0)) count=6 2>/dev/null
    echo
done
1a1962fc.bin: f9f73

5eb6e6c8.bin: 49f8b

07c8b8cb6a9.bin: 5abfa

7c8394d4b6b0.bin: d9c1a

20a.bin: d85d5

64b.bin: e6817

99fa27fd897.bin: 23c

3511c0a625.bin: 16f73

6676585.bin: 02}

a6ffddda.bin: 88a2d

a891a220.bin: flag{

abc9.bin: 48979

c931.bin: 5f93f

d2def806d493f.bin: 9bfc2

db887b5440.bin: be7a1

e75147c1b1b9406.bin: f18ba

 for f in *.bin; do 
    echo "=== $(basename $f) === "
    xxd -s 0x189b0 -l 16 "$f";
    echo
done
=== 1a1962fc.bin === 
000189b0: 6639 6637 330a 0000 b0a3 0140 0100 0000  f9f73......@....

=== 5eb6e6c8.bin === 
000189b0: 3439 6638 620a 0000 b0a3 0140 0100 0000  49f8b......@....

=== 07c8b8cb6a9.bin === 
000189b0: 3561 6266 610a 0000 b0a3 0140 0100 0000  5abfa......@....

=== 7c8394d4b6b0.bin === 
000189b0: 6439 6331 610a 0000 b0a3 0140 0100 0000  d9c1a......@....

=== 20a.bin === 
000189b0: 6438 3564 350a 0000 b0a3 0140 0100 0000  d85d5......@....

=== 64b.bin === 
000189b0: 6536 3831 370a 0000 b0a3 0140 0100 0000  e6817......@....

=== 99fa27fd897.bin === 
000189b0: 3233 630a 0000 0000 b0a3 0140 0100 0000  23c........@....

=== 3511c0a625.bin === 
000189b0: 3136 6637 330a 0000 b0a3 0140 0100 0000  16f73......@....

=== 6676585.bin === 
000189b0: 3032 7d0a 0000 0000 b0a3 0140 0100 0000  02}........@....

=== a6ffddda.bin === 
000189b0: 3838 6132 640a 0000 b0a3 0140 0100 0000  88a2d......@....

=== a891a220.bin === 
000189b0: 666c 6167 7b0a 0000 b0a3 0140 0100 0000  flag{......@....

=== abc9.bin === 
000189b0: 3438 3937 390a 0000 b0a3 0140 0100 0000  48979......@....

=== c931.bin === 
000189b0: 3566 3933 660a 0000 b0a3 0140 0100 0000  5f93f......@....

=== d2def806d493f.bin === 
000189b0: 3962 6663 320a 0000 b0a3 0140 0100 0000  9bfc2......@....

=== db887b5440.bin === 
000189b0: 6265 3761 310a 0000 b0a3 0140 0100 0000  be7a1......@....

=== e75147c1b1b9406.bin === 
000189b0: 6631 3862 610a 0000 b0a3 0140 0100 0000  f18ba......@....

for f in $(ls -ctr *.bin); do
    echo "=== $(basename $f) === "
    xxd -s 0x189b0 -l 16 "$f"
    echo
done
=== 07c8b8cb6a9.bin === 
000189b0: 3561 6266 610a 0000 b0a3 0140 0100 0000  5abfa......@....

=== 20a.bin === 
000189b0: 6438 3564 350a 0000 b0a3 0140 0100 0000  d85d5......@....

=== 3511c0a625.bin === 
000189b0: 3136 6637 330a 0000 b0a3 0140 0100 0000  16f73......@....

=== 5eb6e6c8.bin === 
000189b0: 3439 6638 620a 0000 b0a3 0140 0100 0000  49f8b......@....

=== 64b.bin === 
000189b0: 6536 3831 370a 0000 b0a3 0140 0100 0000  e6817......@....

=== 6676585.bin === 
000189b0: 3032 7d0a 0000 0000 b0a3 0140 0100 0000  02}........@....

=== 7c8394d4b6b0.bin === 
000189b0: 6439 6331 610a 0000 b0a3 0140 0100 0000  d9c1a......@....

=== 99fa27fd897.bin === 
000189b0: 3233 630a 0000 0000 b0a3 0140 0100 0000  23c........@....

=== a6ffddda.bin === 
000189b0: 3838 6132 640a 0000 b0a3 0140 0100 0000  88a2d......@....

=== a891a220.bin === 
000189b0: 666c 6167 7b0a 0000 b0a3 0140 0100 0000  flag{......@....

=== abc9.bin === 
000189b0: 3438 3937 390a 0000 b0a3 0140 0100 0000  48979......@....

=== c931.bin === 
000189b0: 3566 3933 660a 0000 b0a3 0140 0100 0000  5f93f......@....

=== d2def806d493f.bin === 
000189b0: 3962 6663 320a 0000 b0a3 0140 0100 0000  9bfc2......@....

=== db887b5440.bin === 
000189b0: 6265 3761 310a 0000 b0a3 0140 0100 0000  be7a1......@....

=== e75147c1b1b9406.bin === 
000189b0: 6631 3862 610a 0000 b0a3 0140 0100 0000  f18ba......@....

=== 1a1962fc.bin === 
000189b0: 6639 6637 330a 0000 b0a3 0140 0100 0000  f9f73......@....

                                                                   
for f in *.bin; do
    echo "=== $f ==="
    objdump -p "$f" | grep -iE "(timestamp|date|time|epoch|signature)"
done
=== 1a1962fc.bin ===
Time/Date               Sun Oct 26 03:19:37 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature ffdc8ff3118e4a33be264ee1f5aecba8 age 7 pdb (none))
=== 5eb6e6c8.bin ===
Time/Date               Sun Oct 26 04:06:43 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 72c6dec110dd447ca7f07de8e7a88848 age 4 pdb (none))
=== 07c8b8cb6a9.bin ===
Time/Date               Sun Oct 26 03:19:37 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature b638284893094cd79f1b131ccc8bede7 age 3 pdb (none))
=== 7c8394d4b6b0.bin ===
Time/Date               Sun Oct 26 03:19:38 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 909e9b7179a144a0b3de72aebc6fb77f age 7 pdb (none))
=== 20a.bin ===
Time/Date               Sun Oct 26 03:19:36 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 6d8c4e69fb8c4e85a671621e175a0a9f age 3 pdb (none))
=== 64b.bin ===
Time/Date               Sun Oct 26 03:19:36 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 58a2bb85526446ecb19e539a85d3bdd4 age 3 pdb (none))
=== 99fa27fd897.bin ===
Time/Date               Sun Oct 26 03:19:39 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 248e7f7735014caf813880a1fe14fd69 age 7 pdb (none))
=== 3511c0a625.bin ===
Time/Date               Sun Oct 26 03:19:38 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature f59b0dbb820d47af98060f26fff23ac3 age 7 pdb (none))
=== 6676585.bin ===
Time/Date               Sun Oct 26 03:19:37 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 46e891a95950488b8f78e559cefdbada age 3 pdb (none))
=== a6ffddda.bin ===
Time/Date               Sun Oct 26 03:19:38 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 82ce8f765bcb4dae904a51aefa3fdecd age 7 pdb (none))
=== a891a220.bin ===
Time/Date               Sun Oct 26 03:19:36 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature f032dd65f4df4f528892cbea3bdfa9a5 age 12 pdb (none))
=== abc9.bin ===
Time/Date               Sun Oct 26 03:19:38 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature e18a368cb07747069e60596355e88099 age 7 pdb (none))
=== c931.bin ===
Time/Date               Sun Oct 26 03:19:38 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature ff0981ba9c4342c6beecf837d164d141 age 7 pdb (none))
=== d2def806d493f.bin ===
Time/Date               Sun Oct 26 03:19:38 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 9214ab1f119646ee8e0195fb70aea1fe age 7 pdb (none))
=== db887b5440.bin ===
Time/Date               Sun Oct 26 03:19:36 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature 71d02eae0c194fafa2d93e596a41c8eb age 3 pdb (none))
=== e75147c1b1b9406.bin ===
Time/Date               Sun Oct 26 03:19:37 2025
Entry e 0000000000000000 00000000 CLR Runtime Header
 vma:            Hint    Time      Forward  DLL       First
        0001a138  <none>  0301  GetSystemTimeAsFileTime
        DLL Name: VCRUNTIME140.dll
        DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
(format RSDS signature aeff3a3990d941f4b7e160a2a793491b age 3 pdb (none))

image.png

for f in *.bin; do
    echo "=== $(basename $f) ==="
    strings "$f" | grep ".pdb"
done
=== 4fb72a1a24.bin ===
   flag_part_2.pdb 
=== 5e47.bin ===
flag_part_1.pdb
=== 5fa.bin ===
flag_part_3.pdb
=== 7b217.bin ===
flag_part_2.pdb
=== 8c14.bin ===
flag_part_4.pdb
=== 24b429c2b4f4a3c.bin ===
flag_part_5.pdb
=== 53bc247952f.bin ===
flag_part_6.pdb
=== 8208.bin ===
flag_part_1.pdb
=== 945363af.bin ===
flag_part_0.pdb
=== a4c71d6229e19b0.bin ===
flag_part_4.pdb
=== aa60783e.bin ===
flag_part_5.pdb
=== c8c5833b33584.bin ===
flag_part_0.pdb
=== c54940df1ba.bin ===
flag_part_7.pdb
=== d2f7.bin ===
flag_part_7.pdb
=== e1204.bin ===
flag_part_3.pdb
=== f12f.bin ===
flag_part_6.pdb

image.png

image.png

(for f in $(for f in *.bin; do echo "$(strings "$f" | grep "flag_part_") $f"; done | sort -k 1 | awk '{print $NF}'); do
    pdb_string=$(strings "$f" | grep ".pdb" | tr -d ' ')
    filename=$(basename "$f")
    flag_part=$(xxd -s 0x161c0 -l 16 "$f" | awk '{print $10}' | cut -d '.' -f 1)
    echo "$pdb_string $filename $flag_part"
done) | column -t
flag_part_0.pdb  945363af.bin         f9f73
flag_part_0.pdb  c8c5833b33584.bin    flag{
flag_part_1.pdb  5e47.bin             88a2d
flag_part_1.pdb  8208.bin             be7a1
flag_part_2.pdb  4fb72a1a24.bin       16f73
flag_part_2.pdb  7b217.bin            e6817
flag_part_3.pdb  5fa.bin              5f93f
flag_part_3.pdb  e1204.bin            d85d5
flag_part_4.pdb  8c14.bin             48979
flag_part_4.pdb  a4c71d6229e19b0.bin  49f8b
flag_part_5.pdb  24b429c2b4f4a3c.bin  5abfa
flag_part_5.pdb  aa60783e.bin         d9c1a
flag_part_6.pdb  53bc247952f.bin      f18ba
flag_part_6.pdb  f12f.bin             9bfc2
flag_part_7.pdb  c54940df1ba.bin      02}
flag_part_7.pdb  d2f7.bin             23c

image.png

(for f in $(for f in *.bin; do echo "$(strings "$f" | grep "flag_part_") $f"; done | sort -k 1 | awk '{print $NF}'); do
    pdb_string=$(strings "$f" | grep ".pdb" | tr -d ' ')
    filename=$(basename "$f")
    flag_part=$(xxd -s 0x161c0 -l 16 "$f" | awk '{print $10}' | cut -d '.' -f 1)
    timestamp=$(stat -c %y "$f")
    echo "$pdb_string $filename $flag_part \"$timestamp\""
done) | column -t
flag_part_0.pdb  945363af.bin         f9f73  "2025-10-09  12:23:14.842721000  -0400"
flag_part_0.pdb  c8c5833b33584.bin    flag{  "2025-10-09  12:23:23.066150000  -0400"
flag_part_1.pdb  5e47.bin             88a2d  "2025-10-09  12:22:40.038292000  -0400"
flag_part_1.pdb  8208.bin             be7a1  "2025-10-09  11:53:59.905066500  -0400"
flag_part_2.pdb  4fb72a1a24.bin       16f73  "2025-10-09  12:24:02.171057100  -0400"
flag_part_2.pdb  7b217.bin            e6817  "2025-10-09  12:22:34.147032000  -0400"
flag_part_3.pdb  5fa.bin              5f93f  "2025-10-09  12:23:06.483827900  -0400"
flag_part_3.pdb  e1204.bin            d85d5  "2025-10-09  12:22:54.802458800  -0400"
flag_part_4.pdb  8c14.bin             48979  "2025-10-09  12:23:00.003267600  -0400"
flag_part_4.pdb  a4c71d6229e19b0.bin  49f8b  "2025-10-09  12:23:18.905897100  -0400"
flag_part_5.pdb  24b429c2b4f4a3c.bin  5abfa  "2025-10-09  12:22:44.537905300  -0400"
flag_part_5.pdb  aa60783e.bin         d9c1a  "2025-10-09  12:23:26.691249300  -0400"
flag_part_6.pdb  53bc247952f.bin      f18ba  "2025-10-09  12:23:11.077639600  -0400"
flag_part_6.pdb  f12f.bin             9bfc2  "2025-10-09  12:23:30.556146100  -0400"
flag_part_7.pdb  c54940df1ba.bin      02}    "2025-10-09  12:23:36.187480100  -0400"
flag_part_7.pdb  d2f7.bin             23c    "2025-10-09  12:22:51.066867000  -0400"

image.png

(for f in $(for f in original_puzzle_pieces_redux/*.bin; do echo "$(strings "$f" | grep "flag_part_") $f"; done | sort -k 1 | awk '{print $NF}'); do
    pdb_string=$(strings "$f" | grep ".pdb" | tr -d ' ')
    filename=$(basename "$f")
    pe_time=$(objdump -p "$f" | grep "Time/Date" | awk '{$1=""; $2=""; print $0}' | sed 's/^[ \t]*//')
    flag_part=$(xxd -s 0x161c0 -l 16 "$f" | awk '{print $10}' | cut -d '.' -f 1)
    echo "$pdb_string $filename \"$pe_time\" $flag_part"
done) | column -t
objdump: original_puzzle_pieces_redux/4fb72a1a24.bin: file format not recognized
flag_part_0.pdb  945363af.bin         "Oct  9      11:46:56  2025"  f9f73
flag_part_0.pdb  c8c5833b33584.bin    "Oct  9      11:46:55  2025"  flag{
flag_part_1.pdb  5e47.bin             "Oct  9      11:46:57  2025"  88a2d
flag_part_1.pdb  8208.bin             "Oct  9      11:46:55  2025"  be7a1
flag_part_2.pdb  4fb72a1a24.bin       ""    16f73                   
flag_part_2.pdb  7b217.bin            "Oct  9      11:46:55  2025"  e6817
flag_part_3.pdb  5fa.bin              "Oct  9      11:46:57  2025"  5f93f
flag_part_3.pdb  e1204.bin            "Oct  9      11:46:55  2025"  d85d5
flag_part_4.pdb  8c14.bin             "Oct  9      11:46:57  2025"  48979
flag_part_4.pdb  a4c71d6229e19b0.bin  "Oct  9      11:46:56  2025"  49f8b
flag_part_5.pdb  24b429c2b4f4a3c.bin  "Oct  9      11:46:56  2025"  5abfa
flag_part_5.pdb  aa60783e.bin         "Oct  9      11:46:57  2025"  d9c1a
flag_part_6.pdb  53bc247952f.bin      "Oct  9      11:46:56  2025"  f18ba
flag_part_6.pdb  f12f.bin             "Oct  9      11:46:58  2025"  9bfc2
flag_part_7.pdb  c54940df1ba.bin      "Oct  9      11:46:56  2025"  02}
flag_part_7.pdb  d2f7.bin             "Oct  9      11:46:58  2025"  23c
The objdump: ... file format not recognized error is the key, along with the "PE time stamp" hint.

That error for 4fb72a1a24.bin (chunk 16f73) means it's corrupted, so it's the incorrect piece for Pair 2. This strongly implies the other file in each pair is the correct one, and we just need the right sorting key.

The hint says "PE time stamp." Let's build the flag by choosing the file with the oldest (numerically smallest) PE timestamp from each pair.

Pair 0: ... 11:46:55 (Oldest) < ... 11:46:56

Chunk: flag{

Pair 1: ... 11:46:55 (Oldest) < ... 11:46:57

Chunk: be7a1

Pair 2: ... 11:46:55 is the only valid timestamp (the other file is broken).

Chunk: e6817

Pair 3: ... 11:46:55 (Oldest) < ... 11:46:57

Chunk: d85d5

Pair 4: ... 11:46:56 (Oldest) < ... 11:46:57

Chunk: 49f8b

Pair 5: ... 11:46:56 (Oldest) < ... 11:46:57

Chunk: 5abfa

Pair 6: ... 11:46:56 (Oldest) < ... 11:46:58

Chunk: f18ba

Pair 7: ... 11:46:56 (Oldest) < ... 11:46:58

Chunk: 02}

Final Flag: flag{be7a1e6817d85d549f8b5abfaf18ba02}

image.png

flag{

be7a1

e6817

d85d5

49f8b

5abfa

f18ba

02}

image.png

flag{be7a1e6817d85d549f8b5abfaf18ba02}

Or the 2nd released part

image.png

(for f in $(for f in puzzle-pieces-2-final/*.bin; do echo "$(strings "$f" | grep "flag_part_") $f"; done | sort -k1 | awk '{print $NF}'); do
    pdb_string=$(strings "$f" | grep ".pdb" | tr -d ' ')
    filename=$(basename "$f")
    sha_hash=$(sha256sum "$f" | awk '{print $1}')
    flag_part=$(xxd -s 0x189b0 -l 16 "$f" | awk '{print $10}' | cut -d '.' -f1)
    timestamp=$(stat -c %y "$f")
    trailing_zeros=$(echo "$sha_hash" | awk '{ match($0, /0+$/); print (RSTART ? RLENGTH : 0) }')
    echo "$trailing_zeros $pdb_string $filename $sha_hash $flag_part \"$timestamp\""
done) | sort -n -k1 | column -t
0  1a1962fc.bin         3a389838f872c04ee98b56b47b026c56e9e1bf9a791d33f07991d72c8eb20083  f9f73  "2025-10-26  04:17:26.840521000  -0400"
0  3511c0a625.bin       79ec81fe08fded6518d296f50e9d9ef1524ea0c95d88b94b376834351ee53485  16f73  "2025-10-26  04:17:41.633882100  -0400"
0  7c8394d4b6b0.bin     b8f23f0b8cb91161a8a757dc74d7f89d634f2bb50455233425105e44511150a5  d9c1a  "2025-10-26  04:17:37.313875500  -0400"
0  99fa27fd897.bin      598ef46397a9dbf5fe468543022f72a8014f7d0b9448058955f896914fa53f57  23c    "2025-10-26  04:17:43.480986000  -0400"
0  a6ffddda.bin         27f1c4dad4c5e5bc3369adde78dc739121acd64a9549587f9f82a83b520f8704  88a2d  "2025-10-26  04:17:02.441363700  -0400"
0  abc9.bin             0fd014cc10ca48f4c65e9be49914aa0c7e24a19c561801541185473e8a08f9a4  48979  "2025-10-26  04:17:19.542502300  -0400"
0  c931.bin             d81c9372e8fe20e0917bfee218a8e9c78bdb4a41ad2f234b1d28865aa1eb7669  5f93f  "2025-10-26  04:17:17.189218400  -0400"
0  d2def806d493f.bin    0b8b764a058b59bcb7868e3c402119b50ca02e6fb6eb98deec4821efcd82c29b  9bfc2  "2025-10-26  04:17:24.367009000  -0400"
1  a891a220.bin         ee1520fbe2b1dc1bb85321ddc602aa043f7728440e48524fb1b67e1b272822e0  flag{  "2025-10-26  04:17:22.101183100  -0400"
2  db887b5440.bin       016f23e8ac531cec3da547a0e0bc732b4ce96d26306c83b38ec14f7bd2a9e700  be7a1  "2025-10-26  04:17:29.383414900  -0400"
3  64b.bin              3bd187f44e284ff90986ed67104a53cff73fed14a55902a343a86a2108e7f000  e6817  "2025-10-26  04:17:40.017732400  -0400"
4  20a.bin              7f0c897e241ac92d0c4c9ecf680cf8c570c72cc2a1a99ab50ce218c518fd0000  d85d5  "2025-10-26  04:17:35.313007200  -0400"
5  5eb6e6c8.bin         dec0721f3014e22cb1b121f065adaa6debf070c4dc86d4446cb3d6cb87300000  49f8b  "2025-10-26  04:17:31.338321400  -0400"
6  07c8b8cb6a9.bin      45951368223b60ee10f964785f96251fbfd2988af1c7cbb66bd27570ed000000  5abfa  "2025-10-26  04:17:33.548915600  -0400"
7  e75147c1b1b9406.bin  3a9d1b97597e38008e13e2ba64667667bb1a6cdc43b905a826d91496b0000000  f18ba  "2025-10-26  04:17:05.285064700  -0400"
8  6676585.bin          aecc3b8b3b871ac034c60ddb7c0698105bcf4c768603a0b4f64e3a1100000000  02}    "2025-10-26  04:16:58.808224600  -0400"

image.png

(for f in $(for f in original_puzzle_pieces_redux/*.bin; do echo "$(strings "$f" | grep "flag_part_") $f"; done | sort -k 1 | awk '{print $NF}'); do pdb_string=$(strings "$f" | grep ".pdb" | tr -d ' '); filename=$(basename "$f"); pe_time=$(objdump -p "$f" 2>/dev/null | grep "Time/Date" | awk '{$1=""; $2=""; print $0}' | sed 's/^[ \t]*//'); flag_part=$(xxd -s 0x161c0 -l 16 "$f" | awk '{print $10}' | cut -d '.' -f 1); echo "$pdb_string $filename \"$pe_time\" $flag_part"; done) 2>&1 | column -t | tee /dev/tty | awk 'BEGIN { print "\n\n--- Correct Files (in order) ---"; } /^flag_part_/ { NR_ADJ++; split($0, a, "\""); if (NR_ADJ % 2 == 1) { ts1 = a[2]; line1 = $0; } else { ts2 = a[2]; line2 = $0; if (ts1 == "") { print line2; } else if (ts2 == "") { print line1; } else if (ts1 < ts2) { print line1; } else { print line2; } } }'

--- Correct Files (in order) ---
flag_part_0.pdb  945363af.bin         "Oct  9      11:46:56  2025"  f9f73
flag_part_0.pdb  c8c5833b33584.bin    "Oct  9      11:46:55  2025"  flag{
flag_part_1.pdb  5e47.bin             "Oct  9      11:46:57  2025"  88a2d
flag_part_1.pdb  8208.bin             "Oct  9      11:46:55  2025"  be7a1
flag_part_2.pdb  4fb72a1a24.bin       ""    16f73                   
flag_part_2.pdb  7b217.bin            "Oct  9      11:46:55  2025"  e6817
flag_part_3.pdb  5fa.bin              "Oct  9      11:46:57  2025"  5f93f
flag_part_3.pdb  e1204.bin            "Oct  9      11:46:55  2025"  d85d5
flag_part_4.pdb  8c14.bin             "Oct  9      11:46:57  2025"  48979
flag_part_4.pdb  a4c71d6229e19b0.bin  "Oct  9      11:46:56  2025"  49f8b
flag_part_5.pdb  24b429c2b4f4a3c.bin  "Oct  9      11:46:56  2025"  5abfa
flag_part_5.pdb  aa60783e.bin         "Oct  9      11:46:57  2025"  d9c1a
flag_part_6.pdb  53bc247952f.bin      "Oct  9      11:46:56  2025"  f18ba
flag_part_6.pdb  f12f.bin             "Oct  9      11:46:58  2025"  9bfc2
flag_part_7.pdb  c54940df1ba.bin      "Oct  9      11:46:56  2025"  02}
flag_part_7.pdb  d2f7.bin             "Oct  9      11:46:58  2025"  23c

flag_part_0.pdb  c8c5833b33584.bin    "Oct  9      11:46:55  2025"  flag{
flag_part_1.pdb  8208.bin             "Oct  9      11:46:55  2025"  be7a1
flag_part_2.pdb  7b217.bin            "Oct  9      11:46:55  2025"  e6817
flag_part_3.pdb  e1204.bin            "Oct  9      11:46:55  2025"  d85d5
flag_part_4.pdb  a4c71d6229e19b0.bin  "Oct  9      11:46:56  2025"  49f8b
flag_part_5.pdb  24b429c2b4f4a3c.bin  "Oct  9      11:46:56  2025"  5abfa
flag_part_6.pdb  53bc247952f.bin      "Oct  9      11:46:56  2025"  f18ba
flag_part_7.pdb  c54940df1ba.bin      "Oct  9      11:46:56  2025"  02}