Obfuscated C programs: Introduction
If you program long enough, eventually you will run into a programming art category called "obfuscated code" or “code golf”. You can find these especially at IOCCC. In this video I introduce the concept and the basic ideas behind such design. More information below (click "Show more").
I realize the category is "obfuscated code", not "small code", but often trying to compress your code into the smallest size will also effectively obfuscate its function. I also realize that some of the individual changes I did in the video did actually _not_ result in smaller program code size, but the opposite. But the end result is still the shortest I could manage, if you remove the "int", the "return", and the space after "include".
Actual obfuscation techniques include using small and meaningless variable names, using unusual syntax constructs, redefining reserved words, adding code that appears to do one thing but does something else (or nothing at all), creating a complex machinery (such as an interpreter) to do a different task, encryption, and so on.
Twitter: https://twitter.com/RealBisqwit
Patreon: https://patreon.com/Bisqwit (alternatives at https://iki.fi/bisqwit/donate.html)
Twitch: https://twitch.tv/RealBisqwit
Homepage: https://iki.fi/bisqwit/
Source code:
https://bisqwit.iki.fi/jutut/kuvat/programming_examples/obfuscated/
Music:
- Star Ocean :: Encounter :: Motoi Sakuraba (converted into MIDI and played through OPL3 emulation through homebrew software)
- Chrono Cross :: Jellyfish Sea :: Yasunori Mitsuda
Contribute subtitles:
https://www.youtube.com/timedtext_video?v=rwOI1biZeD8
I got to use the word "defenestrate"!
#Bisqwit #Programming #ProgrammingPhilosophy #Tutorial #ObfuscatedCode #CProgramming
Видео Obfuscated C programs: Introduction канала Bisqwit
I realize the category is "obfuscated code", not "small code", but often trying to compress your code into the smallest size will also effectively obfuscate its function. I also realize that some of the individual changes I did in the video did actually _not_ result in smaller program code size, but the opposite. But the end result is still the shortest I could manage, if you remove the "int", the "return", and the space after "include".
Actual obfuscation techniques include using small and meaningless variable names, using unusual syntax constructs, redefining reserved words, adding code that appears to do one thing but does something else (or nothing at all), creating a complex machinery (such as an interpreter) to do a different task, encryption, and so on.
Twitter: https://twitter.com/RealBisqwit
Patreon: https://patreon.com/Bisqwit (alternatives at https://iki.fi/bisqwit/donate.html)
Twitch: https://twitch.tv/RealBisqwit
Homepage: https://iki.fi/bisqwit/
Source code:
https://bisqwit.iki.fi/jutut/kuvat/programming_examples/obfuscated/
Music:
- Star Ocean :: Encounter :: Motoi Sakuraba (converted into MIDI and played through OPL3 emulation through homebrew software)
- Chrono Cross :: Jellyfish Sea :: Yasunori Mitsuda
Contribute subtitles:
https://www.youtube.com/timedtext_video?v=rwOI1biZeD8
I got to use the word "defenestrate"!
#Bisqwit #Programming #ProgrammingPhilosophy #Tutorial #ObfuscatedCode #CProgramming
Видео Obfuscated C programs: Introduction канала Bisqwit
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
![Justified Programming — Reason Parameters That Answer “Why”](https://i.ytimg.com/vi/OrQ9swvm_VA/default.jpg)
![Creating music in one line of C code](https://i.ytimg.com/vi/L9KLnN0GczI/default.jpg)
![ASCII fluid dynamics -- IOCCC2012 endoh1.c](https://i.ytimg.com/vi/QMYfkOtYYlg/default.jpg)
![Code Golf & the Bitshift Variations - Computerphile](https://i.ytimg.com/vi/MqZgoNRERY8/default.jpg)
![A Brief Introduction to Esoteric Programming Languages](https://i.ytimg.com/vi/cQ7bcCrJMHc/default.jpg)
![](https://i.ytimg.com/vi/hPZo2eCwZiE/default.jpg)
![How fast does Bisqwit type?](https://i.ytimg.com/vi/jnkOcAkLkBU/default.jpg)
![Creating a Doom-style 3D engine in C](https://i.ytimg.com/vi/HQYsFshbkYw/default.jpg)
![Reverse Engineering Obfuscated JavaScript](https://i.ytimg.com/vi/8UqHCrGdxOM/default.jpg)
![I wrote a Raytracer for DOS, 16 VGA colors](https://i.ytimg.com/vi/N8elxpSu9pw/default.jpg)
![Bisqwit’s first reaction to: TIS-100, the assembler coding game](https://i.ytimg.com/vi/w2V29owQcEQ/default.jpg)
![Bisqwit’s channel intro explained [WARNING: Contains Bible stuff!]](https://i.ytimg.com/vi/xVxSAi4sueQ/default.jpg)
![The Art of Code - Dylan Beattie](https://i.ytimg.com/vi/6avJHaC3C2U/default.jpg)
![On C programming, switch-cases and the GOSUB](https://i.ytimg.com/vi/_vbMJ3-LuFk/default.jpg)
![Why are new C++ versions created?](https://i.ytimg.com/vi/wrwwa68JXNk/default.jpg)
![Texture Mapping & Polygon Rasterizing Tutorial (1/2) [C++20]](https://i.ytimg.com/vi/PahbNFypubE/default.jpg)
![I wrote an OpenGL first-person demo for DOS (256 colors, dithering, OSMesa)](https://i.ytimg.com/vi/vkUwT9U1GzA/default.jpg)
![Creating a Chip8 interpreter/emulator in C++14](https://i.ytimg.com/vi/rpLoS7B6T94/default.jpg)
![Illumination Tutorial for Software 3D Rendering (1/2+) [c++20]](https://i.ytimg.com/vi/Nwfm6cpskIM/default.jpg)
![Creating a NES emulator in C++11 (PART 1/2)](https://i.ytimg.com/vi/y71lli8MS8s/default.jpg)