プログラミング
本稿は「CTF Advent Calendar 2016 - Adventar」19日目の記事です。去年の冬あたりからCTFの暗号問題を解くようになって、Writeupがだいぶ溜まってきたので整理して公開しました(一部紛失してしまいましたが)。「あの暗号のあの攻撃ってどうやるんだっけ」…
SageMathはPythonベースで作られているが、外部の(標準でない)Pythonライブラリをインポートしようとするとエラーが起きることがある。たとえばPyCryptoだと、普通のPythonの対話シェルではインポートできているのに、 $ python Python 2.7.11 (default, D…
ChaCha(チャチャ)という一見ふざけた名前の暗号が最近(自分の中で)話題ということで,勉強がてらに記事にしてみました. 背景 ChaChaの構造 Salsa20 Chacha 初期状態 ラウンド操作 ChaChaの安全性 実装してみた 参考 背景 2016年4月現在,TLSの新しいバ…
先日Nginxを使ってWEBサーバを立ち上げたのだが,アクセスログを解析しやすいようにデータベースに突っ込みたかったので自分で実装してみた.VPSでWebサーバを構築した - sonickun.logsonickun.hatenablog.com Apacheのログなどをデータベースに出力するツー…
ドメインの情報が知りたければdigやnslookupコマンドを叩けば良いっていう話ですが,複数のドメインもしくはIPアドレスをまとめて処理したいってこと,あるあるですよね. Python Script lookup.py # -*- coding: utf-8 -*- import socket import sys # 正引…
ARPスプーフィングとは、ARPプロトコルの応答を偽装することにより、LAN上で通信機器のなりすましを行なう技法です.これを用いて中間者攻撃すると大変なことになってしまうというお話です. 10月のSECCON札幌大会がARP Spoofing Challengeということで,予…
Pythonの「GeoIP」というモジュールを使ってIPアドレスやドメイン名から国名などの位置情報を取得します. GeoIP 1.3.2 : Python Package Index GeoIPのインストール インストール方法が少しややこしかったのでまとめておきます. 事前にインストールが必要…
パケットを監視してて,この送信元IPってどこのホストなんだろうって思うこと,あるあるですよね. ある調べたいIPアドレスがあって,それをIPアドレスとホスト名が紐付けされているのリストの中から探索するスクリプトです. py-radix py-radixは,pythonの…
"192.168.192.48 - 192.168.192.79"といった始点と終点によって定義されるIPアドレス空間を,"192.168.192.48/27"というPrefix表記に変換するスクリプトです. サブネットマスクの計算方法は下のリンクを参照してください. 基礎から学ぶWindowsネットワーク…
Pythonのcollectionsモジュールに含まれるdefaultdictを用いて大量のドメインを分類する方法について説明します。 マニュアルはこちら↓ 8.3. collections — 高性能なコンテナ・データ型 — Python 2.7ja1 documentation defaultdictはディクショナリ状のオブ…
ナイーブベイズ分類による機械学習と、それをクロスバリデーション(10-fold CV)により分類精度を調べるプログラムをPythonで書きました。 大学院の講義の課題で出されたもので、丸一日のたうち回りながら何とか完成させました。 ナイーブベイズ分類器につい…
Pythonでデータ分析をするときにどうしても2次元配列を使いたかったのですが、Numpyを使った配列定義がわかりにくくて困っていたところ、友人にNumpyを使わない方法を教えてもらったので載せておきます。個人的にはこの方法が一番シンプルで好きです。 また…