2017-01-01から1年間の記事一覧

永続リアルタイムキューのHaskell実装と計算量解析

この記事はHaskellアドベントカレンダーその2の22日目の記事です。 Haskell (その2) Advent Calendar 2017 - Qiita @rst76さんが昨日書いた記事でHaskellのリアルタイムキューがなかったので書きました。 qiita.com 12/23追記 この記事の内容に重大な誤りが…

Code Blue CTF Writeup

Common Modulus 1-3 いずれもRSAを解読する問題。 \(C_1 = M^{e_1} \mod N\) \(C_2 = M^{e_2} \mod N\) が与えられる。Common Modulus 1では\(e_1, e_2\)は互いに素なので、拡張ユークリッドの互除法により \[ x e_1 + y e_2 = 1 \] となる\(x, y\)が求めら…

json-tracerなるライブラリを作った

はじめに ある程度大きなプログラムを作ると、いろいろなログを書きだしたくものである。 しかしログというのは文字列ベースなものであり、かつプログラムの構造とは関係なく、一列に並んでしまうものである。 そのため、プログラムの中でどのような計算が行…

Google CTF 2017 Writeup

今回は一人で参加してました。 解いた問題 CRC crc_82_darc(data) == int(data,2) を満たすdataを作る問題。 crc_82_darcは入力データをビット列であらわしたものを\(b_{n-1} \dots b_{0}\)として(リトルエンディアン) \( f(X) = \sum^{n-1}_{i=0} b_i X^i…

PlaidCTF writeup

negainoidoというチーム名で2人で参加してました。 順位は912ptsで53位でした。チームで解いた問題は以下のとおりです。 sanity check (Misc 1) echo (Web 200) zipper (Misc 50) logarithms are hard (Misc 10) no_mo_flo (Rev 125) pykemon (Web 151) mult…

BCTF2017 writeup: babyuse

今週末はBCTFに参加してました。一人で参加してpwn一問だけ解けたので記録しておきます。 問題概要 配布されたzipファイルにはバイナリbabyuseとlibc.soがもらえます。 $ unzip -l e1b84982-14dc-45f3-a41b-fb80b4805bd1.zip Archive: e1b84982-14dc-45f3-a4…

0CTF Writeup: oneTimePad2

Japanese Version Task 解析 解法 English Version Task Analysis Solution Japanese Version Task oneTimePad1と同じように暗号化スクリプトoneTimePad2.pyとciphertxtが入ったzipファイルがもらえる。 今度は\(GF(2^{128})\)のブロック暗号システムのよう…

0CTF Writeup: oneTimePad1

Japanese Version Task 解析 解法 English Version Task Analysis Solution これは0CTFのoneTimePad1という問題のWriteupです。 Japanese Version Task zipファイルを開くと暗号化スクリプトoneTimePad.pyと暗号文ciphertextがある。 暗号化の仕組みはブロッ…

State Monadと正格性について

今回の話題は、State MonadはStrictなものを使おうという話である。 StateT s m a HaskellでState Monadを使う際、一番よく使うのは transformer packageのStateT s m aだと思う。 transformers: Concrete functor and monad transformers あるいは、そのwra…

僕の考えたさいきょうの抽象構文木データ型

あらすじ プログラミング言語処理系を作成しようとすると避けては通れないのが、構文木データ型の設計である。 言語処理系では構文解析、アルファ変換、脱糖、正規化など構文木を変換するパスがいくつか存在して、それらの構文ごとにデータ型を設計しなけれ…