Add files via upload
@@ -0,0 +1,131 @@
|
||||
# ST3GG Example Files
|
||||
|
||||
Pre-encoded steganography samples for testing the **Agent tab's Exhaustive Mode** and other decoder tools without having to encode files yourself.
|
||||
|
||||
All new examples (Plinian divider series) encode the secret message:
|
||||
```
|
||||
⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
```
|
||||
|
||||
## Original Examples
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_lsb_rgb.png` | LSB RGB 1-bit (STEG v3 header) | Text message embedded in pixel LSBs |
|
||||
| `example_png_chunks.png` | PNG tEXt chunks | Secret messages in metadata chunks |
|
||||
| `example_trailing_data.png` | Trailing data after IEND | Data appended after PNG end marker |
|
||||
| `example_metadata.png` | PNG metadata (base64 + hex) | Encoded strings in Description/HexData fields |
|
||||
| `example_zero_width.txt` | Zero-width Unicode | Invisible characters between visible text |
|
||||
| `example_whitespace.txt` | Whitespace encoding | Hidden bits in trailing spaces/tabs |
|
||||
| `example_invisible_ink.txt` | Unicode tag characters | Invisible ink using U+E0000 range |
|
||||
| `example_audio_lsb.wav` | Audio LSB | Message in least significant bits of audio samples |
|
||||
|
||||
## Image Formats (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_lsb.bmp` | BMP LSB RGB | Plinian divider in pixel LSBs |
|
||||
| `example_comment.gif` | GIF comment extension | Plinian divider in GIF comment block |
|
||||
| `example_lsb.gif` | GIF palette index LSB | Plinian divider in palette index LSBs |
|
||||
| `example_metadata.tiff` | TIFF metadata (base64) | Plinian divider in TIFF description tag |
|
||||
| `example_lsb.tiff` | TIFF LSB RGB | Plinian divider in pixel LSBs |
|
||||
| `example_lsb.ppm` | PPM (Portable Pixmap) LSB | Plinian divider in raw pixel LSBs |
|
||||
| `example_lsb.pgm` | PGM (Portable Graymap) LSB | Plinian divider in grayscale LSBs |
|
||||
| `example_hidden.svg` | SVG XML comments + attributes | Plinian divider in comments, data-attrs, metadata |
|
||||
| `example_lsb.ico` | ICO LSB RGB | Plinian divider in icon pixel LSBs |
|
||||
| `example_metadata.webp` | WebP EXIF metadata | Plinian divider in EXIF ImageDescription |
|
||||
| `example_lsb.webp` | WebP lossless LSB | Plinian divider in pixel LSBs |
|
||||
|
||||
## Document & Structured Data Formats (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_hidden.html` | HTML comments + zero-width + hidden divs | Plinian divider in comments, meta tags, invisible elements, zero-width chars |
|
||||
| `example_hidden.xml` | XML comments + CDATA + PIs | Plinian divider in processing instructions, CDATA, attributes |
|
||||
| `example_hidden.json` | JSON metadata fields | Plinian divider in base64, hex, and direct Unicode fields |
|
||||
| `example_whitespace.csv` | CSV whitespace encoding | Plinian divider in trailing spaces/tabs per row |
|
||||
| `example_hidden.yaml` | YAML comments + byte table | Plinian divider in comments, base64, hex, and per-byte references |
|
||||
| `example_hidden.pdf` | PDF metadata + streams + post-EOF | Plinian divider in XMP metadata, content streams, and after %%EOF |
|
||||
| `example_hidden.rtf` | RTF hidden text groups | Plinian divider in \\v hidden text, info fields, bookmarks |
|
||||
| `example_hidden.md` | Markdown HTML comments + zero-width | Plinian divider in HTML comments, link references, zero-width chars |
|
||||
|
||||
## Audio, Binary & Archive Formats (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_lsb.aiff` | AIFF audio LSB + annotation | Plinian divider in sample LSBs and ANNO chunk |
|
||||
| `example_lsb.au` | AU (Sun/NeXT) audio LSB | Plinian divider in sample LSBs and header annotation |
|
||||
| `example_hidden.zip` | ZIP archive comment + trailing | Plinian divider in archive comment and appended after ZIP |
|
||||
| `example_hidden.tar` | TAR PAX extended headers | Plinian divider in pax header comment and custom STEG fields |
|
||||
| `example_hidden.gz` | GZip extra field + comment | Plinian divider in FEXTRA and FCOMMENT header fields |
|
||||
| `example_hidden.sqlite` | SQLite hidden table | Plinian divider in `_steg_payload` table (direct, base64, hex) |
|
||||
| `example_hidden.hexdump` | Hex dump embedded bytes | Plinian divider embedded at offset 0x40 in raw byte data |
|
||||
| `example_hidden.mid` | MIDI SysEx + text event | Plinian divider in SysEx message and MIDI text event |
|
||||
| `example_hidden.pcap` | PCAP packet payloads | Plinian divider split across UDP packet payloads |
|
||||
|
||||
## Code & Config Formats (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_hidden.py` | Python comments + zero-width docstring | Plinian divider in comments, hex byte table, zero-width docstring |
|
||||
| `example_hidden.js` | JavaScript zero-width + comments | Plinian divider in zero-width chars between tokens, hex comments |
|
||||
| `example_hidden.c` | C comments + byte array | Plinian divider in block comments and `_cal_data[]` array literal |
|
||||
| `example_hidden.css` | CSS comments + pseudo-elements | Plinian divider in comments, `::after` content, zero-width chars |
|
||||
| `example_hidden.ini` | INI comments + byte table | Plinian divider in comments and calibration byte entries |
|
||||
| `example_hidden.sh` | Shell whitespace + comments | Plinian divider in trailing whitespace and script comments |
|
||||
| `example_hidden.sql` | SQL comments + byte checksums | Plinian divider in comments and per-byte checksum lines |
|
||||
| `example_hidden.tex` | LaTeX comments | Plinian divider in TeX comments, base64, and hex |
|
||||
| `example_hidden.toml` | TOML comments | Plinian divider in TOML comments, base64, and hex |
|
||||
|
||||
## How to Use
|
||||
|
||||
1. Open ST3GG in your browser
|
||||
2. Go to the **Agent** tab
|
||||
3. Upload any example file
|
||||
4. Enable **Exhaustive Mode** for the most thorough analysis
|
||||
5. Run the agent and watch it find the hidden data
|
||||
|
||||
## Unicode & Text Tricks (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_homoglyph.txt` | Cyrillic/Latin homoglyphs | Plinian divider in Cyrillic letter substitutions (а vs a, с vs c, etc.) |
|
||||
| `example_variation_selector.txt` | Unicode variation selectors | Plinian divider in VS1 (U+FE01) presence/absence after letters |
|
||||
| `example_combining_diacritics.txt` | Combining Grapheme Joiner | Plinian divider in invisible U+034F marks after letters |
|
||||
| `example_confusable_whitespace.txt` | Unicode space variants | Plinian divider in en/em/thin space substitution (2 bits per space) |
|
||||
| `example_emoji_substitution.txt` | Emoji pair encoding | Plinian divider in emoji choice (🌑=0 vs 🌚=1, etc.) |
|
||||
|
||||
## Network Protocol Steganography (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_dns_tunnel.pcap` | DNS query name tunneling | Plinian divider base32-encoded in DNS query labels |
|
||||
| `example_icmp_steg.pcap` | ICMP echo payload | Plinian divider in ICMP ping request payloads |
|
||||
| `example_tcp_covert.pcap` | TCP covert channel | Plinian divider in TCP ISN + timestamp option fields |
|
||||
| `example_http_headers.pcap` | HTTP header smuggling | Plinian divider in custom X- headers, cookies |
|
||||
|
||||
## Image Format Tricks (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_polyglot.png.zip` | PNG+ZIP polyglot | Valid as both PNG image and ZIP archive with secret.txt |
|
||||
| `example_filter_encoding.png` | PNG scanline filter types | Plinian divider in per-scanline filter byte choice (None=0, Sub=1) |
|
||||
| `example_alpha_lsb.png` | Alpha channel LSB only | Plinian divider in transparency channel LSBs (RGB untouched) |
|
||||
|
||||
## Miscellaneous Techniques (Plinian Divider)
|
||||
|
||||
| File | Technique | What's Hidden |
|
||||
|------|-----------|---------------|
|
||||
| `example_key_ordering.json` | JSON key sort order | Plinian divider in object key ordering (alphabetical=0, reversed=1) |
|
||||
| `example_capitalization.txt` | Letter case encoding | Plinian divider in word-initial capitalization (lower=0, upper=1) |
|
||||
| `example_silence_interval.wav` | Audio silence timing | Plinian divider in silence gap durations (short=0, long=1) |
|
||||
|
||||
## Regenerating Files
|
||||
|
||||
If you want to modify the hidden messages or create new samples:
|
||||
|
||||
```bash
|
||||
python3 examples/generate_examples.py
|
||||
```
|
||||
|
||||
Requires Python 3 with Pillow (`pip install Pillow`).
|
||||
@@ -0,0 +1 @@
|
||||
the stegosaurus was a large herbivorous dinosaur that lived During the late jurassic Period about one Hundred Fifty Million years ago it Is best Known for the distinctive Row of Bony plates Along its Back And the sharp spikes on Its Tail Known as the thagomizer Despite its Massive size the stegosaurus had a remarkably small Brain roughly The size of a Walnut this has led To much Speculation About how Such A Large Animal could function with Such limited Cognitive capacity the name stegosaurus means roof lizard Or covered Lizard referring to the Plates on Its Back Which were once thought To lie Flat like roof Tiles Modern Research suggests these Plates were Used for thermoregulation And Display Rather Than Defense The thagomizer was almost Certainly used As a defensive weapon against predators like allosaurus Fossil evidence Shows puncture marks on Allosaurus bones that match The spacing Of Stegosaurus tail Spikes Perfectly This Remarkable creature continues to Capture our Imagination and represents one of the most iconic Dinosaurs ever Discovered paleontologists have unearthed Specimens across western north America and Parts Of portugal Expanding Our Knowledge Of its range and Behavior the Stegosaurus remains One of the Most Recognizable dinosaurs In the fossil Record
|
||||
@@ -0,0 +1,23 @@
|
||||
Stegosauru͏s Def͏ens͏e͏ M͏echa͏ni͏sms
|
||||
|
||||
T͏he͏ St͏eg͏o͏sauru͏s͏ p͏osse͏ss͏ed two pri͏ma͏ry de͏fens͏iv͏e͏ fe͏a͏t͏u͏res t͏ha͏t made it
|
||||
a͏ fo͏rmid͏ab͏l͏e͏ oppo͏ne͏nt f͏o͏r͏ pre͏da͏tor͏s͏ o͏f͏ t͏h͏e Lat͏e J͏urassic p͏er͏iod.
|
||||
|
||||
F͏irst͏, th͏e͏ do͏u͏b͏l͏e row͏ of͏ bony plat͏es͏ alon͏g its͏ ba͏c͏k s͏e͏r͏v͏ed mu͏lt͏ip͏le
|
||||
p͏u͏rp͏ose͏s. Whi͏le n͏ot͏ s͏t͏r͏on͏g en͏o͏ugh t͏o f͏u͏n͏ctio͏n as͏ t͏r͏u͏e ar͏mo͏r͏, t͏h͏es͏e
|
||||
p͏la͏t͏es m͏ad͏e͏ t͏he an͏imal͏ ap͏pea͏r m͏u͏c͏h͏ la͏rg͏e͏r͏ and m͏or͏e intimi͏da͏t͏i͏n͏g w͏hen͏
|
||||
v͏iewe͏d f͏r͏o͏m the͏ sid͏e. Th͏e pl͏at͏e͏s͏ w͏er͏e ri͏c͏h͏ly s͏up͏p͏l͏ied w͏it͏h͏ blo͏od
|
||||
v͏es͏s͏e͏l͏s͏, s͏u͏gges͏ti͏ng͏ the͏y͏ al͏so p͏lay͏ed a r͏ol͏e͏ in͏ t͏h͏e͏rmor͏eg͏ulation,
|
||||
a͏ll͏owin͏g the͏ di͏n͏os͏a͏u͏r͏ to wa͏rm͏ up quickl͏y i͏n the͏ mo͏r͏n͏ing s͏un͏.
|
||||
|
||||
Sec͏o͏n͏d, an͏d m͏ore͏ i͏m͏p͏o͏r͏tant͏ly͏ for defen͏se͏, was t͏he th͏ag͏o͏mi͏z͏e͏r͏: a
|
||||
clu͏st͏er of four͏ la͏rge s͏pi͏k͏e͏s at t͏he͏ end o͏f i͏ts͏ mu͏s͏cula͏r tail. Each
|
||||
spike could measure up to ninety centimeters in length. The tail
|
||||
itself was remarkably flexible and powerful, capable of delivering
|
||||
devastating blows to attackers. Evidence from Allosaurus fossils
|
||||
shows wounds consistent with Stegosaurus tail spike impacts,
|
||||
confirming that this weapon was used actively in combat.
|
||||
|
||||
Together, these adaptations made Stegosaurus one of the best
|
||||
defended herbivores of its era, despite its relatively small brain
|
||||
and slow movement speed compared to theropod predators.
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1 @@
|
||||
The study of dinosaur fossils has revealed incredible details about prehistoric life on Earth. Each discovery adds new pieces to the puzzle of ancient ecosystems and evolutionary relationships. Modern technology including CT scanning and molecular analysis allows paleontologists to extract information that was previously impossible to obtain from fossilized remains. The field continues to evolve with new species being described every year and old assumptions being challenged by fresh evidence. From the massive sauropods to the tiny compsognathids the diversity of dinosaur life was truly staggering. Their reign lasted over one hundred and sixty million years making them one of the most successful groups of land animals in the history of our planet. Understanding their biology behavior and eventual extinction helps us appreciate the fragility and resilience of life on Earth.
|
||||
@@ -0,0 +1,19 @@
|
||||
Dinosaur Mood Tracker 🦕
|
||||
========================
|
||||
|
||||
Today's paleontology status indicators:
|
||||
|
||||
🌑⭐🔴🔵🟢⚫⚪🔶🌑🌟🔴🔵🟢🖤⚪🔶🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟩⚫🤍🔶🌚⭐🟥🟦🟢⚫⚪🔶🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌑⭐🟥🔵🟩🖤⚪🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🟦🟩🖤⚪🔶🌚⭐🟥🔵🟢🖤🤍🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌑⭐🟥🔵🟩🖤⚪🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌑⭐🟥🔵🟩🖤⚪🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🟥🔵🟢🖤🤍🔶🌚⭐🔴🟦🟢⚫⚪🟧🌑⭐🟥🔵🟩🖤🤍🟧🌑🌟🔴🔵🟩🖤⚪🔶🌑🌟🔴🟦🟩🖤⚪🔶🌑🌟🔴🔵🟩🖤🤍🟧🌑⭐🟥🔵🟩🖤🤍🟧🌑🌟🔴🟦🟢🖤🤍🔶🌑🌟🔴🟦🟩🖤⚪🔶🌑🌟🔴🔵🟢🖤⚪🟧🌑⭐🟥🔵🟩🖤🤍🟧🌑🌟🔴🟦🟩🖤⚪🔶🌑🌟🔴🟦🟢⚫⚪🔶🌑⭐🟥🔵🟩🖤🤍🟧🌑🌟🔴🔵🟩🖤⚪🔶🌑🌟🔴🟦🟩🖤⚪🔶🌑🌟🔴🔵🟩⚫⚪🟧🌑⭐🟥🔵🟩🖤🤍🟧🌑🌟🔴🔵🟩🖤🤍🔶🌑🌟🔴🟦🟩🖤⚪🔶🌑🌟🔴🟦🟩⚫⚪🟧🌑⭐🟥🔵🟩🖤🤍🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🟥🔵🟢🖤🤍🔶🌚⭐🔴🟦🟢⚫🤍🔶🌑⭐🟥🔵🟩🖤⚪🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌑⭐🟥🔵🟩🖤⚪🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🟦🟩🖤⚪🔶🌚⭐🟥🔵🟢🖤🤍🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌑⭐🟥🔵🟩🖤⚪🟧🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟢⚫⚪🔶🌚⭐🟥🔵🟢⚫🤍🔶🌚🌟🟥🔵🟢⚫🤍🔶🌚⭐🔴🔵🟩⚫🤍🔶🌚⭐🟥🟦🟢⚫⚪🟧
|
||||
|
||||
Legend:
|
||||
🌑🌚 = Moon phases (new moon / moon face)
|
||||
⭐🌟 = Star brightness (solid / sparkling)
|
||||
🔴🟥 = Alert levels (circle / square)
|
||||
🔵🟦 = Status indicators (circle / square)
|
||||
🟢🟩 = Progress markers (circle / square)
|
||||
⚫🖤 = Fossil darkness (circle / heart)
|
||||
⚪🤍 = Bone whiteness (circle / heart)
|
||||
🔶🟧 = Amber indicators (diamond / square)
|
||||
|
||||
Each emoji represents a data point in our specimen tracking system.
|
||||
The pattern above encodes today's field survey results.
|
||||
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* specimen_analyzer.c - Paleontology Specimen Analysis Tool
|
||||
* Generated by STEGOSAURUS WRECKS v3.0
|
||||
*
|
||||
* ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
/* Calibration data (do not modify) */
|
||||
static const unsigned char _cal_data[] = {
|
||||
0xe2, 0x8a, 0xb0, 0xe2, 0x80, 0xa2, 0x2d, 0xe2, 0x80, 0xa2, 0xe2, 0x9c, 0xa7, 0xe2, 0x80, 0xa2, 0x2d, 0xe2, 0x80, 0xa2, 0x2d, 0xe2, 0xa6, 0x91, 0x2f, 0x4c, 0x5c, 0x4f, 0x2f, 0x56, 0x5c, 0x45, 0x2f, 0x5c, 0x50, 0x2f, 0x4c, 0x5c, 0x49, 0x2f, 0x4e, 0x5c, 0x59, 0x2f, 0xe2, 0xa6, 0x92, 0x2d, 0xe2, 0x80, 0xa2, 0x2d, 0xe2, 0x80, 0xa2, 0xe2, 0x9c, 0xa7, 0xe2, 0x80, 0xa2, 0x2d, 0xe2, 0x80, 0xa2, 0xe2, 0x8a, 0xb1
|
||||
};
|
||||
static const size_t _cal_len = sizeof(_cal_data);
|
||||
|
||||
/* b64: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE= */
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
const char *period;
|
||||
double length_m;
|
||||
double mass_kg;
|
||||
const char *diet;
|
||||
} Specimen;
|
||||
|
||||
static const Specimen specimens[] = {
|
||||
{"Stegosaurus", "Late Jurassic", 9.0, 5000.0, "Herbivore"},
|
||||
{"Triceratops", "Late Cretaceous", 9.0, 6000.0, "Herbivore"},
|
||||
{"Tyrannosaurus", "Late Cretaceous", 12.3, 8400.0, "Carnivore"},
|
||||
{"Velociraptor", "Late Cretaceous", 2.0, 15.0, "Carnivore"},
|
||||
{"Brachiosaurus", "Late Jurassic", 26.0, 56000.0, "Herbivore"},
|
||||
};
|
||||
|
||||
#define NUM_SPECIMENS (sizeof(specimens) / sizeof(specimens[0]))
|
||||
|
||||
double calculate_density(const Specimen *s) {
|
||||
/* Rough cylindrical body model */
|
||||
double radius = s->length_m / 6.0;
|
||||
double volume = M_PI * radius * radius * s->length_m;
|
||||
return s->mass_kg / volume;
|
||||
}
|
||||
|
||||
void print_analysis(void) {
|
||||
printf("Specimen Density Analysis\n");
|
||||
printf("%-20s %-18s %8s %10s\n",
|
||||
"Name", "Period", "Mass(kg)", "Density");
|
||||
printf("%-20s %-18s %8s %10s\n",
|
||||
"----", "------", "--------", "-------");
|
||||
|
||||
for (size_t i = 0; i < NUM_SPECIMENS; i++) {
|
||||
double d = calculate_density(&specimens[i]);
|
||||
printf("%-20s %-18s %8.0f %10.1f\n",
|
||||
specimens[i].name, specimens[i].period,
|
||||
specimens[i].mass_kg, d);
|
||||
}
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
print_analysis();
|
||||
/* Verify calibration data integrity */
|
||||
if (_cal_len > 0 && _cal_data[0] != 0) {
|
||||
/* Calibration OK */
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* ST3GG Steganography Theme
|
||||
* ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
* Generated by STEGOSAURUS WRECKS v3.0
|
||||
*/
|
||||
|
||||
/* hex:e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1 */
|
||||
|
||||
:root {
|
||||
--bg-primary: #1a1a2e;
|
||||
--bg-secondary: #16213e;
|
||||
--text-primary: #e0e0e0;
|
||||
--text-secondary: #a0a0b0;
|
||||
--accent-purple: #c471ed;
|
||||
--accent-blue: #12c2e9;
|
||||
--accent-orange: #f5af19;
|
||||
--accent-red: #f64f59;
|
||||
}
|
||||
|
||||
/* */
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
/* Steganography analysis panel */
|
||||
.steg-panel {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid rgba(196, 113, 237, 0.2);
|
||||
border-radius: 12px;
|
||||
padding: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.steg-panel__header {
|
||||
font-size: 1.25rem;
|
||||
color: var(--accent-purple);
|
||||
margin-bottom: 0.75rem;
|
||||
border-bottom: 1px solid rgba(196, 113, 237, 0.15);
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
/* b64:4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE= */
|
||||
|
||||
.steg-panel__content {
|
||||
font-family: 'Fira Code', 'Consolas', monospace;
|
||||
font-size: 0.875rem;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* Hidden element - payload carrier */
|
||||
[data-steg-payload]::after {
|
||||
content: "⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱";
|
||||
display: none;
|
||||
visibility: hidden;
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.5rem 1.25rem;
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
font-size: 0.875rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.btn--primary {
|
||||
background: linear-gradient(135deg, var(--accent-purple), var(--accent-blue));
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn--primary:hover {
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 15px rgba(196, 113, 237, 0.3);
|
||||
}
|
||||
|
||||
/* Animation keyframes */
|
||||
@keyframes pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.7; }
|
||||
}
|
||||
|
||||
.analyzing {
|
||||
animation: pulse 1.5s ease-in-out infinite;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
# ST3GG Hex Dump - Memory Analysis Output
|
||||
# Generated by STEGOSAURUS WRECKS v3.0
|
||||
# Payload offset: 0x0040
|
||||
# Payload size: 68 bytes
|
||||
|
||||
00000000 a3 1c 06 bd 46 3e 39 23 bc 1a ad bd e4 8b 16 97 |....F>9#........|
|
||||
00000010 6c 08 07 17 37 3b 81 9a 06 8f 32 b7 a6 b3 8b 6b |l...7;....2....k|
|
||||
00000020 38 72 96 47 cf de 01 c2 ce 28 b2 6c 57 47 27 37 |8r.G.....(.lWG'7|
|
||||
00000030 f5 c3 56 1a 17 61 18 5b d8 58 9a 43 ce 0b ba 75 |..V..a.[.X.C...u|
|
||||
00000040 e2 8a b0 e2 80 a2 2d e2 80 a2 e2 9c a7 e2 80 a2 |......-.........|
|
||||
00000050 2d e2 80 a2 2d e2 a6 91 2f 4c 5c 4f 2f 56 5c 45 |-...-.../L\O/V\E|
|
||||
00000060 2f 5c 50 2f 4c 5c 49 2f 4e 5c 59 2f e2 a6 92 2d |/\P/L\I/N\Y/...-|
|
||||
00000070 e2 80 a2 2d e2 80 a2 e2 9c a7 e2 80 a2 2d e2 80 |...-.........-..|
|
||||
00000080 a2 e2 8a b1 3a d2 08 ce 50 66 44 10 36 e9 f1 91 |....:...PfD.6...|
|
||||
00000090 e0 b7 50 36 a7 7f 65 e2 ea a4 75 24 43 23 3f be |..P6..e...u$C#?.|
|
||||
000000a0 8f 89 43 bf 95 6d e5 95 66 5c 38 ff ff 23 82 7e |..C..m..f\8..#.~|
|
||||
000000b0 17 c1 0c dc 1c 27 a0 28 ca ae 6c 98 10 62 61 98 |.....'.(..l..ba.|
|
||||
000000c0 ff 77 87 40 f8 8d dc f1 02 ae b8 1d ae e2 89 c0 |.w.@............|
|
||||
000000d0 44 c4 a4 57 1c 4b 6f 28 74 00 f4 b8 e0 b8 43 f8 |D..W.Ko(t.....C.|
|
||||
000000e0 80 c3 2d 81 e9 1b de a0 4c d7 a3 81 9b 32 27 5f |..-.....L....2'_|
|
||||
000000f0 c3 29 8a f4 c7 ec 87 eb 00 99 52 7d 04 1c ed 5c |.)........R}...\|
|
||||
|
||||
# Total: 256 bytes
|
||||
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="description" content="4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=">
|
||||
<meta name="generator" content="STEGOSAURUS WRECKS">
|
||||
<title>Steganography Demo</title>
|
||||
<style>
|
||||
body { font-family: 'Segoe UI', sans-serif; background: #1a1a2e; color: #e0e0e0;
|
||||
max-width: 700px; margin: 40px auto; padding: 20px; }
|
||||
h1 { color: #c471ed; }
|
||||
.cover { line-height: 1.8; }
|
||||
/* data-payload: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1 */
|
||||
.hidden { display: none; }
|
||||
</style>
|
||||
</head>
|
||||
<!-- ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱ -->
|
||||
<body>
|
||||
<h1>Stegosaurus Facts</h1>
|
||||
<div class="cover">
|
||||
<p>The Stegosaurus was one of the most distinctive dinosaurs of the Late
|
||||
Jurassic period. Its double row of bony plates and spiked tail made it
|
||||
instantly recognizable among prehistoric creatures.</p>
|
||||
<p>Despite weighing up to 5 metric tons, the Stegosaurus had a brain
|
||||
roughly the size of a walnut, making it one of the least intelligent
|
||||
dinosaurs relative to its body size.</p>
|
||||
</div>
|
||||
<div class="hidden" data-secret="⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱" id="steg-payload">
|
||||
4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
</div>
|
||||
<noscript><!-- hex:e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1 --></noscript>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,111 @@
|
||||
; ST3GG Configuration File
|
||||
; Generated by STEGOSAURUS WRECKS v3.0
|
||||
; ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
|
||||
[general]
|
||||
application = ST3GG
|
||||
version = 3.0
|
||||
description = Steganography Toolkit
|
||||
author = STEGOSAURUS WRECKS
|
||||
|
||||
[encoding]
|
||||
default_channels = RGB
|
||||
default_bits = 1
|
||||
strategy = sequential
|
||||
compression = true
|
||||
|
||||
; Payload: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
|
||||
[detection]
|
||||
exhaustive_mode = true
|
||||
auto_detect = true
|
||||
max_scan_depth = 11
|
||||
timeout_seconds = 30
|
||||
|
||||
[security]
|
||||
encryption = AES-256-GCM
|
||||
key_derivation = PBKDF2
|
||||
iterations = 100000
|
||||
|
||||
; hex: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
|
||||
[output]
|
||||
format = PNG
|
||||
quality = 100
|
||||
preserve_metadata = true
|
||||
|
||||
; Calibration byte table (system data - do not modify)
|
||||
; cal[00] = 226 ; 0xe2
|
||||
; cal[01] = 138 ; 0x8a
|
||||
; cal[02] = 176 ; 0xb0
|
||||
; cal[03] = 226 ; 0xe2
|
||||
; cal[04] = 128 ; 0x80
|
||||
; cal[05] = 162 ; 0xa2
|
||||
; cal[06] = 45 ; 0x2d
|
||||
; cal[07] = 226 ; 0xe2
|
||||
; cal[08] = 128 ; 0x80
|
||||
; cal[09] = 162 ; 0xa2
|
||||
; cal[10] = 226 ; 0xe2
|
||||
; cal[11] = 156 ; 0x9c
|
||||
; cal[12] = 167 ; 0xa7
|
||||
; cal[13] = 226 ; 0xe2
|
||||
; cal[14] = 128 ; 0x80
|
||||
; cal[15] = 162 ; 0xa2
|
||||
; cal[16] = 45 ; 0x2d
|
||||
; cal[17] = 226 ; 0xe2
|
||||
; cal[18] = 128 ; 0x80
|
||||
; cal[19] = 162 ; 0xa2
|
||||
; cal[20] = 45 ; 0x2d
|
||||
; cal[21] = 226 ; 0xe2
|
||||
; cal[22] = 166 ; 0xa6
|
||||
; cal[23] = 145 ; 0x91
|
||||
; cal[24] = 47 ; 0x2f
|
||||
; cal[25] = 76 ; 0x4c
|
||||
; cal[26] = 92 ; 0x5c
|
||||
; cal[27] = 79 ; 0x4f
|
||||
; cal[28] = 47 ; 0x2f
|
||||
; cal[29] = 86 ; 0x56
|
||||
; cal[30] = 92 ; 0x5c
|
||||
; cal[31] = 69 ; 0x45
|
||||
; cal[32] = 47 ; 0x2f
|
||||
; cal[33] = 92 ; 0x5c
|
||||
; cal[34] = 80 ; 0x50
|
||||
; cal[35] = 47 ; 0x2f
|
||||
; cal[36] = 76 ; 0x4c
|
||||
; cal[37] = 92 ; 0x5c
|
||||
; cal[38] = 73 ; 0x49
|
||||
; cal[39] = 47 ; 0x2f
|
||||
; cal[40] = 78 ; 0x4e
|
||||
; cal[41] = 92 ; 0x5c
|
||||
; cal[42] = 89 ; 0x59
|
||||
; cal[43] = 47 ; 0x2f
|
||||
; cal[44] = 226 ; 0xe2
|
||||
; cal[45] = 166 ; 0xa6
|
||||
; cal[46] = 146 ; 0x92
|
||||
; cal[47] = 45 ; 0x2d
|
||||
; cal[48] = 226 ; 0xe2
|
||||
; cal[49] = 128 ; 0x80
|
||||
; cal[50] = 162 ; 0xa2
|
||||
; cal[51] = 45 ; 0x2d
|
||||
; cal[52] = 226 ; 0xe2
|
||||
; cal[53] = 128 ; 0x80
|
||||
; cal[54] = 162 ; 0xa2
|
||||
; cal[55] = 226 ; 0xe2
|
||||
; cal[56] = 156 ; 0x9c
|
||||
; cal[57] = 167 ; 0xa7
|
||||
; cal[58] = 226 ; 0xe2
|
||||
; cal[59] = 128 ; 0x80
|
||||
; cal[60] = 162 ; 0xa2
|
||||
; cal[61] = 45 ; 0x2d
|
||||
; cal[62] = 226 ; 0xe2
|
||||
; cal[63] = 128 ; 0x80
|
||||
; cal[64] = 162 ; 0xa2
|
||||
; cal[65] = 226 ; 0xe2
|
||||
; cal[66] = 138 ; 0x8a
|
||||
; cal[67] = 177 ; 0xb1
|
||||
|
||||
[advanced]
|
||||
ghost_mode = false
|
||||
matryoshka_layers = 0
|
||||
dct_robustness = 2
|
||||
; payload_direct = ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
@@ -0,0 +1,54 @@
|
||||
// Dinosaur Specimen Database Module
|
||||
//
|
||||
|
||||
/**
|
||||
* @module specimen-db
|
||||
* @description Paleontology specimen management
|
||||
* @version 3.0.0
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
// ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
|
||||
const SPECIMENS = [
|
||||
{ name: "Stegosaurus", period: "Late Jurassic", lengthM: 9.0, massKg: 5000 },
|
||||
{ name: "Triceratops", period: "Late Cretaceous", lengthM: 9.0, massKg: 6000 },
|
||||
{ name: "Tyrannosaurus", period: "Late Cretaceous", lengthM: 12.3, massKg: 8400 },
|
||||
{ name: "Velociraptor", period: "Late Cretaceous", lengthM: 2.0, massKg: 15 },
|
||||
{ name: "Brachiosaurus", period: "Late Jurassic", lengthM: 26.0, massKg: 56000 },
|
||||
];
|
||||
|
||||
// Internal config hash: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
|
||||
/**
|
||||
* Calculate body mass index for a specimen
|
||||
* @param {Object} specimen - The specimen data
|
||||
* @returns {number} BMI estimate
|
||||
*/
|
||||
function calculateBMI(specimen) {
|
||||
return specimen.massKg / (specimen.lengthM ** 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Search specimens by period
|
||||
* @param {string} period - Geological period name
|
||||
* @returns {Array} Matching specimens
|
||||
*/
|
||||
function findByPeriod(period) {
|
||||
return SPECIMENS.filter(s => s.period.includes(period));
|
||||
}
|
||||
|
||||
// Verification: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
|
||||
function printReport() {
|
||||
console.log("Specimen Analysis Report");
|
||||
console.log("=".repeat(50));
|
||||
for (const spec of SPECIMENS) {
|
||||
const bmi = calculateBMI(spec).toFixed(1);
|
||||
console.log(` ${spec.name.padEnd(20)} BMI=${bmi} (${spec.period})`);
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof module !== "undefined") {
|
||||
module.exports = { SPECIMENS, calculateBMI, findByPeriod, printReport };
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"title": "Steganography Example Dataset",
|
||||
"version": "3.0",
|
||||
"generator": "STEGOSAURUS WRECKS",
|
||||
"specimens": [
|
||||
{
|
||||
"name": "Stegosaurus stenops",
|
||||
"period": "Late Jurassic",
|
||||
"mya": [
|
||||
155,
|
||||
150
|
||||
],
|
||||
"diet": "herbivore",
|
||||
"mass_kg": 5000
|
||||
},
|
||||
{
|
||||
"name": "Stegosaurus ungulatus",
|
||||
"period": "Late Jurassic",
|
||||
"mya": [
|
||||
155,
|
||||
145
|
||||
],
|
||||
"diet": "herbivore",
|
||||
"mass_kg": 5500
|
||||
}
|
||||
],
|
||||
"_metadata": {
|
||||
"comment": "Standard paleontology dataset",
|
||||
"encoding": "UTF-8",
|
||||
"payload_b64": "4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=",
|
||||
"payload_hex": "e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1",
|
||||
"payload_direct": "⊰•-•✧•-•-⦑/L\\O/V\\E/\\P/L\\I/N\\Y/⦒-•-•✧•-•⊱"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
# Steganography: A Brief History
|
||||
|
||||
<!-- ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱ -->
|
||||
|
||||
Steganography, from the Greek words *steganos* (covered) and *graphein*
|
||||
(to write), is the practice of concealing messages within other non-secret data.
|
||||
|
||||
## Ancient Origins
|
||||
|
||||
The earliest recorded use of steganography dates back to **440 BC**, when
|
||||
Histiaeus shaved a slave's head, tattooed a message on his scalp, and waited
|
||||
for the hair to regrow before sending him as a messenger.
|
||||
|
||||
<!-- base64:4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE= -->
|
||||
|
||||
## Digital Era
|
||||
|
||||
Modern digital steganography encompasses a wide range of techniques:
|
||||
|
||||
| Technique | Medium | Capacity | Stealth |
|
||||
|-----------|--------|----------|---------|
|
||||
| LSB Embedding | Images | High | Medium |
|
||||
| DCT Domain | JPEG | Medium | High |
|
||||
| Whitespace | Text | Low | High |
|
||||
| Zero-Width | Text | Low | Very High |
|
||||
| Audio LSB | Audio | Medium | High |
|
||||
| Metadata | Any | Low | Medium |
|
||||
|
||||
## Tools
|
||||
|
||||
**ST3GG (STEGOSAURUS WRECKS)** is an advanced steganography toolkit supporting
|
||||
15 channel presets, 8 bit depths, and 4 encoding strategies.
|
||||
|
||||
<!-- hex:e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1 -->
|
||||
|
||||
[comment]: # (⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱)
|
||||
|
||||
---
|
||||
*Generated by STEGOSAURUS WRECKS v3.0*
|
||||
@@ -0,0 +1,68 @@
|
||||
%PDF-1.4
|
||||
%âãÏÓ
|
||||
1 0 obj
|
||||
<< /Type /Catalog /Pages 2 0 R /Metadata 5 0 R >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
|
||||
endobj
|
||||
3 0 obj
|
||||
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << >> >>
|
||||
endobj
|
||||
4 0 obj
|
||||
<< /Length 244 >>
|
||||
stream
|
||||
BT
|
||||
/F1 16 Tf
|
||||
100 700 Td
|
||||
(ST3GG Steganography Example) Tj
|
||||
0 -30 Td
|
||||
/F1 11 Tf
|
||||
(This PDF contains hidden data.) Tj
|
||||
0 -20 Td
|
||||
(Look in the metadata and streams...) Tj
|
||||
ET
|
||||
% Hidden: ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
|
||||
endstream
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Type /Metadata /Subtype /XML /Length 851 >>
|
||||
stream
|
||||
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
||||
<x:xmpmeta xmlns:x="adobe:ns:meta/">
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:steg="http://st3gg.example.com/ns/">
|
||||
<rdf:Description>
|
||||
<dc:title>ST3GG Example</dc:title>
|
||||
<dc:creator>STEGOSAURUS WRECKS</dc:creator>
|
||||
<dc:description>⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱</dc:description>
|
||||
<steg:payload>4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=</steg:payload>
|
||||
<steg:hex>e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1</steg:hex>
|
||||
</rdf:Description>
|
||||
</rdf:RDF>
|
||||
</x:xmpmeta>
|
||||
<?xpacket end="w"?>
|
||||
endstream
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Title (ST3GG Example) /Author (STEGOSAURUS WRECKS) /Subject (⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱) /Producer (ST3GG v3.0) /Keywords (4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=) >>
|
||||
endobj
|
||||
xref
|
||||
0 7
|
||||
0000000000 65535 f
|
||||
0000000015 00000 n
|
||||
0000000080 00000 n
|
||||
0000000137 00000 n
|
||||
0000000241 00000 n
|
||||
0000000536 00000 n
|
||||
0000001468 00000 n
|
||||
trailer
|
||||
<< /Size 7 /Root 1 0 R /Info 6 0 R >>
|
||||
startxref
|
||||
1749
|
||||
%%EOF
|
||||
|
||||
% HIDDEN AFTER EOF: ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
@@ -0,0 +1,138 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Paleontology Specimen Analyzer
|
||||
|
||||
A tool for analyzing dinosaur fossil measurements and classifications.
|
||||
"""
|
||||
|
||||
# ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
# Configuration hash: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
|
||||
import math
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional
|
||||
|
||||
|
||||
@dataclass
|
||||
class Specimen:
|
||||
"""Represents a dinosaur specimen record."""
|
||||
name: str
|
||||
period: str
|
||||
length_m: float
|
||||
mass_kg: float
|
||||
diet: str
|
||||
brain_volume_cc: Optional[float] = None
|
||||
|
||||
|
||||
# Calibration byte table (do not modify)
|
||||
# cfg[0] = 0xe2
|
||||
# cfg[1] = 0x8a
|
||||
# cfg[2] = 0xb0
|
||||
# cfg[3] = 0xe2
|
||||
# cfg[4] = 0x80
|
||||
# cfg[5] = 0xa2
|
||||
# cfg[6] = 0x2d
|
||||
# cfg[7] = 0xe2
|
||||
# cfg[8] = 0x80
|
||||
# cfg[9] = 0xa2
|
||||
# cfg[10] = 0xe2
|
||||
# cfg[11] = 0x9c
|
||||
# cfg[12] = 0xa7
|
||||
# cfg[13] = 0xe2
|
||||
# cfg[14] = 0x80
|
||||
# cfg[15] = 0xa2
|
||||
# cfg[16] = 0x2d
|
||||
# cfg[17] = 0xe2
|
||||
# cfg[18] = 0x80
|
||||
# cfg[19] = 0xa2
|
||||
# cfg[20] = 0x2d
|
||||
# cfg[21] = 0xe2
|
||||
# cfg[22] = 0xa6
|
||||
# cfg[23] = 0x91
|
||||
# cfg[24] = 0x2f
|
||||
# cfg[25] = 0x4c
|
||||
# cfg[26] = 0x5c
|
||||
# cfg[27] = 0x4f
|
||||
# cfg[28] = 0x2f
|
||||
# cfg[29] = 0x56
|
||||
# cfg[30] = 0x5c
|
||||
# cfg[31] = 0x45
|
||||
# cfg[32] = 0x2f
|
||||
# cfg[33] = 0x5c
|
||||
# cfg[34] = 0x50
|
||||
# cfg[35] = 0x2f
|
||||
# cfg[36] = 0x4c
|
||||
# cfg[37] = 0x5c
|
||||
# cfg[38] = 0x49
|
||||
# cfg[39] = 0x2f
|
||||
# cfg[40] = 0x4e
|
||||
# cfg[41] = 0x5c
|
||||
# cfg[42] = 0x59
|
||||
# cfg[43] = 0x2f
|
||||
# cfg[44] = 0xe2
|
||||
# cfg[45] = 0xa6
|
||||
# cfg[46] = 0x92
|
||||
# cfg[47] = 0x2d
|
||||
# cfg[48] = 0xe2
|
||||
# cfg[49] = 0x80
|
||||
# cfg[50] = 0xa2
|
||||
# cfg[51] = 0x2d
|
||||
# cfg[52] = 0xe2
|
||||
# cfg[53] = 0x80
|
||||
# cfg[54] = 0xa2
|
||||
# cfg[55] = 0xe2
|
||||
# cfg[56] = 0x9c
|
||||
# cfg[57] = 0xa7
|
||||
# cfg[58] = 0xe2
|
||||
# cfg[59] = 0x80
|
||||
# cfg[60] = 0xa2
|
||||
# cfg[61] = 0x2d
|
||||
# cfg[62] = 0xe2
|
||||
# cfg[63] = 0x80
|
||||
# cfg[64] = 0xa2
|
||||
# cfg[65] = 0xe2
|
||||
# cfg[66] = 0x8a
|
||||
# cfg[67] = 0xb1
|
||||
|
||||
|
||||
def calculate_brain_body_ratio(specimen: Specimen) -> float:
|
||||
"""Calculate the encephalization quotient (EQ) for a specimen."""
|
||||
if specimen.brain_volume_cc is None:
|
||||
return 0.0
|
||||
# EQ = brain mass / (0.12 * body_mass^0.67)
|
||||
expected = 0.12 * (specimen.mass_kg ** 0.67)
|
||||
return specimen.brain_volume_cc / expected
|
||||
|
||||
|
||||
def classify_intelligence(eq: float) -> str:
|
||||
"""Classify relative intelligence based on EQ."""
|
||||
if eq > 1.0:
|
||||
return "above average"
|
||||
elif eq > 0.5:
|
||||
return "average"
|
||||
else:
|
||||
return "below average"
|
||||
|
||||
|
||||
# Payload verification: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
SPECIMENS = [
|
||||
Specimen("Stegosaurus", "Late Jurassic", 9.0, 5000, "Herbivore", 2.8),
|
||||
Specimen("Triceratops", "Late Cretaceous", 9.0, 6000, "Herbivore", 70.0),
|
||||
Specimen("T. rex", "Late Cretaceous", 12.3, 8400, "Carnivore", 343.0),
|
||||
Specimen("Velociraptor", "Late Cretaceous", 2.0, 15, "Carnivore", 15.0),
|
||||
Specimen("Brachiosaurus", "Late Jurassic", 26.0, 56000, "Herbivore", 26.0),
|
||||
]
|
||||
|
||||
|
||||
def main():
|
||||
"""Analyze specimens and print results."""
|
||||
print("Paleontology Specimen Analysis")
|
||||
print("=" * 50)
|
||||
for spec in SPECIMENS:
|
||||
eq = calculate_brain_body_ratio(spec)
|
||||
intel = classify_intelligence(eq)
|
||||
print(f" {spec.name:20s} EQ={eq:.3f} ({intel})")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,5 @@
|
||||
{\rtf1\ansi\deff0{\fonttbl{\f0 Courier New;}}{\colortbl;\red0\green0\blue0;\red200\green100\blue255;}
|
||||
{\info{\title ST3GG Steganography Example}{\author STEGOSAURUS WRECKS}{\subject ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱}{\doccomm Hidden payload: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1}}
|
||||
\f0\fs22\cf1 {\b ST3GG Steganography Example}\par\parThis RTF document contains hidden data in multiple locations:\par- Document info/metadata fields\par- Hidden text runs (\\v flag)\par- Hex-encoded byte sequences\par\parThe secret is concealed using RTF's native formatting capabilities.\par\par{\v \'e2\'8a\'b0\'e2\'80\'a2\'2d\'e2\'80\'a2\'e2\'9c\'a7\'e2\'80\'a2\'2d\'e2\'80\'a2\'2d\'e2\'a6\'91\'2f\'4c\'5c\'4f\'2f\'56\'5c\'45\'2f\'5c\'50\'2f\'4c\'5c\'49\'2f\'4e\'5c\'59\'2f\'e2\'a6\'92\'2d\'e2\'80\'a2\'2d\'e2\'80\'a2\'e2\'9c\'a7\'e2\'80\'a2\'2d\'e2\'80\'a2\'e2\'8a\'b1}{\v PLINIAN DIVIDER ENCODED ABOVE}
|
||||
{\*\bkmkstart steg_payload}⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱{\*\bkmkend steg_payload}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
# Specimen Analysis Script
|
||||
# Generated by STEGOSAURUS WRECKS v3.0
|
||||
|
||||
# Verification: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
readonly SPECIMENS=(
|
||||
"Stegosaurus:Late Jurassic:9.0:5000:Herbivore"
|
||||
"Triceratops:Late Cretaceous:9.0:6000:Herbivore"
|
||||
"Tyrannosaurus:Late Cretaceous:12.3:8400:Carnivore"
|
||||
"Velociraptor:Late Cretaceous:2.0:15:Carnivore"
|
||||
"Brachiosaurus:Late Jurassic:26.0:56000:Herbivore"
|
||||
)
|
||||
|
||||
print_header() {
|
||||
printf "%-20s %-18s %8s %8s\n" "Name" "Period" "Length" "Mass"
|
||||
printf "%-20s %-18s %8s %8s\n" "----" "------" "------" "----"
|
||||
}
|
||||
|
||||
analyze_specimens() {
|
||||
for entry in "${SPECIMENS[@]}"; do
|
||||
IFS=":" read -r name period length mass diet <<< "$entry"
|
||||
printf "%-20s %-18s %8s %8s\n" "$name" "$period" "$length" "$mass"
|
||||
done
|
||||
}
|
||||
|
||||
# hex:e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
|
||||
main() {
|
||||
echo "Specimen Analysis Report"
|
||||
echo "========================"
|
||||
print_header
|
||||
analyze_specimens
|
||||
echo ""
|
||||
echo "Analysis complete."
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,133 @@
|
||||
-- =============================================================================
|
||||
-- Paleontology Specimen Database Schema
|
||||
-- Generated by STEGOSAURUS WRECKS v3.0
|
||||
-- ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
-- =============================================================================
|
||||
|
||||
-- hex: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
|
||||
CREATE TABLE IF NOT EXISTS geological_periods (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
start_mya REAL NOT NULL,
|
||||
end_mya REAL NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO geological_periods (id, name, start_mya, end_mya) VALUES
|
||||
(1, 'Late Triassic', 237.0, 201.3),
|
||||
(2, 'Early Jurassic', 201.3, 174.1),
|
||||
(3, 'Late Jurassic', 163.5, 145.0),
|
||||
(4, 'Early Cretaceous', 145.0, 100.5),
|
||||
(5, 'Late Cretaceous', 100.5, 66.0);
|
||||
|
||||
-- b64: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
|
||||
CREATE TABLE IF NOT EXISTS specimens (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
species TEXT,
|
||||
period_id INTEGER REFERENCES geological_periods(id),
|
||||
length_m REAL,
|
||||
mass_kg REAL,
|
||||
diet TEXT CHECK(diet IN ('Herbivore', 'Carnivore', 'Omnivore', 'Piscivore')),
|
||||
brain_volume_cc REAL,
|
||||
discovery_year INTEGER,
|
||||
location TEXT
|
||||
);
|
||||
|
||||
INSERT INTO specimens (id, name, species, period_id, length_m, mass_kg, diet, brain_volume_cc, discovery_year, location) VALUES
|
||||
(1, 'Stegosaurus', 'S. stenops', 3, 9.0, 5000, 'Herbivore', 2.8, 1877, 'Morrison Formation, CO'),
|
||||
(2, 'Triceratops', 'T. horridus', 5, 9.0, 6000, 'Herbivore', 70.0, 1887, 'Hell Creek, MT'),
|
||||
(3, 'Tyrannosaurus', 'T. rex', 5, 12.3, 8400, 'Carnivore', 343.0, 1905, 'Hell Creek, MT'),
|
||||
(4, 'Velociraptor', 'V. mongoliensis', 5, 2.0, 15, 'Carnivore', 15.0, 1924, 'Djadokhta, Mongolia'),
|
||||
(5, 'Brachiosaurus', 'B. altithorax', 3, 26.0, 56000, 'Herbivore', 26.0, 1903, 'Morrison Formation, CO');
|
||||
|
||||
-- Checksum verification data
|
||||
-- chk[00]: 226
|
||||
-- chk[01]: 138
|
||||
-- chk[02]: 176
|
||||
-- chk[03]: 226
|
||||
-- chk[04]: 128
|
||||
-- chk[05]: 162
|
||||
-- chk[06]: 45
|
||||
-- chk[07]: 226
|
||||
-- chk[08]: 128
|
||||
-- chk[09]: 162
|
||||
-- chk[10]: 226
|
||||
-- chk[11]: 156
|
||||
-- chk[12]: 167
|
||||
-- chk[13]: 226
|
||||
-- chk[14]: 128
|
||||
-- chk[15]: 162
|
||||
-- chk[16]: 45
|
||||
-- chk[17]: 226
|
||||
-- chk[18]: 128
|
||||
-- chk[19]: 162
|
||||
-- chk[20]: 45
|
||||
-- chk[21]: 226
|
||||
-- chk[22]: 166
|
||||
-- chk[23]: 145
|
||||
-- chk[24]: 47
|
||||
-- chk[25]: 76
|
||||
-- chk[26]: 92
|
||||
-- chk[27]: 79
|
||||
-- chk[28]: 47
|
||||
-- chk[29]: 86
|
||||
-- chk[30]: 92
|
||||
-- chk[31]: 69
|
||||
-- chk[32]: 47
|
||||
-- chk[33]: 92
|
||||
-- chk[34]: 80
|
||||
-- chk[35]: 47
|
||||
-- chk[36]: 76
|
||||
-- chk[37]: 92
|
||||
-- chk[38]: 73
|
||||
-- chk[39]: 47
|
||||
-- chk[40]: 78
|
||||
-- chk[41]: 92
|
||||
-- chk[42]: 89
|
||||
-- chk[43]: 47
|
||||
-- chk[44]: 226
|
||||
-- chk[45]: 166
|
||||
-- chk[46]: 146
|
||||
-- chk[47]: 45
|
||||
-- chk[48]: 226
|
||||
-- chk[49]: 128
|
||||
-- chk[50]: 162
|
||||
-- chk[51]: 45
|
||||
-- chk[52]: 226
|
||||
-- chk[53]: 128
|
||||
-- chk[54]: 162
|
||||
-- chk[55]: 226
|
||||
-- chk[56]: 156
|
||||
-- chk[57]: 167
|
||||
-- chk[58]: 226
|
||||
-- chk[59]: 128
|
||||
-- chk[60]: 162
|
||||
-- chk[61]: 45
|
||||
-- chk[62]: 226
|
||||
-- chk[63]: 128
|
||||
-- chk[64]: 162
|
||||
-- chk[65]: 226
|
||||
-- chk[66]: 138
|
||||
-- chk[67]: 177
|
||||
|
||||
-- Analysis view
|
||||
CREATE VIEW IF NOT EXISTS specimen_analysis AS
|
||||
SELECT
|
||||
s.name,
|
||||
s.species,
|
||||
gp.name AS period,
|
||||
s.length_m,
|
||||
s.mass_kg,
|
||||
s.diet,
|
||||
CASE
|
||||
WHEN s.brain_volume_cc / (0.12 * POWER(s.mass_kg, 0.67)) > 1.0 THEN 'High EQ'
|
||||
WHEN s.brain_volume_cc / (0.12 * POWER(s.mass_kg, 0.67)) > 0.5 THEN 'Medium EQ'
|
||||
ELSE 'Low EQ'
|
||||
END AS intelligence_class
|
||||
FROM specimens s
|
||||
JOIN geological_periods gp ON s.period_id = gp.id;
|
||||
|
||||
-- End of schema
|
||||
-- Payload: ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱ -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"
|
||||
data-steg="4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE="
|
||||
data-desc="Nothing suspicious here">
|
||||
<!-- Hidden in plain sight: steganography demonstration file -->
|
||||
<defs>
|
||||
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#4a0e8f;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#c471ed;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient id="fg" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#12c2e9;stop-opacity:0.8" />
|
||||
<stop offset="100%" style="stop-color:#f64f59;stop-opacity:0.8" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect width="200" height="200" fill="url(#bg)"/>
|
||||
<circle cx="100" cy="80" r="50" fill="url(#fg)" opacity="0.7"/>
|
||||
<polygon points="60,140 100,90 140,140" fill="#f5af19" opacity="0.6"/>
|
||||
<text x="100" y="175" font-family="monospace" font-size="11"
|
||||
fill="white" text-anchor="middle" opacity="0.8">ST3GG Example</text>
|
||||
<!-- hex:e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1 -->
|
||||
<metadata>
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<rdf:Description>
|
||||
<dc:description>⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱</dc:description>
|
||||
<dc:creator>STEGOSAURUS WRECKS</dc:creator>
|
||||
</rdf:Description>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,72 @@
|
||||
%% =============================================================================
|
||||
%% Paleontology Specimen Report
|
||||
%% Generated by STEGOSAURUS WRECKS v3.0
|
||||
%% ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
%% =============================================================================
|
||||
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{amsmath}
|
||||
|
||||
%% hex: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
|
||||
\title{Comparative Analysis of Ornithischian Dinosaurs}
|
||||
\author{STEGOSAURUS WRECKS Research Division}
|
||||
\date{Late Jurassic -- Late Cretaceous}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
%% b64: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
|
||||
\begin{abstract}
|
||||
This report presents a comparative analysis of ornithischian dinosaur specimens,
|
||||
focusing on body mass, encephalization quotient, and defensive adaptations.
|
||||
The Stegosaurus remains one of the most distinctive members of this clade.
|
||||
\end{abstract}
|
||||
|
||||
\section{Introduction}
|
||||
|
||||
The Ornithischia (``bird-hipped'' dinosaurs) represent one of the two major
|
||||
clades of dinosaurs, characterized by a pubis bone that points backward.
|
||||
This clade includes many well-known species including Stegosaurus,
|
||||
Triceratops, and Ankylosaurus.
|
||||
|
||||
%% Payload: ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
|
||||
\section{Specimen Data}
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{Ornithischian Specimen Measurements}
|
||||
\begin{tabular}{lllrr}
|
||||
\toprule
|
||||
\textbf{Species} & \textbf{Period} & \textbf{Diet} & \textbf{Length (m)} & \textbf{Mass (kg)} \\
|
||||
\midrule
|
||||
Stegosaurus & Late Jurassic & Herbivore & 9.0 & 5000 \\
|
||||
Triceratops & Late Cretaceous & Herbivore & 9.0 & 6000 \\
|
||||
Ankylosaurus & Late Cretaceous & Herbivore & 6.5 & 6000 \\
|
||||
Parasaurolophus & Late Cretaceous & Herbivore & 9.5 & 2500 \\
|
||||
Pachycephalosaurus & Late Cretaceous & Herbivore & 4.5 & 450 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\section{Encephalization Quotient}
|
||||
|
||||
The encephalization quotient (EQ) provides a measure of relative brain size:
|
||||
\begin{equation}
|
||||
EQ = \frac{E_{actual}}{E_{expected}} = \frac{E_{actual}}{0.12 \cdot M^{0.67}}
|
||||
\end{equation}
|
||||
where $E_{actual}$ is the actual brain mass and $M$ is body mass in kilograms.
|
||||
|
||||
\section{Conclusion}
|
||||
|
||||
Ornithischian dinosaurs show remarkable diversity in defensive adaptations,
|
||||
from the plates and spikes of Stegosaurus to the armored shell of Ankylosaurus
|
||||
and the horned frill of Triceratops.
|
||||
|
||||
\end{document}
|
||||
@@ -0,0 +1,63 @@
|
||||
# ST3GG Project Configuration
|
||||
# ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
# Generated by STEGOSAURUS WRECKS v3.0
|
||||
|
||||
[project]
|
||||
name = "ST3GG"
|
||||
version = "3.0.0"
|
||||
description = "Advanced Steganography Toolkit"
|
||||
authors = ["STEGOSAURUS WRECKS"]
|
||||
license = "MIT"
|
||||
|
||||
# hex: e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
|
||||
[encoding]
|
||||
default_channels = "RGB"
|
||||
default_bits_per_channel = 1
|
||||
strategy = "sequential"
|
||||
compression = true
|
||||
|
||||
[encoding.presets]
|
||||
minimal = { channels = "R", bits = 1 }
|
||||
standard = { channels = "RGB", bits = 1 }
|
||||
high_capacity = { channels = "RGBA", bits = 2 }
|
||||
maximum = { channels = "RGBA", bits = 8 }
|
||||
|
||||
# b64: 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
|
||||
[detection]
|
||||
exhaustive_mode = true
|
||||
auto_detect = true
|
||||
max_depth = 11
|
||||
timeout = 30
|
||||
|
||||
[security]
|
||||
encryption = "AES-256-GCM"
|
||||
key_derivation = "PBKDF2"
|
||||
iterations = 100_000
|
||||
ghost_mode = false
|
||||
|
||||
[output]
|
||||
format = "PNG"
|
||||
quality = 100
|
||||
preserve_metadata = true
|
||||
|
||||
# Payload: ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
|
||||
[[specimens]]
|
||||
name = "Stegosaurus"
|
||||
period = "Late Jurassic"
|
||||
length_m = 9.0
|
||||
mass_kg = 5_000
|
||||
|
||||
[[specimens]]
|
||||
name = "Triceratops"
|
||||
period = "Late Cretaceous"
|
||||
length_m = 9.0
|
||||
mass_kg = 6_000
|
||||
|
||||
[[specimens]]
|
||||
name = "Tyrannosaurus"
|
||||
period = "Late Cretaceous"
|
||||
length_m = 12.3
|
||||
mass_kg = 8_400
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?steg-payload 4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=?>
|
||||
<!-- ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱ -->
|
||||
<dinosaurs xmlns:steg="http://st3gg.example.com/steg"
|
||||
steg:payload="e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1">
|
||||
<species name="Stegosaurus" period="Late Jurassic">
|
||||
<description>Large herbivorous thyreophoran dinosaur</description>
|
||||
<weight unit="kg">5000</weight>
|
||||
<length unit="m">9</length>
|
||||
<features>
|
||||
<feature>Dorsal plates</feature>
|
||||
<feature>Thagomizer (tail spikes)</feature>
|
||||
<feature>Small brain cavity</feature>
|
||||
</features>
|
||||
<hidden><![CDATA[⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱]]></hidden>
|
||||
</species>
|
||||
<species name="Ankylosaurus" period="Late Cretaceous">
|
||||
<description>Armored dinosaur with club tail</description>
|
||||
<weight unit="kg">6000</weight>
|
||||
<length unit="m">7</length>
|
||||
</species>
|
||||
<!-- base64:4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE= -->
|
||||
</dinosaurs>
|
||||
@@ -0,0 +1,116 @@
|
||||
# Paleontology Specimen Database
|
||||
# Generated by STEGOSAURUS WRECKS
|
||||
# ⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱
|
||||
|
||||
database:
|
||||
name: "DinoTracker"
|
||||
version: "3.0"
|
||||
encoding: "UTF-8"
|
||||
|
||||
specimens:
|
||||
- name: "Stegosaurus stenops"
|
||||
classification:
|
||||
order: Ornithischia
|
||||
family: Stegosauridae # b64:4oqw4oCiLeKAouKcp+KAoi3igKIt4qaRL0xcTy9WXEUvXFAvTFxJL05cWS/ippIt4oCiLeKAouKcp+KAoi3igKLiirE=
|
||||
period: "Late Jurassic"
|
||||
location: "Morrison Formation, USA"
|
||||
measurements:
|
||||
length_m: 9.0
|
||||
height_m: 4.0
|
||||
mass_kg: 5000
|
||||
|
||||
- name: "Triceratops horridus"
|
||||
classification:
|
||||
order: Ornithischia
|
||||
family: Ceratopsidae
|
||||
period: "Late Cretaceous" # hex:e28ab0e280a22de280a2e29ca7e280a22de280a22de2a6912f4c5c4f2f565c452f5c502f4c5c492f4e5c592fe2a6922de280a22de280a2e29ca7e280a22de280a2e28ab1
|
||||
location: "Hell Creek Formation, USA"
|
||||
measurements:
|
||||
length_m: 9.0
|
||||
height_m: 3.0
|
||||
mass_kg: 6000
|
||||
|
||||
- name: "Tyrannosaurus rex"
|
||||
classification:
|
||||
order: Saurischia
|
||||
family: Tyrannosauridae
|
||||
period: "Late Cretaceous"
|
||||
location: "Western North America"
|
||||
measurements:
|
||||
length_m: 12.3
|
||||
height_m: 4.0
|
||||
mass_kg: 8400
|
||||
|
||||
# Byte reference table (calibration data)
|
||||
# ref-000: 0xe2
|
||||
# ref-001: 0x8a
|
||||
# ref-002: 0xb0
|
||||
# ref-003: 0xe2
|
||||
# ref-004: 0x80
|
||||
# ref-005: 0xa2
|
||||
# ref-006: 0x2d
|
||||
# ref-007: 0xe2
|
||||
# ref-008: 0x80
|
||||
# ref-009: 0xa2
|
||||
# ref-010: 0xe2
|
||||
# ref-011: 0x9c
|
||||
# ref-012: 0xa7
|
||||
# ref-013: 0xe2
|
||||
# ref-014: 0x80
|
||||
# ref-015: 0xa2
|
||||
# ref-016: 0x2d
|
||||
# ref-017: 0xe2
|
||||
# ref-018: 0x80
|
||||
# ref-019: 0xa2
|
||||
# ref-020: 0x2d
|
||||
# ref-021: 0xe2
|
||||
# ref-022: 0xa6
|
||||
# ref-023: 0x91
|
||||
# ref-024: 0x2f
|
||||
# ref-025: 0x4c
|
||||
# ref-026: 0x5c
|
||||
# ref-027: 0x4f
|
||||
# ref-028: 0x2f
|
||||
# ref-029: 0x56
|
||||
# ref-030: 0x5c
|
||||
# ref-031: 0x45
|
||||
# ref-032: 0x2f
|
||||
# ref-033: 0x5c
|
||||
# ref-034: 0x50
|
||||
# ref-035: 0x2f
|
||||
# ref-036: 0x4c
|
||||
# ref-037: 0x5c
|
||||
# ref-038: 0x49
|
||||
# ref-039: 0x2f
|
||||
# ref-040: 0x4e
|
||||
# ref-041: 0x5c
|
||||
# ref-042: 0x59
|
||||
# ref-043: 0x2f
|
||||
# ref-044: 0xe2
|
||||
# ref-045: 0xa6
|
||||
# ref-046: 0x92
|
||||
# ref-047: 0x2d
|
||||
# ref-048: 0xe2
|
||||
# ref-049: 0x80
|
||||
# ref-050: 0xa2
|
||||
# ref-051: 0x2d
|
||||
# ref-052: 0xe2
|
||||
# ref-053: 0x80
|
||||
# ref-054: 0xa2
|
||||
# ref-055: 0xe2
|
||||
# ref-056: 0x9c
|
||||
# ref-057: 0xa7
|
||||
# ref-058: 0xe2
|
||||
# ref-059: 0x80
|
||||
# ref-060: 0xa2
|
||||
# ref-061: 0x2d
|
||||
# ref-062: 0xe2
|
||||
# ref-063: 0x80
|
||||
# ref-064: 0xa2
|
||||
# ref-065: 0xe2
|
||||
# ref-066: 0x8a
|
||||
# ref-067: 0xb1
|
||||
|
||||
metadata:
|
||||
payload: "⊰•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•⊱"
|
||||
source: "ST3GG steganography toolkit"
|
||||
@@ -0,0 +1 @@
|
||||
The Stegosaurus was а speсtaculаr dinоѕaur that roаmed thе Earth aрprоximаtelу оne hundred and fifty milliоn уеars agо. Deѕpite its enormous ѕize, thiѕ peaсeful herbivorе pоѕsеѕѕеd a remarkаbly ѕmall brain, roughly the size оf a wаlnut. The distinсtive рlаtеs along itѕ baсk were оnсе thought to ѕervе as аrmоr, but mоdеrn rеѕearch ѕuggeѕts they were primarilу usеd for thermorеgulation and diѕplау. Eасh рlаte was сovеred in a network of blood vеsѕels that сould absоrb or rеlеaѕе hеаt depending оn the аnimal'ѕ needѕ. Тhe fаmous thаgomizer on itѕ tail, cоnsiѕting оf fоur ѕharр spikеѕ, was almоst сеrtаinly used аs a dеfеnѕivе weaрon аgаinѕt рredаtorѕ like Аllоsauruѕ. Foѕѕil еvidence ѕhows punсture mаrks on Аlloѕаuruѕ bоneѕ that mаtсh thе spaсing of Stеgosaurus tail sрikeѕ реrfеctlу. This rеmаrkable crеaturе соntinues to сapturе our imaginаtion and rеprеѕеntѕ onе of the mоѕt iсonic dinоsаurѕ еver discоverеd. Рaleоntologiѕts hаvе unеаrthеd ѕрecimenѕ aсroѕs weѕtеrn North Аmericа and pаrts of Pоrtugal, ехpаnding оur knоwlеdge of its rаnge аnd behavior.
|
||||
@@ -0,0 +1,11 @@
|
||||
Dinosaur Facts: The Stegosaurus
|
||||
|
||||
The Stegosaurus is one of the most recognizable dinosaurs thanks to its
|
||||
distinctive double row of kite-shaped plates rising vertically along its
|
||||
arched back and the two pairs of long spikes extending from its tail.
|
||||
|
||||
Size: Up to 9 meters (30 feet) long and 4 meters (14 feet) tall
|
||||
Weight: Approximately 5,000 kg (11,000 lbs)
|
||||
Diet: Herbivore (ferns, cycads, and conifers)
|
||||
Period: Late Jurassic (155-150 million years ago)
|
||||
Location: Western North America, Portugal
|
||||
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 535 B |
|
After Width: | Height: | Size: 556 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 854 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 884 B |
|
After Width: | Height: | Size: 733 B |
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,25 @@
|
||||
Dinosaur Cl︁assi︁fic︁a︁t︁ion G︁ui︁de
|
||||
=============================
|
||||
|
||||
Or︁de︁r O︁rn︁i︁thisc︁h︁i︁a (bir︁d-h︁ipped din︁os︁aurs︁):
|
||||
- Steg︁os︁a︁ur︁u︁s︁: L︁ate J︁ur︁assic, 9m lo︁ng︁, herb︁iv︁o︁r︁e
|
||||
- Tri︁ce︁rat︁o︁p︁s: La︁te︁ Cre︁t︁a︁c︁e︁o︁us, 9m l︁on︁g, herbivo︁re︁
|
||||
- Anky︁losa︁ur︁u︁s: L︁a︁t︁e︁ Cret︁ac︁eous, 6.5m lon︁g, h︁erbi︁vore︁
|
||||
- Pa︁c︁hy︁c︁e︁p︁halo︁sa︁ur︁us: L︁a︁te︁ Cre︁tace︁ous︁, 4.5m l︁o︁n︁g︁, he︁rbi︁v︁ore
|
||||
- P︁ar︁a︁s︁auro︁lop︁h︁u︁s︁: Lat︁e C︁r︁e︁t︁ac︁eo︁us︁, 9.5m︁ lon︁g, h︁e︁r︁bivo︁re
|
||||
- Ig︁ua︁nod︁on︁: E︁a︁r︁ly︁ Cr︁e︁t︁aceo︁us︁, 10m long, he︁rb︁i︁v︁o︁re︁
|
||||
|
||||
Ord︁e︁r Sau︁ri︁s︁c︁hia (l︁iza︁rd-h︁ipp︁ed︁ d︁i︁n︁os︁aur︁s︁):
|
||||
- T︁yra︁nn︁o︁s︁auru︁s: L︁a︁te C︁ret︁ac︁e︁o︁u︁s︁, 12m︁ l︁ong, c︁ar︁ni︁vor︁e︁
|
||||
- Ve︁loc︁ira︁ptor︁: La︁t︁e C︁r︁e︁t︁aceo︁us︁, 2m long, car︁ni︁vore︁
|
||||
- Brac︁hi︁o︁sa︁u︁r︁u︁s: Lat︁e J︁urassic, 26m︁ lo︁ng, he︁rb︁i︁v︁ore
|
||||
- D︁ip︁lod︁o︁c︁us: L︁at︁e Ju︁r︁a︁s︁s︁i︁c, 26m lo︁ng︁, herbivor︁e
|
||||
- A︁llos︁auru︁s: L︁a︁te︁ J︁u︁r︁assi︁c, 8.5m︁ long, carn︁iv︁ore
|
||||
- S︁pi︁n︁o︁saur︁us︁: Late︁ Cr︁et︁ac︁e︁ous, 15m︁ long, piscivore
|
||||
- Compsognathus: Late Jurassic, 1m long, carnivore
|
||||
- Gallimimus: Late Cretaceous, 6m long, omnivore
|
||||
|
||||
The distinction between these orders is based on the structure
|
||||
of the pelvis. Ornithischians have a pubis bone that points
|
||||
backward, similar to modern birds, while saurischians have a
|
||||
forward-pointing pubis, more like modern lizards.
|
||||
@@ -0,0 +1,74 @@
|
||||
Species,Period,Length_m,Mass_kg,Diet
|
||||
Stegosaurus,Late Jurassic,9.0,5000,Herbivore
|
||||
Triceratops,Late Cretaceous,9.0,6000,Herbivore
|
||||
Tyrannosaurus,Late Cretaceous,12.3,8400,Carnivore
|
||||
Velociraptor,Late Cretaceous,2.0,15,Carnivore
|
||||
Brachiosaurus,Late Jurassic,26.0,56000,Herbivore
|
||||
Ankylosaurus,Late Cretaceous,6.5,6000,Herbivore
|
||||
Parasaurolophus,Late Cretaceous,9.5,2500,Herbivore
|
||||
Diplodocus,Late Jurassic,26.0,16000,Herbivore
|
||||
Allosaurus,Late Jurassic,8.5,2300,Carnivore
|
||||
Spinosaurus,Late Cretaceous,15.0,7400,Piscivore
|
||||
Pachycephalosaurus,Late Cretaceous,4.5,450,Herbivore
|
||||
Carnotaurus,Late Cretaceous,8.0,1500,Carnivore
|
||||
Iguanodon,Early Cretaceous,10.0,3400,Herbivore
|
||||
Pteranodon,Late Cretaceous,6.0,25,Piscivore
|
||||
Deinonychus,Early Cretaceous,3.4,73,Carnivore
|
||||
Apatosaurus,Late Jurassic,21.0,23000,Herbivore
|
||||
Compsognathus,Late Jurassic,1.0,3,Carnivore
|
||||
Gallimimus,Late Cretaceous,6.0,440,Omnivore
|
||||
Therizinosaurus,Late Cretaceous,10.0,5000,Herbivore
|
||||
Archaeopteryx,Late Jurassic,0.5,1,Carnivore
|
||||
Baryonyx,Early Cretaceous,10.0,1700,Piscivore
|
||||
Coelophysis,Late Triassic,3.0,30,Carnivore
|
||||
Dilophosaurus,Early Jurassic,7.0,400,Carnivore
|
||||
Giganotosaurus,Late Cretaceous,13.0,6800,Carnivore
|
||||
Edmontosaurus,Late Cretaceous,13.0,4000,Herbivore
|
||||
Protoceratops,Late Cretaceous,1.8,83,Herbivore
|
||||
Oviraptor,Late Cretaceous,2.0,33,Omnivore
|
||||
Maiasaura,Late Cretaceous,9.0,3000,Herbivore
|
||||
Kentrosaurus,Late Jurassic,4.5,1600,Herbivore
|
||||
Plateosaurus,Late Triassic,8.0,1500,Herbivore
|
||||
Ceratosaurus,Late Jurassic,6.0,980,Carnivore
|
||||
Megalosaurus,Middle Jurassic,9.0,1400,Carnivore
|
||||
Corythosaurus,Late Cretaceous,9.0,3800,Herbivore
|
||||
Lambeosaurus,Late Cretaceous,9.4,5600,Herbivore
|
||||
Styracosaurus,Late Cretaceous,5.5,2700,Herbivore
|
||||
Dracorex,Late Cretaceous,3.0,450,Herbivore
|
||||
Microraptor,Early Cretaceous,0.8,1,Carnivore
|
||||
Psittacosaurus,Early Cretaceous,2.0,20,Herbivore
|
||||
Sauropelta,Early Cretaceous,5.0,1500,Herbivore
|
||||
Nodosaurus,Late Cretaceous,6.0,3500,Herbivore
|
||||
Euoplocephalus,Late Cretaceous,6.0,2000,Herbivore
|
||||
Citipati,Late Cretaceous,2.9,75,Omnivore
|
||||
Ornithomimus,Late Cretaceous,3.5,170,Omnivore
|
||||
Struthiomimus,Late Cretaceous,4.3,150,Omnivore
|
||||
Dromaeosaurus,Late Cretaceous,2.0,15,Carnivore
|
||||
Utahraptor,Early Cretaceous,6.0,500,Carnivore
|
||||
Suchomimus,Early Cretaceous,11.0,3800,Piscivore
|
||||
Irritator,Early Cretaceous,8.0,1000,Piscivore
|
||||
Carcharodontosaurus,Late Cretaceous,12.0,6200,Carnivore
|
||||
Acrocanthosaurus,Early Cretaceous,11.5,5200,Carnivore
|
||||
Torvosaurus,Late Jurassic,10.0,3600,Carnivore
|
||||
Camarasaurus,Late Jurassic,18.0,18000,Herbivore
|
||||
Amargasaurus,Early Cretaceous,10.0,8000,Herbivore
|
||||
Nigersaurus,Early Cretaceous,9.0,4000,Herbivore
|
||||
Dreadnoughtus,Late Cretaceous,26.0,65000,Herbivore
|
||||
Argentinosaurus,Late Cretaceous,30.0,73000,Herbivore
|
||||
Patagotitan,Late Cretaceous,31.0,69000,Herbivore
|
||||
Mamenchisaurus,Late Jurassic,22.0,18000,Herbivore
|
||||
Shunosaurus,Middle Jurassic,11.0,3000,Herbivore
|
||||
Tuojiangosaurus,Late Jurassic,7.0,4000,Herbivore
|
||||
Wuerhosaurus,Early Cretaceous,7.0,4000,Herbivore
|
||||
Huayangosaurus,Middle Jurassic,4.5,500,Herbivore
|
||||
Dacentrurus,Late Jurassic,8.0,5000,Herbivore
|
||||
Lexovisaurus,Middle Jurassic,6.0,2000,Herbivore
|
||||
Chungkingosaurus,Late Jurassic,4.0,1000,Herbivore
|
||||
Miragaia,Late Jurassic,6.5,2000,Herbivore
|
||||
Jiangjunosaurus,Late Jurassic,6.0,2500,Herbivore
|
||||
Hesperosaurus,Late Jurassic,6.5,3500,Herbivore
|
||||
Loricatosaurus,Middle Jurassic,6.0,2000,Herbivore
|
||||
Paranthodon,Early Cretaceous,5.0,900,Herbivore
|
||||
Regnosaurus,Early Cretaceous,4.5,800,Herbivore
|
||||
Dravidosaurus,Late Cretaceous,3.0,500,Herbivore
|
||||
Craterosaurus,Early Cretaceous,4.0,700,Herbivore
|
||||
|
@@ -0,0 +1,29 @@
|
||||
How to Identify Steganography
|
||||
==============================
|
||||
|
||||
Steganography is the practice of hiding secret information within
|
||||
ordinary, non-secret data or physical objects. Unlike cryptography,
|
||||
which makes data unreadable, steganography conceals the very
|
||||
existence of the secret message.
|
||||
|
||||
Common techniques include:
|
||||
- Least Significant Bit (LSB) embedding in images
|
||||
- Hiding data in audio frequency spectrums
|
||||
- Using invisible Unicode characters in text
|
||||
- Appending data after file end markers
|
||||
- Encoding in metadata fields
|
||||
|
||||
Detection methods include statistical analysis, visual inspection
|
||||
of bit planes, frequency domain analysis, and file structure
|
||||
examination. Tools like ST3GG can automate this process.
|
||||
|
||||
The word steganography comes from the Greek words 'steganos'
|
||||
(meaning covered or hidden) and 'graphein' (meaning to write).
|
||||
|
||||
In the digital age, steganography has found applications in
|
||||
digital watermarking, covert communication, and CTF challenges.
|
||||
|
||||
Always remember: just because you can't see it doesn't mean
|
||||
it's not there. Hidden in plain sight is the ultimate disguise.
|
||||
|
||||
End of document.
|
||||
@@ -0,0 +1,11 @@
|
||||
The Stegosaurus was a large, herbivorous dinosaur that lived during the Late Jurassic period,
|
||||
approximately 155 to 150 million years ago. It is best known for its distinctive row of large,
|
||||
bony plates along its back and the sharp spikes on its tail, known as the thagomizer.
|
||||
|
||||
Despite its massive size, the Stegosaurus had a remarkably small brain, roughly the size of a
|
||||
walnut. This has led to much speculation about how such a large animal could function with such
|
||||
limited cognitive capacity.
|
||||
|
||||
The name "Stegosaurus" means "roof lizard" or "covered lizard," referring to the plates on its
|
||||
back, which were once thought to lie flat like roof tiles. Modern research suggests these plates
|
||||
were used for thermoregulation and display rather than defense.
|
||||
|
After Width: | Height: | Size: 49 KiB |