コアダンプの数だけ強くなれるよ

見習いエンジニアの備忘log

ハニーポットを自宅に設置しVPS経由で公開する

下記を読んで自分もハニーポットを植えてみたいと思いました。 tk-secu.hateblo.jp どうせなら色々なハニーポット試したいし、攻撃の様子もいい感じに可視化したい。 だったらT-Potを植えればいいじゃない!ということで環境を構築してみました。 環境構成 T…

Linux PCのデスクトップ画面をブラウザから監視する

やりたいこと HLS(HTTP Live Streaming) 実施例 事前準備 WEBサーバの設定 HLS開始 実行結果 その他の方法 リンク やりたいこと こんな感じでブラウザから外部のPC(Linux)のモニターに表示している内容をできる限りリアルタイムで表示したい。 HLS(HTTP Live…

sshでログインしている端末の出力をのぞき見る

やりたいこと 自分は端末Aでログインしている状態。 端末Aから別の端末である端末Bのコマンドの入力、応答をのぞき見たい。 できればC言語で実装したい 実現方法 ググってみたところ、perl製のttylogを使ったり、shellスクリプトで頑張ればできるようです。 …

Javascriptでテトリスを作る

Javascriptのサンプルとしてテトリスは定番ですが、そういえば今まで挑戦してなかったの作ってみました。 canvasを使って落下ブロック(テトリミノ)が7種、色が6種のザ定番ぽいものを作ります。 完成品 ソースコード 完成品 Chromeでしか動作確認してません…

Python3サンプルコード集(その2)

Pythonのサンプルコードです。 ネットワーク系が中心となります。 書かなくなるとすぐ忘れてしまうので備忘録として残しておきます。 全てクラアント-サーバの通信のサンプルです。 TCP UDP UNIXドメイン(DATAGRAM型) UNIXドメイン(STREAM型) TCP(selectで待…

Nginx+uWSGI+viewvcでSubversionのリポジトリをブラウザから閲覧する

ViewVC: Repository Browsingを使ってLinux(CentOS7)上に構築したリポジトリをブラウザから参照可能にしてみます。 これで、Linuxが使えないポンコツな上司から修正内容を問われても、URLをコピペしてメールするだけで済むようになります(?) Git環境向けは…

ZAIFのAPIで仮想通貨の積立スクリプトを作る(python)

pythonのお勉強の一環として、ちょこちょこ仮想通貨の自動取引の実装にトライしております。 今回はzaifでBTC/BCH/ETH/MONA/XEM(NEM)を500円分買い注文するプログラムを組んでみます。 作ったスクリプトとcronやsystemdのタイマーと組み合わせることで定期積…

Virtualbox + CentOS7 + シリアル接続してみる

Virutalbox上でLinuxを動かす際に起動ログやカーネルパニック時の画面ログを取りたい時があります。 調べると仮想シリアルポートを組み合わせることでVritualbox上の仮想マシンとシリアル接続が可能らしい。 イメージはこんな感じ。 ということで早速やって…

packetソケットでキャプチャしてみる

Linuxのpacketソケットを使って受信フレームの内容を表示してみます。 今回はEther + IPv4 + TCPで受信したフレームの各ヘッダ情報を表示するアプリケーションを作ります。Linux, C言語です。 packetソケットについての詳しい説明はMan page of PACKETとかを…

Linuxのnamespaceでネットワークを区切って遊ぶ

Linuxのnamaspace(名前空間)で遊んでみます。 Dockerとかコンテナを実現する技術で使われるアレですね。 お遊び内容 各種設定 疎通確認 参考 お遊び内容 まず、下図のネットワーク構成を作ります。 ・eth1,eth2は内部ネットワーク ・vlan100,vlan200はVLANタ…

proc経由でkernelとやり取りしてみる

procインタフェースを利用してユーザランドのアプリケーションとカーネルでデータをやりとりするサンプルです。 具体的には下記のようにechoでリダイレクトした文字列をカーネルで受信して、catで覗くとリダイレクトした文字列が表示されるような簡単なカー…

さくらVPSでBitZenyを掘ってみる

さくらVPSでBitZenyのプールマイニングに挑戦してみます。まずはお試し1週間です。 はじめに 全体の流れ walletの作成 マイナープールにアカウント作成 ワーカの作成 マイナーソフトの導入と実行 結果 参考 はじめに これまで、さくらVPSの空きリソースを使…

VBScriptでWordファイルのページ数一覧を作ってみる

ある日、大量のWordファイルで作られた資料の中身を目視確認する必要に迫られました。 複数人で分担して実施するのですがファイル毎にボリューム(ページ数)が異なるためファイル数で割り振ると不公平が発生します。 そこで事前にファイル単位のページ数がわ…

各社のAPIを使って仮想通貨の価格を表示してみる

以前はcoincheckのAPIだけ使っていましたが、仮想通貨の取引所も増えてきましたので他の取引所が提供しているAPIを試してみました。 pythonで仮想通貨の価格(日本円)表示します。 www.segmentation-fault.xyz Zaif bitflyer bitbank BTCBOX kraken まとめ Za…

Linuxのカーネルモジュールを作って遊んでみる

今回はLinuxのカーネルモジュール(例えばデバイスドライバ)のプログラミングにトライします。 まず今回はHello World的プログラムを作り、次回は/procファイルシステムへのアクセスなど色々試して遊んでみたいと思います。 環境はLinux(CentOS 7)(64bit)です…

FREDから日経平均株価を取得してみる(Python)

最近は仮想通貨の取引所が公開しているAPIを使い販売レートを取得したりビットコインを購入したり出来ることを知り色々遊んでいました。 ふと、日経平均株価(N225)とか他の経済情報を収集してデータを分析できたら面白いのでは?と思ったので情報を取得する…

C/C++のメモリ破壊を3種の方法で検出してみる

C/C++のプログラマーなら一度は悩ませられるであろうメモリ関連のバグ。その内の1つであるメモリ破壊は作りこむのは簡単ですが、後々見つける事が難しくなる場合も多くやっかいな奴です。 今回はそんなメモリ破壊検出の助けとなるツールをいくつか試してみ…

gdbで動作中のプロセスをデバッグしてみる

gdbを使ってLinux上で既に動作しているアプリケーションをattachしてデバッグしてみる。 今回は例としてsnmpdをほんの少しだけ解析します。環境はLinux(CentOS7)です。 gdbのインストール SNMPエージェントのビルド シンボルの抽出と削除 SNMPエージェント起…

TCPのURGフラグの謎

普段からネットワークを扱う人にとってはお馴染みのTCPという技術。 ネットワークを学ぼうとするビギナーが最初に教わるであろう基礎的で重要なプロトコルですが、ずっとTCPヘッダにあるURGフラグ(緊急フラグ)とUrgenポインタ(緊急ポインタ)の使いどころが疑…

ownCloud+nginx+さくらVPSでプライベートクラウド構築

前回、さくらVPS+nginx環境にSSL証明書を導入してHTTPSによる通信ができるようになりました。今回はownCloudを導入して自分専用のファイルサーバを構築していきます。 www.segmentation-fault.xyz はじめに ownCloudの導入 概要 事前準備 ownCloudのダウンロ…

PowerShellでメールを受信してみる

とあるソフトウェアの試験で対象の装置からSMTPサーバへログが記載されたメールが飛ぶかどうか確認する必要がありました。フリーのSMTPサーバを使えれば良いのですが、試験環境にはインターネットから切り離されたWindowsのPCしか無い状況。しかも勝手にソフ…

さくらVPS + nginx + SSL証明書でHTTPS通信

さくらVPSにnginx + wordpressの環境を構築してちょこちょこ遊んでおります。近いうちにHTTPSで接続できるようにもしたいなぁと思ってたのですが、手つかずのまま大分時間が経過してしまいました。 www.segmentation-fault.xyz 今回はSSL証明書を導入してHTT…

coincheckでビットコインを自動で定期購入してみる

今回はcoincheckのAPIを使ってビットコインを購入するスクリプト(python)を作ってみます。 cronと組み合わせれば定期購入もできそうです。実行環境はLinux(CentOS 7)です。 取引用のAPIキーを作成 ソースコード 実行結果 cronと組み合わせて定期購入 まとめ …

canvasで少しずつ作るブロック崩し(5/5)

前回でひとまずブロック崩しと呼べるレベルになりました(たぶん)。今回はバーを台形の形にして角に当たると横方向に跳ね返る機能を追加します。また、ソースコードの整理、当たり判定の改善などを加えてまとめます。 canvasで作るブロック崩し 当たり判定の…

WebSocketを使ってcoincheckの板情報(BTC/JPY)をリアルタイムで表示する

はじめに WebSocketで取得した板情報(BTC/JPY) ソースコード はじめに 以前、coincheckのAPIをPythonから利用して仮想通貨の取引レートを取得をやってみました。本当はJavascriptで取得したかったのですが、同一参照元がうんぬんの制約(あまり理解できてない…

canvasで少しずつ作るブロック崩し(4/5)

前回は右クリックでボールを出現、左クリックでバーを上下させボールを打ち返す機能を加えました。今回はいよいよブロックを作ってボールが当たると消える機能をつけてみます。 完成品 ソースコード 関連ページ 完成品 (function() { var canvas; var ctx; v…

Mackerel(マカレル)を使ってワクワクしてみる

以前から気になっていたサーバー監視サービスのMackerel(マカレル)を使ってCentOS7(さくらVPS)を監視してみました。 はじめに 登録~監視まで サインアップ オーガニゼーションの作成 エージェントのインストール サービス、ロールの作成 グラフの表示 まと…

canvasで少しずつ作るブロック崩し(3/5)

前回はボールを1個だけ出現させてバーで跳ね返せる機能を作りました。複数のボールを出現する機能とクリックでバーを上下させボールを打ち返せる機能をつけてみます。 機能追加版 ソースコード 関連ページ 機能追加版 (function() { var canvas; var ctx; va…

canvasで少しずつ作るブロック崩し(2/5)

前回はマウスで動くバーを作成しました。今回はボールを打てるようにしていきます。 バーとボール 追加要素 ソースコード 関連ページ バーとボール (function() { var canvas; var ctx; var width; var height; var mouseX; var mouseY; var BAR = { 'HEIGHT…

canvasで少しずつ作るブロック崩し(1/5)

HTML5のcanvasとJavascriptで少しづつブロック崩しを作っていこうと思います。目標はぶろっくでポン!みたいに重力+複数のボールを扱えるブロック崩しにすること。だいたい5回分ぐらいで完成を想定。 初回はとりあえずマウスで動かせるバーを作ります。 マウ…