- Our solution for Dell Hacktrick 2024
- This project ranked 5th place among 35 teams in leaderboard.
- Built using Python.
- Game Description
- Firstly: The Fox. Mischievous, and sly, the Fox uses all its tactics to fool the Eagle and try to send the message through to the parrot using steganography. As the Fox, youβll have the opportunity to invest your time wisely into honing your skills and creating distractions to increase your chances of evading the Eagleβs watchful gaze.
- Second: The Eagle. Sharp-eyed and vigilant, the Eagle uses its attentiveness to try to intercept and decode the messages sent without getting fooled. Beware of the Foxβs devious tricks, for Fake messages may cross your path. Your mission is to distinguish truth from deception, ensuring that only genuine messages are intercepted while avoiding costly mistakes. The parrot represents the game administrator that receives the messages and scores both ends accordingl
- First install the needed packages.
pip install -r requirements.txt
- Folder Structure
ββββ data
ββββ Documentation
β βββ API Documentation.pdf
β βββ Hackathon General Documentation.pdf
β ββββ Riddles Documentation.pdf
ββββ Eagle
β βββ eagle.py
β βββ Eagle_submission_script.ipynb
β βββ BiLstm_code.ipynb
β ββββ GRU_code.ipynb
ββββ Solvers
β ββββ fox_submission_solver.py
β ββββ eagle_submission_solver.py
....
- The primary objective for the Fox is to send the secret message to the parrot, encoded through steganography, while devising a strategic game plan to outsmart the Eagle and prevent it from intercepting the message.
- For each game, you will be provided with a message of a specific length and an image to use for encoding the messages. During the first phase, the message length is fixed to 20 characters.
-
The game is played in chunks (anything between 1 and 20). In every chunk, there are 3
channels that concurrently carry your messages. The messages can be one of the following
3 types:
- Real: These messages are part of the original message intended for transmission.
- Empty: These are Empty messages.
- Fake: These are Fake messages used to deceive the Eagle. Unlocking this feature requires solving riddles
- Riddles: Whenever you successfully solve a riddle, you will receive a specific reward based on the
difficulty level of the riddle. The rewards for each difficulty are as follows:
Riddle Type Budget Easy A budget of 1 Fake message Medium A budget of 2 Fake message Hard A budget of 3 Fake message - 2 Security Riddles (medium and hard).
- 3 Computer Vision Riddles (easy, medium, and hard difficulties)
- 2 Machine Learning Riddles (easy and medium difficulties).
- 3 Problem Solving Riddles (easy, medium, and hard difficulties).
- As previously mentioned, there are three channels through which messages are sent simultaneously at a time. The channels receive messages in the same order sent by the Fox. However, you can only intercept one channel at a time, which means you will miss the messages sent on the other two channels.
- To assist in this identification process, you receive three footprints at a time, with each footprint corresponding to one of the three channels. These footprints indicate whether the message on a specific channel is Real, Fake, or Empty. By analyzing the footprints, you can determine which message is genuine and request it from that channel. However, be cautious, as requesting a message that is Empty or Fake would result in a penalty and could lead to missing a Real message altogether!
- Each footprint is a visual representation of an audio file, one for each channel. Your task is to identify the word represented, being one of: βDellβ, Fooled, or just an Empty audio with some random noise. Rather than working directly with raw audio files, weβve transformed them into spectrograms with fixed dimensions (Tx, Nfreq).
- Once you have requested and received a message, you need to decode it using the Least Significant Bit (LSB) method explained earlier and submit the decoded message. The accuracy of the submitted message will be verified and contribute to your score. It is crucial to remember that after requesting a message, you must submit a message in response. Failure to do so will cause the game to enter a frozen state until the timeout is reached, and the game ends.
Nour Almulhem |
Ahmed Madbouly |
Ahmed Hany |
Mohamed Nasser |
Eslam Ashraf |
Note: This software is licensed under MIT License, See License for more information Β©nouralmulhem.