逆ポーランド記法による数式処理

逆ポーランド記法とは 逆ポーランド記法(Reverse Polish Notation: RPN)は、演算子をオペランドの後に記述する数式やプログラムの記法の一つです。 例えば、一般的な中間記法で記述された数式 (1+2)*(5+4) は逆ポーランド記法では 1 2 + 5 4 + * と記述され…

USBオーディオ変換ケーブルを買った。

PCに接続したヘッドホンの片側だけ音が聞こえなくなるということがあった。 別のヘッドホンに変えても同じ症状が起きたので、原因はヘッドホンの断線やプラグの酸化などではなくPCの差込口の方であることが分かった。 電子工作の心得があるわけでもないので…

Pythonの組み込み実装のROT13を読む。

アルファベットを任意の文字数ずらした暗号をシーザー暗号という。 シーザー暗号の中で13文字ずらしたものをとくにROT13と呼ぶ。 PythonではこのROT13が言語に組み込み実装として存在しており、thisモジュールはこのROT13でエンコードされている。 >>> print…

場阿忍愚(バーニング)CTF write-up

CTF

はじめに 場阿忍愚(バーニング)CTFに出てた。 1628点とって105位だった。 解いた問題は以下の通り。簡単なのしか解けていない。 芸術と兵法術、諜報術は割愛。 id カテゴリ タイトル ポイント 101 練習 image level 1 10 111 芸術 ワットイズディス? 33 1…

原付免許をとった

アルバイトでも始めようかと思ったのがきっかけだった。 バイトをはじめるにあたって良い機会だから、銀行口座を開設しようと思ってゆうちょ銀行の口座を作ろうとしたら、本人確認書類というものが必要らしく困った。 免許もパスポートも持ってないし、保険…

SECCON 2015 オンライン予選 write-up

はじめに SECCON 2015 オンライン予選にぼっちチームhoge444として出てた。 競技開催期間は2015年12月05日(土) 15:00:00(JST)から24時間。 実質2問しか解けなかった。 Title Genre Points Start SECCON CTF Exercises 50 SECCON WARS 2015 Stegano 100 Conne…

VirtualBox上のUbuntuの画面を自動リサイズできるようにする方法

ターミナルでコマンド入力すれば簡単にできる。 $ sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 $ sudo reboot Ubuntuに限らずDebian系OS全般は全く同じコマンドで多分問題ない。

x86アセンブリ言語に関するメモ

x86系マイクロプロセッサの持つ主なレジスタ レジスタ名 呼び名 主な機能 EAX アキュムレータ 算術演算の結果を格納 EBX ベースレジスタ メモリアドレスを格納 ECX カウントレジスタ ループ回数をカウント EDX データレジスタ データを格納 ESI ソースインデ…

Pythonで16進文字列をintに変換

16進文字列からint 基数を指定してintにパースすればいい。 >>> s = 'abcdef' >>> print int(s, 16) 11259375 ちなみにインタラクティブシェルなら0xからはじめた16進文字列を入力すれば10進数にしたものを返してくれる。 >>> 0xdeadbeef 3735928559 intから…

簡単なタイピングゲーム

はじめに C言語で簡単なタイピングゲームを作ってみた。 Visual C++でビルドすることを前提としてる。 コード /*typing_cui1.c*/ #include <time.h> #include <conio.h> #include <ctype.h> #include <stdio.h> #include <string.h> #define Qnumber 20 int main(){ int i, stage, miss = 0, alpsum = 0; c</string.h></stdio.h></ctype.h></conio.h></time.h>…

C言語でchar型を返す関数。

はじめに C言語で文字列が与えられたときそれを逆順したものを返す関数をなぜか作りたくなった。 ポインタを使う 文字列を返す関数を作るときはintやdoubleなどと同じように何も考えず 間違え char hoge(char fuga){ //何らかの処理 return fuga; } のように…

尺取法についてのあれこれ

はじめに 尺取法というものを知った。 尺取法の概要 JOI用語集によると、 配列に対して二つのインデックスを持ち、条件に応じて片方を進める操作を繰り返すことで答えを得る方法のこと。尺取虫の動きにちなんで名付けられた。DPの一種ともとれる。またキュー…

数学の粘度のやつ

はじめに 学校でS先生からマーティン・ガードナーの最難問というものを紹介された。問題の概要は次の通り。 ある数の粘度は、すべての桁を掛けて出る答えが1桁になるまでにかかる積算の回数で表す。それぞれの桁の数を掛け算して出るのが2番目の数で、そのま…

CTFの過去問を解いてOllyDbgの使い方を覚える。

はじめに デバッガの使い方が全然わからなかったので、Hack.lu CTF 2013のRoboAuthという問題で練習しました。 この問題は、パスワードを探すというとてもシンプル内容なので練習にはちょうどいいかなと思います。 問題の概要 問題文は以下の通り RoboAuth (…

ファイルの16進ダンプとその逆

はじめに [追記] 以前は「バイナリ,ASCIIの相互変換」というタイトルでしたが,言葉がふさわしくないと思ったのでタイトルを「ファイルの16進ダンプとその逆」に変更し,内容も大幅に改変しました。 言語はCとPython, Windows 8.1にCygwin入れた環境でテストし…

GMP-使い方メモ

はじめに 今回は任意精度演算ライブラリ、The GNU Multiple Precision Arithmetic Library(GMP)の使い方についてメモ書きみたいなことをします。[追記]任意精度演算がしたいなら普通にPythonとか使ったほうが良さそう。 用語 任意精度演算・・・数値の桁の精…