Skip to content

Instantly share code, notes, and snippets.

@toriningen
toriningen / gist:02dbb3ae8632890cde0e8ee96a87b681
Created December 19, 2017 00:35
WebStorm plugins not bundled with PhpStorm
BashSupport
Cucumber.js
Dart
EditorConfig
EJS
Handlebars/Mustache
Karma
LiveEdit
Meteor
Node.js Remote Interpreter
@toriningen
toriningen / description.md
Last active January 15, 2020 16:47
Naive Python implementation of hash-based obfuscation codec

Идея

Несколько лет назад у меня возникла идея, как можно с этим бороться и сделать создание правила для DPI-фильтра невозможным на практике.

Суть идеи заключается в том, чтобы вместо открытых данных пересылать случайные данные, но которые можно по некоторому заранее известному, желательно трудозатратному алгоритму без секретной компоненты, преобразовать обратно в открытые данные.

Таким образом, это не добавит какой-либо секретности в пересылаемые данные, но затруднит их непосредственный анализ без предварительной обработки, которая в масштабах глобального прослушивания повлечет за собой как минимум ложнопозитивные сработки, и как максимум — невозможность справиться с потоком данных с точки зрения требуемых ресурсов.

Для кодирования следует разбить открытые данные на чанки по N бит, затем для каждого чанка нужно брутфорсом подобрать такой случайный блок данных фиксированного размера H, который при декодировании превратится в ожидаемый чанк открытых данных в N бит размером. Пример такой процедуры декодиро

@toriningen
toriningen / about.t
Created October 26, 2016 11:38
Return to Ditch Day (TADS source)
/*
* Copyright 2003, 2013 Michael J. Roberts
*
* Return to Ditch Day - "About" information (credits, version, help,
* and so on).
*/
#include <adv3.h>
#include <en_us.h>