SICP 4.1.3-5

4.11 教科書の実装ではフレームは ((var1 var2 var3) (val1 val2 val3)) となっているのを ((var1 val1) (var2 val2) (var3 val3)) と実装し直す。 #lang racket ;変更なし (define (enclosing-environment env) (cdr env)) (define (first-frame env) (car …

SICP 4.1.1-2

4.1 もともとの list-of-values (define (list-of-values exps env) (if (no-operands? exps) '() (cons (eval (first-operand exps) env) (list-of-values (rest-operands exps) env)))) cons の引数をあらかじめ評価してやれば良いので 左から右 (define (…

SICP 3.5.4 - 3.5.5

3.77 #lang racket (define (integral delayed-integrand initial-value dt) (let ((integrand (froce delayed-integrand))) (cons-stream initial-value (if (stream-null? integrand) the-empty-stream (integral (stream-cdr integrand) (+ (* dt (stream…

SICP 3.5.3

3.63 もとのsqrt-stream (define (sqrt-stream x) (define guesses (cons-stream 1.0 (stream-map (lambda (guess) (sqrt-improve guess x)) guesses))) guesses) Louisのsqrt-stream (define (sqrt-stream x) (cons-stream 1.0 (stream-map (lambda (guess)…

SICP 3.5.1-3.5.2

3.50 脚注12 12 Schemeが標準的に用意しているmap手続きは, ここに述べたものより一般的である. より一般的 mapは, n引数の手続きとn個のリストをとり, 手続きをリストのすべての第一要素に作用させ, リストのすべての第二要素に作用させ, 等々させて, 結果…

SICP 3.4.2

3.38 3.38a Peter => Paul => Mary 45 Peter => Mary => Paul 35 Paul => Peter => Mary 45 Paul => Mary => Peter 50 Mary => Peter => Paul 40 Mary => Paul => Peter 40 3.38b 以下のパターンが考えられる 並列実行により、いずれか1人の残高反映が失われ…

SICP 3.3.5

3.33 avalagerは以下の2パターンが考えられる ;avalager (define (avalager a b c) (let ((u (make-connector)) (v (make-connector))) (adder a b u) (multiplier u v c) (constant 0.5 v) 'ok)) ;avalager (define (avalager a b c) (let ((u (make-connec…

SICP 3.3.4

3.28 (define (or-gate a1 a2 output) (define (or-action-procedure) (let ((new-value (logical-or (get-signal a1) (get-signal a2)))) (after-delay or-gate-delay (lambda () (set-signal! output new-value))))) (add-action! a1 or-action-procedure)…

SICP 3.2 3.3

3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 #lang racket ; to use set-car! set-cdr! (require r5rs) (define (count-pairs lst) (let ((counted '())) (define (counter x) (if (or (not (pair? x)) (memq x counted)) 0 (begin (set! counted (cons x …

SICP 3.1

3.1 #lang racket (define (make-accumulator sum) (lambda (x) (set! sum (+ sum x)) sum)) (define A (make-accumulator 5)) ;test (A 10) (A 10) 3.2 #lang racket (define (make-monitored function) (let ((call-count 0)) (lambda (arg) (cond ((eq? a…

SICP 2.5

全部解けてから投稿しようと思ったが、後半が辛すぎた。 done is better than perfect ってことでとりあえずうp 2.77 パッケージ外へのインタフェースとして、 本文の complex-package では - add - sub - mul - div - make-from-real-imag - make-from-mag…

SICP 演習問題 2.4

2.73 a else節では、 operator 抽出した演算子に対応した演算処理関数を呼び出し、 operands で抽出した式に適用している。 number, valiableについては、 operator で演算子を抽出できないので吸収できない。 b c get, put が標準関数にないので、3.3.3 の…

SICP 演習問題 2.3

2.53 (list 'a 'b 'c) ;=> '(a b c) (list (list 'george)) ;=> '((george)) (cdr '((x1 x2) (y1 y2))) ;=> '((y1 y2)) (cadr '((x1 x2) (y1 y2))) ;=> '(y1 y2) (pair? (car '(a short list))) ;=> #f (memq 'red '((red shoes) (blue socks))) ;=> #f (mem…

Xperia Z5 Compact タッチ不具合

まずは、何も言わず以下の動画を見てくれ。 Xperia Z5 Compact タッチ不具合 動画にあるとおり、昨日機種変更したXperia Z5 Compactにタッチパネルの不具合がある。 どうも、以下の不具合にぶつかった模様。 Xperia Z5 Compactのタッチパネル不具合、原因は…

SICP 演習問題 2.2

2.17 #lang Racket (define (last-pair items) (if (null? (cdr items)) (car items) (last-pair (cdr items)))) 2.18 繰り返し (define (reverse items) (define (iter items result) (if (null? items) result (iter (cdr items) (cons (car items) result…

SICP 演習問題 2.1

2.1 #lang racket (define (make-rat n d) (let ((g (gcd n d))) (cond ((< (* n d) 0) (cons (* -1 (abs (/ n g))) (abs (/ d g)))) (else (cons (abs(/ n g)) (abs(/ d g))))))) (define (add-rat x y) (make-rat (+ (* (numer x) (denom y)) (* (numer y)…

SICP 演習問題 1.3

Exercise 1.29 ;h = (b-a)/n ;y_k=func(a+kh) ;sum = (y_0 + 4y_1 + 2y_2 + 4y_3 + ... + y_n) ; #lang Racket (define (simpthon a b func n) (* (/ (h a b n) 3) (sum-simpthon a b func 0 n))) (define (sum-simpthon a b func k n) (if (> k n) 0 (+ (co…

SICP 演習問題 1.2

Exercise 1.9 (define (+ a b) (if (= a 0) b (inc (+ (dec a) b)))) (+ 4 5) (inc (+ 3 5)) (inc (inc (+ 2 5))) (inc (inc (inc (+ 1 5)))) (inc (inc (inc (inc (+ 0 5))))) (inc (inc (inc (inc 5)))) (inc (inc (inc 6)) (inc (inc 7) (inc 8) 9 再帰 (…

SICP 演習問題 1.1

実はちょっと前からやっていたんだけど、長続きしないと恥ずかしいからアップするのを控えていた。 それなりに続いているし、このまま止まらないようにアップして自分を追い詰めることにした。 とりあえず1章から順番に。。。 Exercise 1.1 ​ 10 # -> 10 ​ (…

Katagaitai CTF勉強会 関東med (Crypt 理論編?)

先週末に行ってきた勉強会。とてもタメになった。 が、なかなか本腰いれて取り組めないので、少しずつアップすることにした。 今回は午前中のcryptについて、理論面を整理。 実装は、きっとこのあとやる・・・はず。 問題 CSAW CTF 2014 – Crypto300 – feal.…

SECCON 2015 online

前日が同期の結婚式で多忙だったので抜け殻状態でトライ。 二日酔いの寝不足で途中寝落ちたりしたので、実質3時間程度しか戦っていない。 結果、1問 300点しか取れませんでした。 やっぱ片手間じゃ太刀打ちできませんよねー。 # network 100 Entry form ## …

sqlite3のデータ型について

PC

いくつか驚いたことがあったので忘れないようにメモ。 結論 create文で存在しないデータ型を指定してもエラーにならない integer型のカラムに数字に出来そうにない文字列(e.g. sqlite)をぶち込んでもエラーにならない(text型で格納される) データ型は「そ…

SECCON2014 オンライン予選(en) QR300 SECCON Wars: The Flag Awakens

PC

スターウォーズのオープニングみたいなムービー。ただし、テロップの最後にQRコードっぽいのが見える。 そこで、フレームをJPGに切り出し ↓ 必要箇所だけトリミング ↓ つなげる ↓ 読み込む ↓ フラグ!ちなみにトリミングは IrfanViewを利用。 結合もフリーソ…

SECCON2014 オンライン予選(en) web300 Bleeding "Heartbleed" Test Web

PC

HeartBleedの脆弱性を持つサイトをテストする画面。 とりあえず、HeartBleedの脆弱性を持つVMを用意する。実際実行してみたところ、特にリクエストにフラグ等はない。 (リクエストのパディングにフラグ埋め込むのだろうと思っていたので調子はずれ)なんど…

SECCON2014 オンライン予選(en) nw300 Get from curious "FTP" server

PC

FTPサーバ。 でもftpコマンドでうまくいかず。なんとなく普通の挙動はしてない気がしたのでTelnetで接続。 telnet ftpsv.quals.seccon.jp 21もちろん裏ではwiresharkログインはanonymous とりあえず、普通使えるであろう LIST NIST ls が使えない。どうすっ…

SECCON2014 オンライン予選(en) nw200 Version2

PC

srv h2o.pwn.seccon.jp.DNSのSRVレコードだろうと目星をつけるが、なんのサービスなのかわからず悩む。そこでh2oでググったら某海外ゲームが出てきた。でも古いしバージョン2も出る気配はないので除外。ここでチームメイトに もうすぐ出るバージョン2とH2O…

SECCON2014 オンライン予選(en) nw100 GET the Key

PC

定番のpcap解読。 今回はHTTP BASIC認証。 wiresharkなら勝手にAuthenticationヘッダをデコードしてくれるので瞬殺。

SECCONを専門じゃない人に紹介してみる

ちょっと気分転換もかねて、難しいことをわかりやすく?話す練習。 SECCONとは きっとSecurytyContestの略。ようはハッキングからみんなを守る人材を発掘するべく、競技会をやりましょう。っていう催しです。 総務省後援で、国内のいろんな企業もスポーンサ…

SECCON 2013 Final WriteUP(2.kaku and hanoi.tower)

PC

できたことより出来なかった事のほうが多いけれど。。。 2.taku つーてんかく。 問題把握まで 問題サーバ上で動いているプログラムの実行ファイルとソースコード、そして設定ファイルが渡される。正直、最初何をすればよいのかわからなかった。 とりあえずソ…

2.kaku 追証

PC

stage1突破。msfencode -e x86/alpha_mixed -b '\x00' -i ./lscode.bin -t c BUfferRegister=EAX でシェルコードの変換ができた。ただし、 BUfferRegister=EAX に至る道筋がわからんのでまだ調査継続。