{"id":20286508,"url":"https://github.com/csbluechip/overflow2","last_synced_at":"2026-03-07T06:32:45.344Z","repository":{"id":252022078,"uuid":"839135130","full_name":"csBlueChip/Overflow2","owner":"csBlueChip","description":"A CTF styled guide to Buffer Overflows, Stack Smashing, Stack Exploitation, Return Oriented Programming [RoP], Code Injection and, ultimately, a Remote/Reverse Shell","archived":false,"fork":false,"pushed_at":"2025-02-25T23:25:48.000Z","size":9652,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T00:24:56.124Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csBlueChip.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-07T03:28:59.000Z","updated_at":"2025-02-25T23:25:52.000Z","dependencies_parsed_at":"2025-02-26T00:32:20.417Z","dependency_job_id":null,"html_url":"https://github.com/csBlueChip/Overflow2","commit_stats":null,"previous_names":["csbluechip/overflow2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/csBlueChip/Overflow2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csBlueChip%2FOverflow2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csBlueChip%2FOverflow2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csBlueChip%2FOverflow2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csBlueChip%2FOverflow2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csBlueChip","download_url":"https://codeload.github.com/csBlueChip/Overflow2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csBlueChip%2FOverflow2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30209088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T05:23:27.321Z","status":"ssl_error","status_checked_at":"2026-03-07T05:00:17.256Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T14:34:32.639Z","updated_at":"2026-03-07T06:32:45.308Z","avatar_url":"https://github.com/csBlueChip.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"!---v---v---------------------------------------------------------------------!\n!\t^\t^--- Tabstop : 4                                             Width:79 !\n\n===============================================================================\n Table of Contents\n===============================================================================\n\nINTRODUCTION\n\n\t#  License                - Can I copy this? [yes]\n\t#  TD;DR                  - `grep '^|' *.txt`\n\t#  Intro                  - What are buffer overflows?\n\t#  Caveats Preemptor      - A few questions pre-answered!\n\t#  Your background        - What skillz do you need?\n\t#  What's In It For You   - What skillz will you gain?\n\t#  Who am I?              - Who am I to teach this stuff?\n\t#  How does it work?      - Game rules\n\t#  WSL : WARNING          - Windows Susbsytem for Linux is broken!\n\t#  Walkthrough            - A solution\n\t#  Greetz                 - People who helped\n\n===============================================================================\n License\n===============================================================================\n\nMIT License\n\nCopyright (c) 2024 csBlueChip\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n \t\t\t      ___________\n \t\t\t      \\         /\n \t\t\t       )_______(\n \t\t\t       |\"\"\"\"\"\"\"|_.-._,.---------.,_.-._\n \t\t\t       |       | | |               | | ''-.\n \t\t\t       |       |_| |_             _| |_..-'\n \t\t\t       |_______| '-' `'---------'` '-'\n \t\t\t       )\"\"\"\"\"\"\"(\n \t\t\t      /_________\\\n \t\t\t      `'-------'`\n \t\t\t    .-------------.\n \t\t\tjgs/_______________\\\n \t.\n\nThis project is released under the MIT licence (free as in \"free\").\n\nThat said:-\n\tAll Issues, Feedback, Pull Requests, etc. are welcomed and encouraged.\n\t\tcsbluechip@gmail.com ; @csbluechip ; github.com/csbluechip\n\n===============================================================================\n TL;DR\n===============================================================================\n\n\t# Intro                  - What are buffer overflows?\n\t# Caveats Preemptor      - A few questions pre-answered!\n\t# Your background        - What skillz do you need?\n\t# What's In It For You   - What skillz will you gain?\n\t# Who am I?              - Who am I to teach this stuff?\n\t# How does it work?      - Game rules\n\t# WSL : WARNING          - Windows Susbsytem for Linux is broken!\n\t# Greetz                 - People who helped\n\nOf course, you're probably eager to start playing. \nTo to get to the point ASAP, run this command:\n\n\t`make tldr`\n\n===============================================================================\n Intro\n===============================================================================\n\n \t\t\t         _,=.=,_\n \t\t\t       ,'=.     `\\___,\n \t\t\t      /    \\  (0     |        __ _\n \t\t\t     /      \\     ___/       /| | ''--.._\n \t\t\t     |      |     \\)         || |    ===|\\\n \t\t\t     ',   _/    .--'         || |   ====| |\n \t\t\t       `\"`;    (             || |    ===|/\n \t\t\t          [[[[]]_..,_        \\|_|_..--;\"`\n \t\t\t          /  .--\"\"``\\\\          __)__|_\n \t\t\t        .'       .\\,,||___     |        |\n \t\t\t  (   .'     -\"\"`| `\"\";___)---'|________|__\n \t\t\t  |\\ /         __|   [_____________________]\n \t\t\t   \\|       .-'  `\\        |.----------.|\n \t\t\t    \\  _           |       ||          ||\n \t\t\tjgs  (          .-' )      ||          ||\n \t\t\t      `\"\"\"\"\"\"\"\"\"\"\"\"`      \"\"\"         \"\"\"\n \t.\nBuffer overflows have been the bread and butter of hackers for as long as\nsloppy programmers have existed. If you see calls to strcpy(), strcat(),\nsprintf(), gets(), scanf(), fread(), or one of many other library calls, you\nmay well have a buffer overflow exploit to play with.\n\nIn 1988, the Morris worm used a buffer overlow to infect 10% of the internet in\nabout 2 days** ...The buffer overflow in Phantasy Star Online [PSO] sparked the\npiracy scene on the Sega Dreamcast, which ultimately lead to the death of the\nDreamcast, and Sega leaving the console market ...The SAME PSO buffer overflow\nstarted the homebrew/piracy scene on the GameCube ...The Wii Homebrew channel\nwas originally installed via a buffer overflow in Zelda ...Heartbleed is \narguably one of the most worrying security breaches of the 21st century - also\na buffer overflow ...And let's not forget WannaCry (based off Eternal Blue)\nwhich infected over 300,000 PCs in 150 countries, brought the UK's NHS system\nto it's knees, and was estiamted to have cause $4Bn (USD) in damages globally\n...and these are just a few of the famous ones!\n\n`overflow` is a CTF-styled series of vulnerabilities, all based on a single\nbuffer overflow.\n\nYou are provided with the source code for the server, and the developers\nMakefile. We will assume we got these files from a data leak of someones\ndevelopment server. In reality, the source code is probably WORSE than the\noutput from a decompiler such as Ida or Ghidra, and (candidly) the Makefile is\nmore a mechanism by which to give you clues as to what to try, what tools to\nuse, and how to use them - without feeding you the answers in nursery rhymes\nor painfully contrived \"dossiers\".\n\nThe \"story-line\" contruct here is that we are calling upon our friends to help\nget a sherrif and a deputy to capture the bandits - who we ultimately help to\nescape their incarceration. And we do this by exploiting a buffer overflow\n(in this case a scanf()) to make the program execute bits of code that it\nwould not normally execute.\n\nIn reality, instead of making a program execute:\n\tprintf(\"# A friend arrives\")\nWe would be aiming to execute something like:\n\tpasswordIsValid = true;\n\nImagine a network router which allows an admin add a \"port forward\". What if we\ncould find a buffer overflow in some non-priviledged part of the code?  We may\nbe able to leverage the overflow to trigger the \"add port forward\" without\nentering the admin password!\n\nBut whether the result is a \"gamified\" printf(), or a \"realistic\" security\nbypass, the method of using a buffer overflow to pervert the execution sequence\nof a program is the same.\n\n-----\n**I do find this statistic hilarious. Like how many computers were there in\n1988? And did living-room dialup really constitute \"the internet\"?\n\n===============================================================================\n Caveats Preemptor\n===============================================================================\n\n \t\t        ((((((((((()\n \t\t       /  _____   /|\n \t\t      /  /____/  /-|\n \t\t     /          /--|\n \t\t    /          /---|\n \t\t   /__________/----|\n \t\t       |-----------|\n \t\t       |-----------|\n \t\t   jgs '-----------'\n \t.\nIn an attempt to try and address /some/ of the points that will undoubtedly be\nraised:\n\nYes. There are potentially lots of ways to perform each of the breaches.\n     EG. Many of the early exploits can be achieved using the later strategies.\n\nYes. I will take you through ONE possible solution.\n     ...One that has been crafted to reveal a diverse set of 'h4x0r skillz'.\n\nYes. We are all interested to hear about your \"much better way to do it\"\n     ...and look forward to seeing and following your walkthrough. PoC||GTFO.\n\nNo.  You do NOT need to follow the game rules.\n     EG. \"You must type `make run` or `make server` to run the program.\"\n     But, obviously, if you're playing a personally tailored version of The\n     Game**, you can make up any rules you want !-)\n\nYes. You are encouraged to share finer detail when I over-simplify some\n     issue of which you are a Subject Matter Expert.\n\nYes. I have almost certainly, beyond typos and grandma erros, made technical\n     mistakes, and I am happy to be corrected on matters of fact.\n     On matters of opinion, I'd love to hear your thoughts, but I reserve the\n     right to (at my discretion) either change or keep my original opinion.\n\nYes. I know what Stack Canaries are.\nNo.  I will not be addressing them in this 'beginners' guide'.\n     But you will be pleased to know we will be looking at ASLR.\n\n[**] And for an encore, I will tell you that Kellogs make Blue Waffles!\n\n===============================================================================\n Your background\n===============================================================================\n\n \t\t               __.............__\n \t\t       .--\"\"```                 ```\"\"--.\n \t\t        ':--..___             ___..--:'\n \t\t          \\      ```\"\"\"\"\"\"\"```      /\n \t\t        .-`  ___.....-----.....___  '-.\n \t\t      .:-\"\"``     ~          ~    ``\"\"-:.\n \t\t     /`-..___ ~        ~         ~___..-'\\\n \t\t    /  ~    '`\"\"---.........---\"\"`        \\\n \t\t   ;                                       ;\n \t\t  ; '::.   '          ~     .:'    _.       ;\n \t\t  |   ':::    '            .:'           ~  |\n \t\t  |~  .:'   .      _        ':.             |\n \t\t  | .:'                       ':.~          |\n \t\t  |  ':.      .  ~     .    _   .:          |\n \t\t  ; '::.             _     /|| .;'          ;\n \t\t   ;    ':          ( }    \\||D            ;\n \t\t    \\.:'.:':.     | /\\__,=_[_]            /\n \t\t     \\ ':.     ~  |_\\__ |----|      `    /\n \t\t      '. '::..  _ |  |/ |--. |_      ~ .'\n \t\t        '-._':'   |  /_ |    |  `'-_.-'\n \t\t    jgs    (``''--..._____...--''``)\n \t\t            `\"--...__     __...--\"`\n \t\t                     `````\n \t.\nUseful skills to have before you start are:\n\n# SOME experience of programming - preferably in C or a C-style language.\n\tIf you don't know what a function or a loop is, you are way out of your\n\tdepth.\n\n# Some knowledge of what a Stack is, and the basic principle of how they\n\t(FIFO buffers) work. If not, enjoy this URL:\n\thttps://html-preview.github.io/?url=https://github.com/csBlueChip/6502_Programming_Guide/blob/master/6502.htm#STACK_WHAT:~:text=The%20Stack%20%2D%20What%20Is%20It%3F%20%C2%A0%C2%A0\n\t|-----------------------------------|-----------------|----------|----------------------|--------------------|---------------------------------------------------------------------|\n\n# The ability to spot (simple) patterns in groups of numbers.\n\tIf two (long) numbers are very similar, maybe they are related!\n\n# Knowledge of a counting bases other than decimal.\n\tYou should be able to understand that (eg) 0x10 and 16 are the same value.\n\n# The drive to succeed when things are new, and therfore difficult.\n\tI've tried to drop helpful breadcrumbs, but I have NOT \"fed you the\n\tanswers\".\n\n# Willingness to work as a team\n\tIf you're truly L33t, then by all means work alone. Otherwise, remember:\n\t\"If one person has the courage to ask a question, you can bet ten people\n\twant to hear the answer!\" ...You learn more, and remember more if you\n\tshare your ideas with others, who are also sharing their ideas with you!\n\t[prove me wrong]\n\n===============================================================================\n What's In It For You\n===============================================================================\n\n \t\t       .--_....._-------,\n \t\t      / .'       '.    /|\n \t\t     / / N U K E S \\  / |\n \t\t    /  '._       _.' /  |   \"Do not press this button again\"\n \t\t   /      ```````   /  /                     [Heart of Gold]\n \t\t   |----------------| /\n \t\t   |                |/\n \t\t   '----------------'\n \t.\nIf you follow this through, what will you learn about?\n\n\tCode obfuscation\n\t\tThe FIVE common counting bases\n\t\tHow to read code, and what you can safely ignore\n\t\tUnwrapping deliberate obfuscation\n\t\tSpotting obfuscation resulting from poor programming skills\n\n\tMakefiles\n\t\tWhat are they and how do they work?\n\t\tWhy are they important?\n\t\tWhat can they tell us; what can they hide?\n\t\t\thttps://research.swtch.com/xz-script#:~:text=The%20shell%20code%20during%20make%20adds%20the%20object%20file%20to%20the%20build\n\n\tMemory alignment\n\t\tUnderstading memory-aligned variables\n\t\t...and memory-aligned (or lack thereof) instructions\n\n\tMemory organisation and corruption\n\t\tBuffer overflows\n\t\t\"Stack smashing\"\n\t\tAddress Space Layout Randomisation [ASLR]\n\t\tPosition Independent Code [PIE]\n\n\tProgram flow\n\t\tWhat is the Program Counter (aka Instruction Pointer)\n\t\tHow can we take control of it\n\n\tProgramming\n\t\tA (VERY) brief intro to (x64) assembler\n\t\tInjecting code in to running programs\n\n\tReturn Oriented Programming\n\t\tThe BASICs ot RoP atacks (euphemistically: \"Return To C\")\n\t\t...you will implement a couple of trivial RoP attacks\n\n\tCryptography\n\t\tAnalysing \u0026 reproducing (SIMPLE) \"roll your own\" crypto\n\n\tStatic and Dynamic Analysis\n\t\tStatic  - things that don't change ...The code, the exe, etc.\n\t\tDynamic - things that  do   change ...Memory layout, System IDs, etc.\n\n\tSide-channel attacks\n\t\tAnalysing data that is an EFFECT of running the code\n\n\tFull remote shell access to the target server!\n\nMake this your focus:\n\t* If an attack succeeds, it means that either you knew something, or\n\t  you just intuited something new from what you've learned previously.\n\t* If an attack fails, understanding WHY it failed means you just\n\t  learned something new.\n\n===============================================================================\n Who am I?\n===============================================================================\n \t\t                 ___\n \t\t                / ,-\\      _ ___\n \t\t               | (  '\\    |-|   |._\n \t\t        ___     )_ _/     | |   |  |\n \t\t       [___]   /  `\\____  | |   |_.'\n \t\t       |  ^|  /  \\_____/) |-|___|\n \t\t       |   | /    /   _:::_))_(___\n \t\t       |   |/'-._/_   |___________|\n \t\t       '-;_|\\_____ `\\ ||\"\"\"\"\"\"\"\"\"||\n \t\t         | `######|_|_||         ||\n \t\t         \\ ._  _,'{~-_}|         ||\n \t\t         _)   (   {-__}|         ||\n \t\t    jgs /______`\\ |_,__)         ||\n \t.\nI come from a hardware background, and we are required to juggle a range of\nskills. Like your local GP (General Practitioner/Family Doctor) we need to have\nmemorised the Table-of-Contents of \"The Big Book of Things [\u003cyour trade\u003e\nedition]\", and we have to have some insight in to each subject. We each have\n'one or two' things in which we \"specialise\", we know our limits, and we simply\nHAVE TO work as a team - which sometimes requires identifying the nature of the\nissue, and passing it on to a Subject Matter Expert.\n\nThe Internet of Sh!te [IoT] is swamped with out-of-date hardware, running code\nwritten by programmers with little-or-no understading of how hackers think,\nusing ancient development kits, and working to unreasonable deadlines. Which\ninevitably results in any number of horrible and often historic/persistent\nvulnerabilities.\n\nThe first comment I get is going to be: \"What about stack canaries? I see\nyou've explicitly disabled them!\" ...To whit I proffer: \"The IoT world is so\nout of date, these sort of things are still YEARS away from being relevant to\na hardware/embedded hacker.\" ...What you discover here is TOTALLY realistic,\nand will continue to be so for MANY years to come!\n\n===============================================================================\n How does it work?\n===============================================================================\n \t                          _\n \t              .----------/ |\u003c=== floppy disk\n \t             /           | |\n \t            /           /| |          _________\n \t           /           / | |         | .-----. |\n \t          /___________/ /| |         |=|     |-|\n \t         [____________]/ | |         |~|_____|~|\n \t         |       ___  |  | |         '-|     |-'\n \t         |      /  _) |  | |           |.....|\n \tfunction ======\u003e|.'   |  | |           |     |\u003c=== application\n \t  key    |            |  | |    input  |.....|       software\n \t         |            |  | |            `--._|\n \t  main =\u003e|            |  | |      |                 de-bugging   ||\n \t storage |            |  | ;______|_________________   tool ====\u003e||\n \t         |            |  |.' ____\\|/_______________ `.           ||\n \t         |            | /|  (______________________)  )\u003c== user  ||\n \t         |____________|/ \\___________________________/  interface||\n \t         '--||----: `'''''.__                      |             ||\n \t            || jgs `\"\"\";\"\"\"-.'-._ \u003c== normal flow  |    central  ||\n \t            ||         |     `-. `'._of operation /\u003c== processing||\n \t            ||         |        `\\   '-.         /       unit    ||\n \t  surge     ().-.      |         |      :      /`                ||\n \tcontrol ==\u003e(_((X))     |      .-.       : \u003c======= output        ||\n \t device       '-'      \\     |   \\      ;     /_________       .-''-.\n \t                        `\\  \\|/   '-..-'      |   /_\\  /|     /______\\\n \t                         /`-.____             |       / /      [____]\n \t                        / _     /_____________| _    / /_\n \t          peripherals ==\u003e/_\\___________________/_\\__/ /~ )__\n \t            (hardware) |____________________________|/  ~   ) |\\\\\\ ///|\n \t                                            (__~  ~     ~(~~` | \\\\V// |\n \t          overflow (input/output error) ===\u003e (_~_  ~  ~_ `)   |  |~|  |\n \t      _________                                  `--~-' '`    |  |=|  |\n \t   _|`---------`|                       supplemental data ===\u003e|  | |  |\n \t  (C|           |\u003c=== back-up        (()____                  |  | |  |\n \t   `\\           /                   ('      `\\______,          \\ |=| /\n \t     `=========`           mouse ==\u003e `,,---,,'                  \\|_|/\n \t.\n\n,-----------------------------------------------------------------------------.\n| ,-------------------------------------------------------------------------. |\n| |                                                                         | |\n| |  Do this once:                                                          | |\n| |     Grab 'overflow.c' and 'Makefile' from the repo.                     | |\n| |     Run `make setup` to check you've got all the tools you may need.    | |\n| |     Namely: {build-essential, xxd, cgdb, nasm}                          | |\n| |                                                                         | |\n| |  Based on which challenge you are attempting:                           | |\n| |     Friends #1  to #12 :  `make server1`                                | |\n| |     Friends #13 to #16 :  `make server2`                                | |\n| |                                                                         | |\n| |  Then do this repeatedly:                                               | |\n| |     1) Input your game \"mode\"                                           | |\n| |     2) Input your friend's \"name\"                                       | |\n| |     3) See if your friend turns up (and agrees to help).                | |\n| |                                                                         | |\n| `-------------------------------------------------------------------------' |\n`-_                        ,----------------------.                         _-'\n   `.                      |(x)    The Rulez   (+)|                       .' \n    |                      `----------------------'                       |\n    `---------------------------------------------------------------------'\n\nFootnotes\n---------\n\nALL these attacks rely on the same buffer overflow.\nBut the choice of input you use in the overflow gets [if I've judged it well]\ngradually more and more advanced.\n\nThe way I see it, the \"Friends\" are in FIVE groups:\n\t 1.. 6 - Input device manipulation (keyboard)\n\t 7.. 9 - Controlling Program Flow\n\t10..12 - Memory Analysis\n\t13..15 - Code Injection\n\t16..17 - Jailbreak\n\nYou are HEAVILY encouraged to use ANY tools you desire to work out the\nsolutions; edit the source code; patch the Makefile; use a non-standard\ncompiler; etc. ...There a NO RULES AT ALL about how you work out the solutions.\n...BUT: Solutions ONLY count if you can ultimately reproduce your attacks\n        under 'game conditions'\n\nI suggest you perform the first SIX challenges by physically entering the \n'mode' and 'name' on a real keyboard. After which I suggest you write a trivial\ntool - in 'C' or BASh, it can be done with about 20..30 lines of code.\n\n==PS==\nApparently people have found this (keyboard) part so difficult, they have given\nup.  Yes. It IS possible. No. It is (likely) NOT soemthing you already know.\n...I have had to solve this problem now on two operating systems, and two bits\nof hardware, meaning I had to solve the problem three times. And each solution\nis VERY different from the others. You can only begin to imagine how much I\nlearned about the (keyboard) input system while I was researching THAT! But I\nknow there are more solutions (that need) to be found!\n\n===============================================================================\n WSL : WARNING\n===============================================================================\n\nOn the 24/Oct/2016 stakemura reported to Microsoft that WSL does not produce\ncoredump files. This has never been fixed. [June 2024]\n\thttps://github.com/microsoft/WSL/issues/1262\n\nAs such, you cannot debug ANY program post-segfault under WSL !\n\nThis set of challenges can definitely be solved without coredumps,\nbut it is (debatably) going to be a LOT harder.\n\nI can only suggest you install a hypervisor (such as VirtualBox or VMWare), \nand install Debian.\n\n===============================================================================\n Walkthrough\n===============================================================================\n\nA comprehensive walkthrough of the entire CTF has been written:\n\n\t$\u003ewc -l *.txt\n\t   488 _01_INTRO.txt [you're reading it now]\n\t   295 _02_REVIEW_OVERFLOW.txt\n\t   373 _03_REVIEW_MAKEFILE.txt\n\t   380 _04_FRIENDS_01to06.txt\n\t   438 _05_TYPING_THE_UNTYPABLE.txt\n\t   406 _06_KEY_STUFFER.txt\n\t   648 _07_FRIENDS_07to09.txt\n\t   717 _08_FRIENDS_10to12.txt\n\t   339 _09_EXPLAIN_EASY_CODE.txt\n\t  1264 _10_FRIENDS_13to15.txt\n\t   734 _11_FRIENDS_16to17.txt\n\t   467 README.txt\n\t  6549 total\n\n...complete with a library of handy functions, and an autopwn script which can\nsummon 17 of the 18[*1] challenges in ~21s[*2] ...The last challenge cannot be\ntimed, you will understand why when you see it.\n\nSo you can be sure the whole process is proven, and the results are repeatable.\n\n[*1] Yes, 18\n[*2] Single core VM, servers running locally\n\n===============================================================================\n Greetz\n===============================================================================\n\n \t ____   ____   ____   ____   ____   ____   ____\n \t||G || ||R || ||3 || ||3 || ||T || ||Z || ||@ ||   en4rab\n \t||__|| ||__|| ||__|| ||__|| ||__|| ||__|| ||__||   madtroll\n \t|/__\\| |/__\\| |/__\\| |/__\\| |/__\\| |/__\\| |/__\\|\n \t.\n===============================================================================\n EOF\n===============================================================================\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsbluechip%2Foverflow2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsbluechip%2Foverflow2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsbluechip%2Foverflow2/lists"}