Skip to content

Instantly share code, notes, and snippets.

@vsl-iil
vsl-iil / ttlspoof
Created September 14, 2023 19:58
Really simple OpenRC TTL changer. Put it in /etc/init.d, make it executable and add to the default runlevel.
#!/sbin/openrc-run
start() {
echo 65 | sudo tee /proc/sys/net/ipv4/ip_default_ttl && echo 0 || echo 1
}
@vsl-iil
vsl-iil / better_print.rs
Last active May 21, 2024 21:52
Odin-like variadric print macro in Rust
macro_rules! better_print {
($x:expr) => (println!("{}", $x));
($x:expr, $($y:expr),+) => (print!("{} ", $x, ); better_print!($($y),+))
}
// Example:
//
// better_print!("hello!");
// outputs "hello!"
//
@vsl-iil
vsl-iil / init.lua
Created July 30, 2024 18:47
NvChad-like terminal functionality for Neovim
local map = vim.api.nvim_set_keymap
-- convinient keybind for escaping terminal insert mode
map('t', '<C-x>', '<C-\\><C-n>', {noremap = true})
-- open horizontal or vertical split-terminal
map('n', '<leader>h', '<C-w>s<C-w>w:term<CR>i', {noremap = true})
map('n', '<leader>v', '<C-w>v<C-w>w:term<CR>i', {noremap = true})
-- disable line numbers in terminal
@vsl-iil
vsl-iil / post-receive
Created October 18, 2024 21:00
post-receive-pull
# Переименуйте файл в post-receive, сделайте исполняемым и поместите в директорию hooks удалённого репозитория (git init --bare)
# Путь до репозитория:
REPO="/home/example/repo"
# Имя удалённого репозитория (например, origin)
REMOTENAME=server
# Имя ветки
BRANCH=master
cd $REPO
@vsl-iil
vsl-iil / c-fix-cyrillics-win.cpp
Created December 11, 2024 22:51
Починка вывода кириллицы для C/C++
#ifdef _WIN32
#include <Windows.h>
#endif
// Это я обычно помещаю в main:
#ifdef _WIN32
SetConsoleOutputCP(CP_UTF8);
#endif
@vsl-iil
vsl-iil / dinkus.css
Created April 19, 2025 22:52
Dinkus tag - adds <dinkus> HTML tag to separate paragraphs | Добавляет HTML-тэг для разделения текста (* * *). См. пример: https://codepen.io/vsl-iil/pen/zxxvvqK
/*
* Adds a dinkus tag. Just write <dinkus></dinkus> in
* your HTML to add a dinkus (* * *) in text. You can
* also put <br> inside to make asterism (⁂):
* <dinkus><br></dinkus>
* See https://codepen.io/vsl-iil/pen/zxxvvqK for an
* example.
*/
dinkus {
@vsl-iil
vsl-iil / httpsim.py
Last active April 21, 2025 16:43
HTTP endpoint simulator
# Adapted from:
# https://gist.github.com/sjb9774/eeabe6401b3c467d9489339e88dae9f0
import time
import datetime
import re
import socket
import select
def file2bytes(path):
@vsl-iil
vsl-iil / callconv.md
Last active May 8, 2025 21:09
Соглашения о вызовах x86-64

cdecl

Аргументы Направление передачи аргументов (стек) Очищает стек Возвращаемое значение
стек справа налево вызывающий EAX

Пример:

caller:
@vsl-iil
vsl-iil / ultimate-clang-guide.md
Created May 25, 2025 20:54
Установка clang в Windows 11 при помощи Visual Studio

Поскольку я наступил на эти грабли уже третий раз, представляю ультимативный гайд по установке Clang + MSVC для Windows 11.

Заранее обозначу:

  • я не буду использовать MSYS2/MinGW для этого; такие извращения лежат за пределами данного гайда;
  • я не буду использовать темплейт "Разработка классических приложений на C++", ибо он доустанавливает кучу лишнего.

Итак, для установки clang нам понадобится:

  1. Установить Visual Studio (увы, без этого никуда);
@vsl-iil
vsl-iil / antidebug.c
Created May 27, 2025 11:47
Copy of Typical Sequence Of Antidebug Tricks by waleedassar; source: https://waleedassar.blogspot.com/2012/11/hidding-threads-from-debuggers.html
//http://waleedassar.blogspot.com
//http://www.twitter.com/waleedassar
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
extern "C"
{
int __stdcall ZwSetInformationThread(HANDLE,int,unsigned long*,unsigned long);