2023-07-13 14:29:58 +00:00
|
|
|
/*
|
|
|
|
|
|
|
|
Copyright:
|
|
|
|
(C) 2022-2023 Daniele 'dzonerzy' Linguaglossa - http://libdzonerzy.so
|
|
|
|
|
|
|
|
This file is part of libdzonerzy.so.
|
|
|
|
|
|
|
|
GNU GENERAL PUBLIC LICENSE
|
|
|
|
Version 3, 29 June 2007
|
|
|
|
|
|
|
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
|
|
Everyone is permitted to copy and distribute verbatim copies
|
|
|
|
of this license document, but changing it is not allowed.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define _POSIX_C_SOURCE 200809L
|
|
|
|
#include "libdzonerzy.so.h"
|
|
|
|
#include "res.h"
|
|
|
|
|
|
|
|
// this is a shared object library
|
|
|
|
|
2023-07-13 22:00:51 +00:00
|
|
|
#define MAIN_CSS \
|
|
|
|
CSS_COMMENT("main.css") \
|
|
|
|
CSS_NEWLINE() \
|
|
|
|
CSS_SELECTOR(":root") \
|
|
|
|
CSS_PROPERTY("--main-link-color", "#215fc2") \
|
|
|
|
CSS_END_SELECTOR() \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_SELECTOR("html") \
|
2023-07-13 22:00:51 +00:00
|
|
|
CSS_PROPERTY("margin", "0") \
|
|
|
|
CSS_PROPERTY("padding", "0") \
|
|
|
|
CSS_PROPERTY("width", "100%") \
|
|
|
|
CSS_PROPERTY("height", "100vh") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("body") \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_PROPERTY("margin", "auto") \
|
|
|
|
CSS_PROPERTY("max-width", "60em") \
|
|
|
|
CSS_PROPERTY("min-height", "100vh") \
|
2023-07-13 22:00:51 +00:00
|
|
|
CSS_PROPERTY("font-family", "monospace") \
|
|
|
|
CSS_PROPERTY("font-size", "1.23em") \
|
|
|
|
CSS_PROPERTY("background-color", "#ddd") \
|
|
|
|
CSS_PROPERTY("display", "flex") \
|
|
|
|
CSS_PROPERTY("flex-direction", "column") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("#title-block-header, #TOC") \
|
|
|
|
CSS_PROPERTY("border", "1px solid #222") \
|
|
|
|
CSS_PROPERTY("border-radius", "15px") \
|
|
|
|
CSS_PROPERTY("background-color", "#ccc") \
|
|
|
|
CSS_PROPERTY("color", "#000") \
|
|
|
|
CSS_PROPERTY("margin", "1em") \
|
|
|
|
CSS_PROPERTY("padding", "1em") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("footer") \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_PROPERTY("border", "1px solid #222") \
|
|
|
|
CSS_PROPERTY("border-radius", "15px") \
|
2023-07-13 22:00:51 +00:00
|
|
|
CSS_PROPERTY("background-color", "#ccc") \
|
|
|
|
CSS_PROPERTY("color", "#000") \
|
|
|
|
CSS_PROPERTY("flex-shrink", "0") \
|
|
|
|
CSS_PROPERTY("display", "flex") \
|
|
|
|
CSS_PROPERTY("flex-direction", "column") \
|
|
|
|
CSS_PROPERTY("justify-content", "center") \
|
|
|
|
CSS_PROPERTY("align-items", "center") \
|
|
|
|
CSS_PROPERTY("font-size", "0.9em") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("div.hearth") \
|
|
|
|
CSS_PROPERTY("display", "flex") \
|
|
|
|
CSS_PROPERTY("justify-content", "center") \
|
|
|
|
CSS_PROPERTY("align-items", "center") \
|
|
|
|
CSS_PROPERTY("margin-left", "0.2em") \
|
|
|
|
CSS_PROPERTY("margin-right", "0.2em") \
|
|
|
|
CSS_PROPERTY("font-size", "1.5em") \
|
|
|
|
CSS_PROPERTY("padding", "0px") \
|
|
|
|
CSS_PROPERTY("animation", "bounce 1s infinite") \
|
|
|
|
CSS_PROPERTY("color", "#d00000") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("b.author") \
|
|
|
|
CSS_PROPERTY("color", "#000") \
|
|
|
|
CSS_PROPERTY("text-transform", "uppercase") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("p.author::before") \
|
|
|
|
CSS_PROPERTY("text-transform", "lowercase") \
|
|
|
|
CSS_PROPERTY("font-weight", "normal") \
|
|
|
|
CSS_PROPERTY("content", "'by '") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("p.date::before") \
|
|
|
|
CSS_PROPERTY("text-transform", "lowercase") \
|
|
|
|
CSS_PROPERTY("font-weight", "normal") \
|
|
|
|
CSS_PROPERTY("content", "'written on '") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("p.date") \
|
|
|
|
CSS_PROPERTY("text-transform", "capitalize") \
|
|
|
|
CSS_PROPERTY("font-weight", "bold") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("p.author") \
|
|
|
|
CSS_PROPERTY("text-transform", "uppercase") \
|
|
|
|
CSS_PROPERTY("font-weight", "bold") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("h1.title") \
|
|
|
|
CSS_PROPERTY("text-align", "center") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("section") \
|
|
|
|
CSS_PROPERTY("margin", "1em") \
|
|
|
|
CSS_PROPERTY("flex", "1 0 auto") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("h1 h2 h3 h4 h5 h6") \
|
|
|
|
CSS_PROPERTY("font-family", "monospace") \
|
|
|
|
CSS_PROPERTY("clear", "both") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("img") \
|
|
|
|
CSS_PROPERTY("padding", "2px") \
|
|
|
|
CSS_PROPERTY("border", "2px dashed #333") \
|
|
|
|
CSS_PROPERTY("background-color", "#fff") \
|
|
|
|
CSS_PROPERTY("color", "#000") \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_PROPERTY("height", "15em") \
|
2023-07-13 22:00:51 +00:00
|
|
|
CSS_PROPERTY("float", "right") \
|
|
|
|
CSS_PROPERTY("clear", "right") \
|
|
|
|
CSS_PROPERTY("margin-left", "1em") \
|
|
|
|
CSS_PROPERTY("margin-bottom", "1em") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("figcaption") \
|
|
|
|
CSS_PROPERTY("display", "none") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("@keyframes bounce") \
|
|
|
|
CSS_SELECTOR("from, to") \
|
|
|
|
CSS_PROPERTY("transform", "scale(1, 1)") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("25%") \
|
|
|
|
CSS_PROPERTY("transform", "scale(0.9, 1.1)") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("50%") \
|
|
|
|
CSS_PROPERTY("transform", "scale(1.1, 0.9)") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("75%") \
|
|
|
|
CSS_PROPERTY("transform", "scale(0.95, 1.05)") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_END_SELECTOR() \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_SELECTOR("header~*") \
|
|
|
|
CSS_PROPERTY("margin", "1em") \
|
|
|
|
CSS_PROPERTY("padding", "1em") \
|
|
|
|
CSS_END_SELECTOR() \
|
2023-07-13 22:00:51 +00:00
|
|
|
CSS_SELECTOR("footer > span") \
|
|
|
|
CSS_PROPERTY("display", "flex") \
|
|
|
|
CSS_PROPERTY("text-align", "center") \
|
|
|
|
CSS_PROPERTY("justify-content", "center") \
|
|
|
|
CSS_PROPERTY("align-items", "center") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("pre, code") \
|
|
|
|
CSS_PROPERTY("max-height", "500px") \
|
|
|
|
CSS_PROPERTY("overflow", "auto") \
|
|
|
|
CSS_PROPERTY("font-family", "monospace") \
|
|
|
|
CSS_PROPERTY("border-radius", "0.5em") \
|
|
|
|
CSS_END_SELECTOR() \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_SELECTOR("blockquote img") \
|
|
|
|
CSS_PROPERTY("clear", "none") \
|
|
|
|
CSS_PROPERTY("height", "auto") \
|
|
|
|
CSS_PROPERTY("max-height", "32em") \
|
|
|
|
CSS_PROPERTY("max-width", "100%") \
|
|
|
|
CSS_PROPERTY("float", "none") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("blockquote") \
|
|
|
|
CSS_PROPERTY("padding", "1em") \
|
|
|
|
CSS_PROPERTY("color", "#111") \
|
|
|
|
CSS_PROPERTY("clear", "both") \
|
|
|
|
CSS_PROPERTY("padding-top", "0.25em") \
|
|
|
|
CSS_PROPERTY("padding-bottom", "0.25em") \
|
2023-10-20 14:19:01 +00:00
|
|
|
CSS_PROPERTY("width", "auto") \
|
|
|
|
CSS_PROPERTY("margin", "0 auto") \
|
|
|
|
CSS_PROPERTY("display", "table") \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("pre") \
|
2023-07-13 22:00:51 +00:00
|
|
|
CSS_PROPERTY("padding", "1em") \
|
|
|
|
CSS_PROPERTY("border", "1px solid #111") \
|
|
|
|
CSS_PROPERTY("background-color", "#9a9091") \
|
|
|
|
CSS_PROPERTY("color", "#111") \
|
|
|
|
CSS_PROPERTY("clear", "both") \
|
|
|
|
CSS_PROPERTY("padding-top", "0.25em") \
|
|
|
|
CSS_PROPERTY("padding-bottom", "0.25em") \
|
|
|
|
CSS_END_SELECTOR() \
|
2023-10-19 12:02:01 +00:00
|
|
|
CSS_SELECTOR(".sourceCode") \
|
|
|
|
CSS_PROPERTY("overflow", "auto") \
|
2023-07-13 22:00:51 +00:00
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("pre::-webkit-scrollbar") \
|
|
|
|
CSS_PROPERTY("display", "none") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("a") \
|
|
|
|
CSS_PROPERTY("text-decoration", "none") \
|
|
|
|
CSS_PROPERTY("color", "var(--main-link-color)") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR("a:visted") \
|
|
|
|
CSS_PROPERTY("color", "var(--main-link-color)") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR(".modal") \
|
|
|
|
CSS_PROPERTY("position", "fixed") \
|
|
|
|
CSS_PROPERTY("top", "0") \
|
|
|
|
CSS_PROPERTY("left", "0") \
|
|
|
|
CSS_PROPERTY("width", "100%") \
|
|
|
|
CSS_PROPERTY("height", "100%") \
|
|
|
|
CSS_PROPERTY("background-color", "rgba(0,0,0,0.7)") \
|
|
|
|
CSS_PROPERTY("z-index", "9999") \
|
|
|
|
CSS_PROPERTY("cursor", "zoom-out") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR(".modal img") \
|
|
|
|
CSS_PROPERTY("min-height", "80vh") \
|
|
|
|
CSS_PROPERTY("max-height", "80vh") \
|
|
|
|
CSS_PROPERTY("width", "auto") \
|
|
|
|
CSS_PROPERTY("max-width", "95vw") \
|
|
|
|
CSS_PROPERTY("position", "absolute") \
|
|
|
|
CSS_PROPERTY("top", "50%") \
|
|
|
|
CSS_PROPERTY("left", "50%") \
|
|
|
|
CSS_PROPERTY("transform", "translate(-50%, -50%)") \
|
|
|
|
CSS_PROPERTY("margin", "0") \
|
|
|
|
CSS_END_SELECTOR() \
|
|
|
|
CSS_SELECTOR(".zoomable") \
|
|
|
|
CSS_PROPERTY("max-width", "60vw") \
|
|
|
|
CSS_PROPERTY("max-height", "45vh") \
|
2023-07-13 14:29:58 +00:00
|
|
|
CSS_END_SELECTOR()
|
|
|
|
|
2023-07-13 14:50:45 +00:00
|
|
|
#define INDEX_MD \
|
|
|
|
MD_META("DZONERZY's Blog", "DZONERZY") \
|
2023-07-13 22:00:51 +00:00
|
|
|
MD_META_CUSTOM("Wednesday, July 12, 2023") \
|
2023-07-13 14:50:45 +00:00
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_SECTION1("About") \
|
2023-07-13 22:00:51 +00:00
|
|
|
MD_IMAGE_ATTR("Picture of DZONERZY", "assets/dzonerzy.jpg", "class", "zoomable") \
|
2023-07-13 14:50:45 +00:00
|
|
|
MD_TEXT("Hello world here is dzonerzy, also known as Daniele Linguaglossa,") \
|
|
|
|
MD_TEXT("I'm an offensive security researcher and developer.") \
|
|
|
|
MD_NEWLINE() \
|
2023-07-13 17:31:16 +00:00
|
|
|
MD_TEXT("I'm the author of this blog, and I'm using it to share my ") \
|
2023-07-13 14:50:45 +00:00
|
|
|
MD_TEXT("researches and my projects.") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_TEXT("I'm also the author of the library that powers this blog, ") \
|
|
|
|
MD_TEXT("yes you heard right, this blog is powered by a ") \
|
|
|
|
MD_BOLD("shared object") \
|
|
|
|
MD_TEXT(" that I wrote in C!") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_TEXT("You can find the source code of this blog on my ") \
|
|
|
|
MD_LINK("git repository", "https://git.libdzonerzy.so/dzonerzy/libdzonerzy.so") \
|
|
|
|
MD_TEXT(".") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_SECTION1("Projects") \
|
|
|
|
MD_TEXT("Here is a list of my projects, that I've made in my spare time, some of them are ") \
|
|
|
|
MD_TEXT("still in development, but I'm working hard to finish them.") \
|
|
|
|
MD_NEWLINE() \
|
2023-07-13 14:51:21 +00:00
|
|
|
MD_LIST(MD_BOLD(MD_LINK("libdzonerzy.so", "https://git.libdzonerzy.so/dzonerzy/libdzonerzy.so"))) \
|
2023-07-13 14:50:45 +00:00
|
|
|
MD_TEXT(" -- libdzonerzy.so is a shared object that I wrote in C, it's a library ") \
|
|
|
|
MD_TEXT("that I use to power this blog.") \
|
|
|
|
MD_NEWLINE() \
|
2023-07-13 22:00:51 +00:00
|
|
|
MD_SECTION1("Articles") \
|
|
|
|
MD_TEXT("Below you can find a list of my articles, I'm writing articles about ") \
|
|
|
|
MD_TEXT("offensive security and programming, I'm also writing articles about ") \
|
|
|
|
MD_TEXT("my projects.") \
|
|
|
|
MD_NEWLINE() \
|
2023-10-19 12:02:01 +00:00
|
|
|
MD_LIST(MD_BOLD(MD_LINK("From zero to botnet", \
|
|
|
|
"/articles/from-zero-to-botnet-glinet.html"))) \
|
|
|
|
MD_TEXT(" -- GL.iNet going wild") \
|
2023-07-13 22:00:51 +00:00
|
|
|
MD_NEWLINE() \
|
2023-07-13 14:50:45 +00:00
|
|
|
MD_SECTION1("FAQ") \
|
|
|
|
MD_TEXT("Here is a list of frequently asked questions, if you have any other questions ") \
|
|
|
|
MD_TEXT("feel free to contact me at ") \
|
|
|
|
MD_BOLD("dzonerzy[at]gmail.com") \
|
|
|
|
MD_TEXT(".") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_SECTION4(" ") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_LIST(MD_BOLD("Q: ") MD_TEXT("Why this blog is so ugly?")) \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_TEXT("Because I'm not a web designer, I'm a developer, and I'm not good at ") \
|
|
|
|
MD_TEXT("designing things, but I'm working on it, I promise.") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_LIST(MD_BOLD("Q: ") MD_TEXT("Why this blog is so fast?")) \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_TEXT("Actually this is a static website, so it's very fast.") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_LIST(MD_BOLD("Q: ") MD_TEXT("What do you do for living?")) \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_TEXT("I'm the lead offensive security researcher at ") \
|
|
|
|
MD_LINK("Sysdig", "https://sysdig.com") \
|
|
|
|
MD_TEXT(", a cloud security company.") \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_LIST(MD_BOLD("Q: ") MD_TEXT("Is Sysdig hiring?")) \
|
|
|
|
MD_NEWLINE() \
|
|
|
|
MD_TEXT("Yes, we are always looking for new talents, if you are interested in working ") \
|
2023-07-13 22:00:51 +00:00
|
|
|
MD_TEXT("with me, feel free to send your resume at ... try to find it, after all it's still ") \
|
|
|
|
MD_TEXT("\"inside\" this blog.") \
|
2023-07-13 17:19:19 +00:00
|
|
|
MD_NEWLINE()
|
2023-07-13 14:29:58 +00:00
|
|
|
|
2023-07-13 22:00:51 +00:00
|
|
|
#define FOOTER_HTML \
|
2023-07-13 14:29:58 +00:00
|
|
|
MD_RAWTAG("footer", "" \
|
|
|
|
"<span>" \
|
|
|
|
"Powered by <a href=\"/libdzonerzy.so\">libdzonerzy.so</a>" \
|
|
|
|
"</span>" \
|
|
|
|
"<br>" \
|
|
|
|
"<span>made with <div class='hearth'>❤</div> by <b class='author'>dzonerzy</b></span>") \
|
|
|
|
MD_NEWLINE()
|
|
|
|
|
2023-10-20 13:13:51 +00:00
|
|
|
#define SCRIPTS_HTML \
|
|
|
|
HTML_TAG_OPEN_CONTENT("script", "src=\"/main.js\"", "") \
|
|
|
|
HTML_TAG_OPEN_CONTENT("script", "async src=\"/https://www.googletagmanager.com/gtag/js?id=G-C4VP1TE4JZ\"", "") \
|
|
|
|
HTML_TAG_OPEN("script", "type=\"text/javascript\"") \
|
|
|
|
HTML_RAWTEXT("window.dataLayer = window.dataLayer || [];") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("function gtag(){dataLayer.push(arguments);}") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("gtag('js', new Date());") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("gtag('config', 'G-C4VP1TE4JZ');") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_TAG_CLOSE("script") \
|
2023-07-13 22:00:51 +00:00
|
|
|
HTML_NEWLINE()
|
|
|
|
|
|
|
|
// wait for page ready and then execute the code don't use jQuery
|
|
|
|
// because it's a static website and I don't want to use external
|
|
|
|
// libraries
|
|
|
|
// use a div with class modal to show the image
|
|
|
|
// the image must maintain the aspect ratio
|
|
|
|
// the image must be centered
|
|
|
|
|
|
|
|
#define MAIN_JS \
|
|
|
|
HTML_RAWTEXT("function zoomImages() {") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("var imgs = document.getElementsByClassName('zoomable');") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("for (var i = 0; i < imgs.length; i++) {") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("imgs[i].style.cursor = 'zoom-in';") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("imgs[i].addEventListener('click', function() {") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("var modal = document.createElement('div');") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("modal.className = 'modal';") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("modal.addEventListener('click', function() {") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("modal.parentNode.removeChild(modal);") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("});") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("var img = document.createElement('img');") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("img.src = this.src;") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("modal.appendChild(img);") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("document.body.appendChild(modal);") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("});") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("}") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("}") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("document.addEventListener('DOMContentLoaded', function() {") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("zoomImages();") \
|
|
|
|
HTML_NEWLINE() \
|
|
|
|
HTML_RAWTEXT("});") \
|
|
|
|
HTML_NEWLINE()
|
|
|
|
|
2023-07-13 14:29:58 +00:00
|
|
|
#define SITEMAP_XML \
|
|
|
|
XML_URLSET() \
|
|
|
|
XML_URL("https://libdzonerzy.so/index.html") \
|
|
|
|
XML_URL("https://libdzonerzy.so/sitemap.xml") \
|
|
|
|
XML_END_URLSET()
|
|
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
|
|
{
|
|
|
|
fprintf(stdout, "https://libdzonerzy.so\n");
|
|
|
|
return EXIT_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
// resources
|
|
|
|
SECTION("main.css")
|
|
|
|
static const char maincss[] = MAIN_CSS;
|
|
|
|
SECTION("pages/index.md")
|
|
|
|
static const char indexmd[] = INDEX_MD;
|
|
|
|
SECTION("footer.html")
|
2023-07-13 22:00:51 +00:00
|
|
|
static const char footerhtml[] = FOOTER_HTML;
|
|
|
|
SECTION("scripts.html")
|
|
|
|
static const char scriptshtml[] = SCRIPTS_HTML;
|
|
|
|
SECTION("main.js")
|
|
|
|
static const char mainjs[] = MAIN_JS;
|
2023-07-13 14:29:58 +00:00
|
|
|
SECTION("sitemap.xml")
|
2023-07-13 22:00:51 +00:00
|
|
|
static const char sitemapxml[] = SITEMAP_XML;
|
2023-10-19 12:02:01 +00:00
|
|
|
ARTICLE("from-zero-to-botnet-glinet")
|
2023-10-20 15:34:44 +00:00
|
|
|
static const char zerotobot[] = {0x25, 0x20, 0x46, 0x72, 0x6F, 0x6D, 0x20, 0x7A, 0x65, 0x72, 0x6F, 0x20, 0x74, 0x6F, 0x20, 0x62, 0x6F, 0x74, 0x6E, 0x65, 0x74, 0x20, 0x2D, 0x2D, 0x20, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x67, 0x6F, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x69, 0x6C, 0x64, 0x0A, 0x25, 0x20, 0x44, 0x5A, 0x4F, 0x4E, 0x45, 0x52, 0x5A, 0x59, 0x0A, 0x25, 0x20, 0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x2C, 0x20, 0x20, 0x4F, 0x63, 0x74, 0x6F, 0x62, 0x65, 0x72, 0x20, 0x31, 0x39, 0x2C, 0x20, 0x32, 0x30, 0x32, 0x33, 0x0A, 0x23, 0x20, 0x42, 0x6F, 0x72, 0x65, 0x64, 0x6F, 0x6D, 0x2C, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x62, 0x61, 0x64, 0x20, 0x67, 0x75, 0x79, 0x0A, 0x21, 0x5B, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6F, 0x66, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x5D, 0x28, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x62, 0x6F, 0x72, 0x65, 0x64, 0x2D, 0x68, 0x61, 0x63, 0x6B, 0x65, 0x72, 0x2E, 0x6A, 0x70, 0x67, 0x29, 0x0A, 0x0A, 0x49, 0x74, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x66, 0x65, 0x77, 0x20, 0x64, 0x61, 0x79, 0x73, 0x20, 0x61, 0x67, 0x6F, 0x2C, 0x20, 0x61, 0x20, 0x66, 0x72, 0x69, 0x65, 0x6E, 0x64, 0x20, 0x6F, 0x66, 0x20, 0x6D, 0x69, 0x6E, 0x65, 0x2C, 0x20, 0x4D, 0x69, 0x63, 0x68, 0x65, 0x6C, 0x65, 0x2C, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x20, 0x6D, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x73, 0x61, 0x69, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x61, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6C, 0x69, 0x74, 0x79, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x6C, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6C, 0x69, 0x74, 0x79, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x52, 0x43, 0x45, 0x20, 0x28, 0x52, 0x65, 0x6D, 0x6F, 0x74, 0x65, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x29, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x65, 0x64, 0x20, 0x61, 0x6E, 0x20, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6B, 0x65, 0x72, 0x20, 0x74, 0x6F, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2E, 0x0A, 0x0A, 0x48, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x61, 0x73, 0x6B, 0x65, 0x64, 0x20, 0x6D, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x68, 0x65, 0x6C, 0x70, 0x20, 0x68, 0x69, 0x6D, 0x20, 0x27, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x70, 0x6F, 0x73, 0x74, 0x2D, 0x61, 0x75, 0x74, 0x68, 0x20, 0x52, 0x43, 0x45, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x68, 0x65, 0x20, 0x64, 0x69, 0x64, 0x6E, 0x27, 0x74, 0x20, 0x6B, 0x6E, 0x6F, 0x77, 0x20, 0x68, 0x6F, 0x77, 0x20, 0x74, 0x6F, 0x20, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2C, 0x20, 0x64, 0x72, 0x69, 0x76, 0x65, 0x6E, 0x20, 0x62, 0x79, 0x20, 0x63, 0x75, 0x72, 0x69, 0x6F, 0x73, 0x69, 0x74, 0x79, 0x2C, 0x20, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x6E, 0x61, 0x6C, 0x79, 0x7A, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x49, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x61, 0x20, 0x6D, 0x69, 0x78, 0x20, 0x6F, 0x66, 0x20, 0x62, 0x61, 0x64, 0x20, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x2C, 0x20, 0x70, 0x6F, 0x6F, 0x72, 0x20, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69, 0x6E, 0x67, 0x20, 0x73, 0x6B, 0x69, 0x6C, 0x6C, 0x73, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x61, 0x20, 0x6C, 0x6F, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x66,
|