Skip to main content

I_Hate_Physics

Challenge

Imported from local notes.md.

Solution

Original Notes

I_Hate_Physics

Challenge Summary

  • Given: a linked repository folder containing one text file, STUDYME.txt, presented as physics study notes.
  • Goal: recover the hidden message and extract the flag in the format DawgCTF{...}.
  • Constraints: solve from the provided notes file only.

Initial Recon / Triage

  • Observations: the file is plain UTF-8 text and contains several obviously suspicious lines, including forced uppercase phrases, unmatched braces, and malformed equations.
  • File identification: starting_files/STUDYME.txt is a text-based stego challenge rather than an image/audio container.
  • Entry points: line starts and line ends looked intentionally crafted, so acrostic-style extraction was the first likely path.

Hypotheses & Approach

  • Hypothesis 1: the message was encoded in special Unicode or invisible whitespace. This was ruled out after rendering escaped characters and checking for non-ASCII code points beyond normal symbols like and α.
  • Hypothesis 2: the message was encoded with positional characters from each line. Interleaving the first and last character from each non-empty line produced readable output immediately.

Execution Steps (Reproducible)

Stage 1

Commands:

cp '/tmp/dawgctf-sp26/I Hate Physics!/STUDYME.txt' starting_files/
file starting_files/STUDYME.txt
sed -n 'l' starting_files/STUDYME.txt | head

Results:

  • Confirmed the asset is UTF-8 text.
  • Escaped output showed no hidden tab or zero-width scheme, but did show intentionally odd line structure.

Stage 2

Commands:

python3 artifacts/extract_message.py

Results:

  • The script interleaves the first and last character of each non-empty line.
  • Full recovered message: DawgCTF{therm0dyn4mic5sucks!}Thisisn0tpartoftheflag!TnmnQ, )∆)W,o:QiadLpa)RS(ns)Rdt Umpp∆y∆sKTAeKTAsV)∆ ∆)WVClCea4I)fTf)UY∆TdTL)1)E0E5E8T6
  • The flag is the leading flag-formatted substring before the decoy text Thisisn0tpartoftheflag!.

Artifacts Produced

  • starting_files/STUDYME.txt: original challenge asset copied from the public repo.
  • artifacts/extract_message.py: helper script used to reconstruct the hidden message.

Flag

DawgCTF{therm0dyn4mic5sucks!}