The challenge is a crackme, it asks for an argument of 32 chars and gives it to
a check function.
This check function fork the program multiple times and redirect the stdout of
the child to /dev/null.
| const allWords = ["BUNCH","TABLE","GUEST","WATCH","SALES","OFTEN","MORAL","BENCH","MAYOR","STARE","LABOR","CLASS","STILL","WOMAN","REPLY","ENJOY","CLEAN","SOUTH","SAUCE","BRAIN","QUICK","WHERE","SHAKE","VALUE","NERVE","MAYBE","LIGHT","KNIFE","SPORT","WRITE","GRAVE","TASTE","CREAM","SOUND","TRACK","APPLE","JOINT","ADMIT","TROOP","POUND","GIVEN","AWARE","STAIR","FLESH","THERE","DRESS","THROW","ASIDE","HEART","BRUSH","SMOKE","LUNCH","GUARD","EVENT","BRAND","PAUSE","RIGHT","ANGER","STYLE","PROVE","CHEAP","GLOVE","MOUNT","MONTH","SALAD","TERMS","TODAY","ORDER","GRADE","TOUGH","COACH","SWING","MATCH","WOULD","BOARD","TEACH","MODEL","SOLID","FIFTH","GRASS","PIANO","BLOCK","SHELF","FAITH","CHILD","STAFF","NOVEL","TIRED","YOUNG","REACT","ADAPT","DRINK","ALBUM","CIVIL","CHART","QUOTE","STRIP","FUNNY","YOURS","WORLD","ALIVE","WHEEL","TRIAL","WHOLE","EARTH","RIFLE","IDEAL","CRACK","SCOPE","CLEAR","NAKED","PLANT","HUMAN","FIGHT","WORTH","YOUTH","DOZEN","AFTER","WATER","SUPER","SOLVE","LATER","FIELD","PLACE","PLANE","DRAMA |
| // Decode the response from the server | |
| function decode(plain) { | |
| return String.fromCharCode(...[...plain].map((c) => (c.charCodeAt(0) + 113) % 126)) | |
| } |
| $ clang -Wall -Wextra -g3 ./main.c -o main && ./main | |
| deadbeef |
| #include <iostream> | |
| #include <stdexcept> | |
| #include <vector> | |
| #include <string> | |
| template <class T> struct size_of { | |
| static const int size = sizeof(T); | |
| }; | |
| template <> struct size_of<void> { |
| #include <unistd.h> | |
| #include <signal.h> | |
| #include <assert.h> | |
| #include <stdio.h> | |
| #include <sys/wait.h> | |
| void handle_sender(pid_t receiver) { | |
| for (int i = 0; i < 10; i++) { | |
| usleep(100); | |
| puts("Signal sent"); |
Every command is done under a nix-shell opened with the following command.
$ nix-shell -p gcc SDL2 steam-runFirst thing compile the executable to debug controller hot plugging.
$ gcc ./main.c -o ./main -lSDL2| #include <iostream> | |
| #include <vector> | |
| class Item { | |
| private: | |
| char identifier; | |
| public: | |
| Item(char identifier) : identifier(identifier) { | |
| std::cout << "Item's " << identifier << " constructor called" << std::endl; |