Guest User

Deobfuscated challenge r/reversengineering

a guest
Oct 12th, 2025
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // === DYNAMISCHES HTML EINFÜGEN ===
  2. (function () {
  3.   const pageHTML = `
  4.         <div class="page-container">
  5.             <header>
  6.                 <h1>Die Seed-Generator Challenge</h1>
  7.             </header>
  8.  
  9.             <main class="challenge-main">
  10.                 <div class="challenge-container">
  11.                     <button id="generate-seed-btn" class="challenge-button">Probier mich aus!</button>
  12.                     <div id="seed-output-container">
  13.                         <p>Generated Seed: <span id="seed-output"></span></p>
  14.                     </div>
  15.                 </div>
  16.             </main>
  17.  
  18.             <footer>
  19.                 <div class="footer-content">
  20.                     <span>J.Apps</span>
  21.                     <a href="about.html" rel="noreferrer noopener" class="challenge-link">About</a>
  22.                     <a href="discord.html" rel="noreferrer noopener" class="challenge-link1">Discord</a>
  23.                     <span>© 2024-2025 J. Apps, All Rights Reserved.</span>
  24.                     <div id="session-uuid"></div>
  25.                     <label class="switch">
  26.                         <input type="checkbox" id="dark-mode-toggle">
  27.                         <span class="slider round"></span>
  28.                         <span class="dark-mode-lable">Dark Mode</span>
  29.                     </label>
  30.                 </div>
  31.             </footer>
  32.         </div>
  33.     `;
  34.   document.body.innerHTML = pageHTML;
  35.  
  36.   // Hier kommt dein OBFUSZIERTER Seed-Generator-Code!
  37.   // ... (alles was du vorher hattest, aber jetzt ohne HTML-Struktur)
  38.   // Der Rest deines Codes folgt hier – mit Event-Listenern usw.
  39. })();
  40. class FinjasChaosGenerator {
  41.   constructor() {
  42.     this.SEED_LENGTH = 42;
  43.     this.FLOAT_MAP = {
  44.       "0": 0.123,
  45.       "1": 2.313,
  46.       "2": 4.14,
  47.       "3": 1.2413,
  48.       "4": 5.003,
  49.       "5": 3.442,
  50.       "6": 1.999,
  51.       "7": 0.991,
  52.       "8": 3.888,
  53.       "9": 0.777
  54.     };
  55.     this.CHAOS_WORDS = ["ABYSS", "QUANTUM", "FINJA", "VOID", "ENTROPY", "GLITCH", "PARADOX", "NEBULA", "RNGESUS", "42", "SCHROEDINGER", "LOVECRAFT", "ENTROPIA", "NULLPOINTER"];
  56.     this.CHAOS_QUOTES = ["RANDOM_DIGITS_ARE_SIN", "GOD_DOES_NOT_PLAY_DICE", "CHAOS_IS_A_LADDER", "ENTROPY_WINS_AGAIN", "SEEDS_ARE_ILLUSIONS"];
  57.     this.mouseEntropy = [];
  58.     this._setupMouseTracking();
  59.   }
  60.   _setupMouseTracking() {
  61.     const event_handler = event => {
  62.       if (this.mouseEntropy.length < 50) {
  63.         this.mouseEntropy.push({
  64.           x: event.clientX,
  65.           y: event.clientY,
  66.           t: Date.now() % 10000
  67.         });
  68.       }
  69.     };
  70.     document.addEventListener("mousemove", event_handler);
  71.     document.addEventListener("click", event_handler);
  72.   }
  73.   getRandomBytes(length = 32) {
  74.     const bArr = new Uint8Array(length);
  75.     crypto.getRandomValues(bArr);
  76.     return Array.from(bArr).map(el => el.toString(16).padStart(2, "0")).join("");
  77.   }
  78.   generateULID() {
  79.     const _0x581c45 = Date.now().toString(32).padStart(10, "0").toUpperCase();
  80.     const _0x6bbb99 = this.getRandomBytes(10).substring(0, 16).toUpperCase();
  81.     return _0x581c45 + _0x6bbb99;
  82.   }
  83.   async sha256(input) {
  84.     const bArr = new TextEncoder().encode(input);
  85.     const digest = await crypto.subtle.digest("SHA-256", bArr);
  86.     return Array.from(new Uint8Array(digest)).map(el => el.toString(16).padStart(2, "0")).join("");
  87.   }
  88.   rollD20() {
  89.     return Math.floor(Math.random() * 20) + 1;
  90.   }
  91.   rollW6() {
  92.     return Math.floor(Math.random() * 6) + 1;
  93.   }
  94.   rollW4() {
  95.     return Math.floor(Math.random() * 4) + 1;
  96.   }
  97.   shuffleString(string) {
  98.     const letters = string.split("");
  99.     for (let index = letters.length - 1; index > 0; index--) {
  100.       const random_index = Math.floor(Math.random() * (index + 1));
  101.       [letters[index], letters[random_index]] = [letters[random_index], letters[index]];
  102.     }
  103.     return letters.join("");
  104.   }
  105.   chaoticFlip(value) {
  106.     const random_sign = Math.random() < 0.5 ? 1 : -1;
  107.     const random_seed = [2, 0.5, 1.337, 3.1415, 2.71828, 42][Math.floor(Math.random() * 6)];
  108.     const final_value = value * random_sign * random_seed;
  109.     return Math.abs(Math.floor(final_value)) || 1;
  110.   }
  111.   generateBIP39Phrase() {
  112.     const bip39_words = ["abandon", "ability", "able", "about", "above", "absent", "absorb", "abstract", "absurd", "abuse", "access", "accident", "account", "accuse", "achieve", "acid", "acoustic", "acquire", "across", "act", "action", "actor", "actress", "actual", "adapt", "add", "addict", "address", "adjust", "admit", "adult", "advance", "advice", "aerobic", "affair", "afford", "afraid", "again", "age", "agent", "agree", "ahead", "aim", "air", "airport", "aisle", "alarm", "album", "alcohol", "alert", "alien", "all", "alley", "allow", "almost", "alone", "alpha", "already", "also", "alter", "always", "amateur", "amazing", "among", "amount", "amused", "analyst", "anchor", "ancient", "anger", "angle", "angry", "animal", "ankle", "announce", "annual", "another", "answer", "antenna", "antique", "anxiety", "any", "apart", "apology", "appear", "apple", "approve", "april", "arch", "arctic", "area", "arena", "argue", "arm", "armed", "armor", "army", "around", "arrange", "arrest", "arrive", "arrow", "art", "artefact", "artist", "artwork", "ask", "aspect", "assault", "asset", "assist", "assume", "asthma", "athlete", "atom", "attack", "attend", "attitude", "attract", "auction", "audit", "august", "aunt", "author", "auto", "autumn", "average", "avocado", "avoid", "awake", "aware", "away", "awesome", "awful", "awkward", "axis", "baby", "bachelor", "bacon", "badge", "bag", "balance", "balcony", "ball", "bamboo", "banana", "banner", "bar", "barely", "bargain", "barrel", "base", "basic", "basket", "battle", "beach", "bean", "beauty", "because", "become", "beef", "before", "begin", "behave", "behind", "believe", "below", "belt", "bench", "benefit", "best", "betray", "better", "between", "beyond", "bicycle", "bid", "bike", "bind", "biology", "bird", "birth", "bitter", "black", "blade", "blame", "blanket", "blast", "bleak", "bless", "blind", "blood", "blossom", "blouse", "blue", "blur", "blush", "board", "boat", "body", "boil", "bomb", "bone", "bonus", "book", "boost", "border", "boring", "borrow", "boss", "bottom", "bounce", "box", "boy", "bracket", "brain", "brand", "brass", "brave", "bread", "breeze", "brick", "bridge", "brief", "bright", "bring", "brisk", "broccoli", "broken", "bronze", "broom", "brother", "brown", "brush", "bubble", "buddy", "budget", "buffalo", "build", "bulb", "bulk", "bullet", "bundle", "bunker", "burden", "burger", "burst", "bus", "business", "busy", "butter", "buyer", "buzz", "cabbage", "cabin", "cable", "cactus", "cage", "cake", "call"];
  113.     const seeds = [];
  114.     for (let i = 0; i < 12; i++) {
  115.       const bArr = new Uint32Array(1);
  116.       crypto.getRandomValues(bArr);
  117.       seeds.push(bip39_words[bArr[0] % bip39_words.length]);
  118.     }
  119.     return seeds.join(" ");
  120.   }
  121.   async fakeZKPChaos(_0x2a4d31) {
  122.     const random_phrases = ["I_KNOW_THE_SEED_WITHOUT_KNOWING_IT", "PROOF_OF_CHAOS_WITHOUT_REVEALING_ORDER", "VERIFIABLE_RANDOM_FUNCTION_SIMULATION"];
  123.     const random_phrase = random_phrases[Math.floor(Math.random() * random_phrases.length)];
  124.     const proof = (await this.sha256(random_phrase + Date.now().toString())).substring(0, 32);
  125.     _0x2a4d31.ZK_Proof_Commitment = proof;
  126.     _0x2a4d31.ZK_Statement = random_phrase;
  127.     _0x2a4d31.ZK_Trust_Level = Math.floor(Math.random() * 958) + 42;
  128.   }
  129.   blockchainSimulationChaos() {
  130.     const memecoins = ["DOGE", "SHIB", "BONK", "WOJAK", "PEPE", "FINJA"];
  131.     return {
  132.       Simulated_Block_Height: Math.floor(Math.random() * 930579) + 69420,
  133.       Fake_Gas_Price_Gwei: Math.floor(Math.random() * 1000) + 1,
  134.       Validator_Consensus: ["POS", "POW", "POOL", "MADNESS"][Math.floor(Math.random() * 4)],
  135.       Meme_Coin_Of_The_Day: memecoins[Math.floor(Math.random() * memecoins.length)],
  136.       NFT_Rugpull_Probability: Math.floor(Math.random() * 99) + 1 + "%"
  137.     };
  138.   }
  139.   temporalCryptoApocalypse() {
  140.     const _0x550d03 = new Date();
  141.     const _0x52f2b5 = _0x550d03.getHours();
  142.     const _0x448ad5 = _0x550d03.getMinutes();
  143.     let _0x4ef90c;
  144.     let _0xa62eed;
  145.     let _0x93ebf3;
  146.     if (_0x52f2b5 === 4) {
  147.       [_0x4ef90c, _0xa62eed, _0x93ebf3] = ["QUANTUM_BREAK_IMMINENT", "SWITCH_TO_SUPER_QUANTUM_RESISTANT_NOTHING", "CRITICAL"];
  148.     } else if (_0x52f2b5 === 13 && _0x448ad5 === 37) {
  149.       [_0x4ef90c, _0xa62eed, _0x93ebf3] = ["SCRIPT_KIDDIE_ATTACK_PEAK", "DEPLOY_MLG_360_NOSCOPE_DEFENSE", "MEMETIC"];
  150.     } else if (_0x52f2b5 === 23) {
  151.       [_0x4ef90c, _0xa62eed, _0x93ebf3] = ["MIDNIGHT_CRYPTO_ANXIETY", "GENERATE_EXTRA_RANDOM_BYTES_FOR_COMFORT", "PSYCHOLOGICAL"];
  152.     } else if (_0x52f2b5 % 6 === 0) {
  153.       [_0x4ef90c, _0xa62eed, _0x93ebf3] = ["ROUTINE_ENTROPY_HARVESTING", "BUSINESS_AS_USUAL_CHAOS", "NORMAL"];
  154.     } else {
  155.       _0x4ef90c = "UNKNOWN_CRYPTO_EVENT";
  156.       _0xa62eed = "MONITOR_AND_DRINK_COFFEE";
  157.       _0x93ebf3 = ["LOW", "MEDIUM", "HIGH"][Math.floor(Math.random() * 3)];
  158.     }
  159.     return {
  160.       Temporal_Threat_Level: _0x4ef90c,
  161.       Recommended_Response: _0xa62eed,
  162.       Threat_Severity: _0x93ebf3,
  163.       Apocalypse_Countdown: Math.floor(Math.random() * 10000) + 1,
  164.       Y2K38_Readiness: Date.now() < 2147483647000 ? "PROBABLY_FINE" : "TOO_LATE"
  165.     };
  166.   }
  167.   cryptographicEasterEggs(_0x180948) {
  168.     const _0x4ceaa6 = {
  169.       Backdoor_Detection: "SEARCHING_FOR_NSA_BACKDOOR..._NOT_FOUND_MAYBE",
  170.       SHA1_Collision_Fear: "STILL_BETTER_THAN_MD5",
  171.       Alice_Bob_Reference: "ALICE_SENDS_TO_BOB_BUT_EVE_DOESNT_CARE",
  172.       Rubberhose_Deniability: "I_KNOW_NOTHING"
  173.     };
  174.     if (Math.random() < 0.4) {
  175.       const _0x425af7 = Object.keys(_0x4ceaa6);
  176.       const _0x1bf285 = _0x425af7[Math.floor(Math.random() * _0x425af7.length)];
  177.       _0x180948["Easter_Egg_" + _0x1bf285] = _0x4ceaa6[_0x1bf285];
  178.     }
  179.   }
  180.   async generateSeed(input_word = "Finja") {
  181.     const base_set = {
  182.       Input_Word: input_word,
  183.       Nano_Timestamp: Date.now() * 1000000 + performance.now(),
  184.       Browser_Entropy_Seed: this.getRandomBytes(32),
  185.       ULID_Simulated: this.generateULID(),
  186.       BIP39_Phrase: this.generateBIP39Phrase(),
  187.       User_Agent: navigator.userAgent.substring(0, 50) + "...",
  188.       Screen_Resolution: screen.width + "x" + screen.height,
  189.       Browser_Language: navigator.language,
  190.       Timezone_Offset: new Date().getTimezoneOffset()
  191.     };
  192.  
  193.     if (this.mouseEntropy.length > 0) {
  194.       const mouse_entropy = this.mouseEntropy.map(_0x4aaeca => _0x4aaeca.x + "," + _0x4aaeca.y + "," + _0x4aaeca.t).join(";");
  195.       base_set.Mouse_Entropy = mouse_entropy;
  196.     } else {
  197.       base_set.Mouse_Entropy = "NO_MOUSE_MOVEMENT_DETECTED";
  198.     }
  199.     await this.fakeZKPChaos(base_set);
  200.     Object.assign(base_set, this.blockchainSimulationChaos());
  201.     Object.assign(base_set, this.temporalCryptoApocalypse());
  202.     this.cryptographicEasterEggs(base_set);
  203.     const drama_roll = this.rollD20();
  204.     const chaos_intensity = this.rollW6();
  205.     const transform_mode = this.rollW4();
  206.     base_set.D20_Drama_Roll = drama_roll;
  207.     base_set.W6_Chaos_Intensity = chaos_intensity;
  208.     base_set.W4_Transform_Mode = transform_mode;
  209.     base_set.Chaos_Quote = this.CHAOS_QUOTES[Math.floor(Math.random() * this.CHAOS_QUOTES.length)];
  210.     let joined_base_set = Object.values(base_set).join("|");
  211.     const base_set_hash = await this.sha256(joined_base_set);
  212.     const random_chaos_word_index = base_set_hash.charCodeAt(0) % this.CHAOS_WORDS.length;
  213.     const random_chaos_word = this.CHAOS_WORDS[random_chaos_word_index];
  214.     joined_base_set += random_chaos_word;
  215.     let updated_joined_base_set = await this.sha256(joined_base_set);
  216.     for (let i = 0; i < chaos_intensity + 2; i++) {
  217.       updated_joined_base_set = await this.sha256(updated_joined_base_set);
  218.     }
  219.     if (drama_roll <= 3) {
  220.       updated_joined_base_set = (updated_joined_base_set + updated_joined_base_set).split("").map(_0x59d827 => String.fromCharCode(_0x59d827.charCodeAt(0) ^ 255)).join("");
  221.       base_set.D20_Effect = "CATASTROPHE_INVERSION";
  222.     } else if (drama_roll <= 7) {
  223.       updated_joined_base_set = updated_joined_base_set.split("").reverse().join("");
  224.       base_set.D20_Effect = "REVERSE_ENTROPY";
  225.     } else if (drama_roll >= 18) {
  226.       updated_joined_base_set += "OMNIPOTENT_CHAOS_BLESSING";
  227.       base_set.D20_Effect = "DIVINE_INTERVENTION";
  228.     } else {
  229.       base_set.D20_Effect = "MORTAL_BOREDOM";
  230.     }
  231.     const splitted_hash = updated_joined_base_set.substring(0, 16);
  232.     const base_10_hash = parseInt(splitted_hash, 16) || 1;
  233.     const color_code = "#" + splitted_hash.substring(0, 6);
  234.     const float_array = String(base_10_hash).split("").map(number => this.FLOAT_MAP[number]).filter(Boolean);
  235.     const flips_array = float_array.map(float_numb => this.chaoticFlip(float_numb));
  236.     const chaotic_seed = flips_array.length ? parseInt(flips_array.join("")) : 1;
  237.     const random_numb = Math.floor(Math.random() * 198) + 2;
  238.     const chaotic_numb = chaotic_seed * random_numb;
  239.     const _0x5e81a1 = chaotic_numb % 1000 || 1;// int between 1 and 999
  240.     const chaotic_hash_int = Math.max(1, Math.abs(Math.floor(base_10_hash / _0x5e81a1)));
  241.     const chaotic_final = chaotic_hash_int * (Math.floor(Math.random() * 990) + 10);
  242.     let chaotic_string = String(chaotic_final);
  243.     if (drama_roll <= 3) {
  244.       chaotic_string = "0" + chaotic_string + "0";
  245.     }
  246.     const shuffled_chaotic_string = this.shuffleString(chaotic_string);
  247.     const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  248.     let final_seed = "";
  249.     let hashed_chaotic_string = await this.sha256(shuffled_chaotic_string);
  250.     for (let i = 0; i < this.SEED_LENGTH; i++) {
  251.       hashed_chaotic_string = await this.sha256(hashed_chaotic_string);
  252.       const random_index = parseInt(hashed_chaotic_string.substring(0, 8), 16) % charset.length;
  253.       final_seed += charset[random_index];
  254.     }
  255.     this.mouseEntropy = [];
  256.     return {
  257.       Final_Seed: final_seed,
  258.       Generated_Color_Code: color_code,
  259.       D20_Effect: base_set.D20_Effect,
  260.       Meme_Coin_Of_The_Day: base_set.Meme_Coin_Of_The_Day,
  261.       NFT_Rugpull_Probability: base_set.NFT_Rugpull_Probability,
  262.       ZK_Trust_Level: base_set.ZK_Trust_Level,
  263.       Chaos_Quote: base_set.Chaos_Quote
  264.     };
  265.   }
  266. }
  267.  
  268. document.addEventListener("DOMContentLoaded", () => {
  269.   const chaos_gen = new FinjasChaosGenerator();
  270.   const seed_btn = document.getElementById("generate-seed-btn");
  271.   const sedd_output = document.getElementById("seed-output");
  272.   if (!seed_btn || !sedd_output) {
  273.     return;
  274.   }
  275.   seed_btn.addEventListener("click", async () => {
  276.     seed_btn.disabled = true;
  277.     seed_btn.textContent = "🌀 Generiere...";
  278.     sedd_output.textContent = "...";
  279.     try {
  280.       const seed = await chaos_gen.generateSeed("Finja");
  281.       sedd_output.textContent = seed.Final_Seed;
  282.       seed_btn.style.backgroundColor = seed.Generated_Color_Code;
  283.       const color_without_hashtag = seed.Generated_Color_Code.replace("#", "");
  284.       const r = parseInt(color_without_hashtag.substr(0, 2), 16);
  285.       const g = parseInt(color_without_hashtag.substr(2, 2), 16);
  286.       const b = parseInt(color_without_hashtag.substr(4, 2), 16);
  287.       const luminance = (r * 299 + g * 587 + b * 114) / 1000; // luminance of color
  288.       seed_btn.style.color = luminance > 128 ? "#000" : "#fff"; // choose color of the text based on background color
  289.     } catch (err) {
  290.       sedd_output.textContent = "💥 Fehler!";
  291.     } finally {
  292.       seed_btn.disabled = false;
  293.       seed_btn.textContent = "🌪️ Neuen Seed generieren";
  294.     }
  295.   });
  296. });
  297.  
Advertisement
Add Comment
Please, Sign In to add comment