Entries from 2018-01-01 to 1 year

ちゃんと[検閲済]記事

文化的犠牲 [検閲済] はじめに [検閲済] 登場人物 [検閲済] 冒頭 [検閲済] おわりに この曲すき.

某VPNの設定を半自動化する小汚い小スクリプト群

何をしているのかわからない人はやらないほうがいいです 俺もわからん. 某VPNはセットアップが楽ちん さらに楽にするために半自動化します. その場しのぎで書いただけで何も考えてません. 使用, 参考にする場合は要注意. 筆者の環境はArch Linuxだが, 執筆時…

SOLVED: なぜセグフォ?

最近現実逃避が捗りすぎて困っている. 最近は低レベルのコードとかよくわからないので勉強している(遊んでいるだけ). このC言語のソースコードは, x86_64のLinuxなら動く環境があると思う. const unsigned char main[] = { 72, 199, 192, 1, 0, 0, 0, 72, 19…

文字列を出力するプログラムを楽に難読化(?)する方法

センスは感じられないがBrainfuckを使えばとりあえずぱっと見何やってるかわからない. 配列(とポインタ)さえ扱えればどんな言語でもできるはず. 1時間もかからない. 入力した文字列を出力するBrainfuckコードを出力するプログラムをインターネット上で見つけ…

無題

133565, 39302, 33134, 38327, 32709, 79486, 141338, 29224, 67390, 33156, 135192, 144337, 154547, 21212, 5610, 105208, 21821, 139964, 115775, 30189, 159181, 130547, 125287, 74453, 55876, 133762, 80912, 6067, 79578, 27557, 129153, 138025, 114…

C言語のmain関数の仮引数について

最近のC言語の規格では, main関数の仮引数は基本的に int main(void) か int main(int argc, char **argv) のどちらか(またはこれらと同等のもの)にしなければならない(C99, C11). のだが, 今日ネット上で int main(int argc, char **argv, char **envp) と…

某ディストリビューションでPythonパッケージを扱う

はじめに venvを紹介するだけの記事なので知ってる人は帰ってよし. 三行で $ sudo apt install python3-venv $ python3 -m venv ${PATH_TO_VIRT_ENV} $ source ${PATH_TO_VIRT_ENV}/bin/activate プログラミング言語のパッケージ管理システムは微妙 基本的に…

Internet Kill Switch by Firewall (OpenVPN + iptables)

タイトルの通り. このPythonプログラムはopenvpnの設定ファイルの remote <hostname> <port> を remote <ip address> <port> に書き換える. また, 書き換えたVPNサーバのIPアドレスへのアクセスを許可するiptablesのOUTPUTチェインの追加ルールを./rules.txtに保存する. iptables-restoreで読み</port></ip></port></hostname>…

安全でないストリーム暗号ARCFOUR

はじめに Wikipediaを見てみたらARCFOURのアルゴリズムが単純だったので実装してみた. 一応言っておくが, 暗号アルゴリズムの実装は素人がやるものではない. 参考記事: https://en.wikipedia.org/wiki/RC4 記事に書いてある通りに実装した. ソースコード /* …

TweetDeckのサムネイルを小さいサイズの画像にするブックマークレット

通信速度制限を喰らっているときにTweetDeckの画像抽出カラムの流速が速いととてもつらいのでそれを若干緩和させるブックマークレットを書いた. JavaScriptをまともに触るのは初めてなので苦戦. Web系まったくわからん. Content Security Policyのアレでこれ…

How to Play an Encrypted Video File Directly with openssl and mpv

openssl と mpv を使用して暗号化された動画ファイルを直接再生する方法 やむを得ない事情により, 復号したファイルを保存できない場合があるかもしれない. opensslと mpv を使用することで, 暗号化された動画を直接再生することができる. Example Assume th…

Linux Kernel の黒魔術マクロ: __is_constexpr(x)

__is_constexpr(x) は Linux kernel 4.17 で導入されたマクロで、与えられた式が定数式であるかを 式を評価せずに 判定する。 /* * This returns a constant expression while determining if an argument is * a constant expression, most importantly wit…

漢字変換を雑に実装してみる

一発変換と変換候補を出すだけ。 たぶん一番基本的なやつ。 真面目に日本語入力を実現するには形態素解析とかいろいろしなきゃいけないので自分には MURI。 ライブラリもあるけど興味もそこまでない。 Mozc 更新して。 コメント書けないのはアレだけど、Pyth…

Uniqfuck: Brainfuck Translator

Uniqfuck Brainfuck プログラムと Brainfuck 派生言語プログラムを相互変換するプログラムを作った。 名前は Uniqfuck とした。 ソースコードは記事の最後に載せる。 ライセンスは MIT License とする。 使い方 Uniqfuck の使い方を簡単に説明する。 Python …

ExcludeNodes の設定を半自動化

追記 ExcludeNodes, ExcludeExitNodes の設定は参考サイトから丸パクリして載せていましたが, 消したようなので消しました. このプログラムは, BadExit の付いたノードが一つも存在しない場合の処理が抜けています. 気が向いたら直しておきます.直しました. …