self-hosting可能なmincamlコンパイラという夢(とその進捗)

この記事は、 adventar.org の5日目の記事として書かれました。昨日はmoratorium08さんの moraprogramming.hateblo.jp でした。コンパイラの穴をついたexploit、今後こういうジャンルも増えるんでしょうか。期待ですね。 本題 8月にセキュリティキャンプに参…

駒場祭CTF3日目の裏話

この記事は、 adventar.org の17日目の記事として書かれました。 昨日の記事は、fiordさんの`segmentation fault` 概要 tsg.ne.jp の3日めでやっていた CTF (https://ctf-day3.tsg.ne.jp) の作問をやったのでその話をします。 このCTF、未だに登録して参加可…

独断と偏見による根津/本郷飯事情

この記事は、 adventar.org の5日目の記事として書かれました。昨日の記事は、るんおじさんの「トポロジー」でした。集合と位相、懐かしいですね。IS17erのsatosです。 概要 地下で生活する際の食事について、キャンパス内の学食や購買は基本ですが、それだ…

AtCoderに登録したら解くべき精選過去問 10問のうち3問をUnlambda で解いてみた(またはTSGコードゴルフ大会の宣伝)

宣伝 4/30に、TSG主催の第四回コードゴルフ大会 tsg.connpass.com が開かれます。第一~第三回まではサークル内メンバーでの対抗戦でしたが、今回は(多分新歓もかねて)東大生ならだれでも参加できるようになりました!esolangの腕に覚えのある方、esolang沼…

CODE BLUE CTF 2017 numonly のwriteup

この記事は、TSG Advent Calendar 2017 - Adventar の7日目の記事として書かれました。昨日はmoratorium08さんの moraprogramming.hateblo.jp でした。このあいだ CBCTF であったnumonlyのwriteupです。 問題概要 int check(char* s,int ls){ for(int i=0;i

ICPC2017国内予選参加記

チーム IS17erのえる氏となたがわ氏と一緒にチームTBDとして出ました。 (わりと急増チームで、チーム名は to be determined の略) (1年の時はチームtekitoで出てそれなりにいい順位だったので、 チーム名は雑に決めた方がいい成績がとれるというジンクスがあ…

TAPLを読む会(8~12章)

8章 型付け関係 NBに対して型をつけてみる。 型付け関係の逆転(逆転補題)(生成補題) 項を型付けるためのアルゴリズムを与える。(部分型とかが入ってくるとこれが大変になる…かな?) 進行性 項が正しく型付けられているなら、正規形->値(標準形)が成り立つ。 …

TAPLを読む会(~7章)

2章 数学的準備 用語の定義、もしくは集合とか関係とか列とかについて。二項関係について慣れていれば大丈夫そう。 3章 型無し算術式 boolっぽいやつとnatっぽいやつだけからなる言語を例にとって、今後の概念について説明する。 3.1 対象言語とかメタ言語と…

esolangを書く、の2

この記事は、TSG Advent Calendar 2016 - Adventar の14日目のために公開されました。先日のやつ esolangを書く - 忖度 の続きです。今回はどちらも素手で書くのが困難な言語なので、pythonでソースコードを出力させます。 先にネタバレしておくと、WhiteSpa…

SECCON 2016 online のwriteup

チームTSGとして、TSGメンバーの人々と集まって例のごとく参加していました。2600点で28位でした。 自分が主に解いた問題のwriteupとかを載せます。 12時間かけてjmperを解いて、9時間かけてchatを解いて、終了直前にropsynthを通した感じです。 jmper 問題…

Reversingとかpwnとかを解くときのメモ(かきかけ)

この記事はTSG Advent Calendar 2016 - AdventarとIS17er Advent Calendar 2016 - Adventarの2日目の記事として書かれたわけではなかったのですが、記事がないので埋めなきゃいけないのと、多分このままだと書きかけのままはてなの肥やしになってしまうので…

esolangを書く

この記事はTSG Advent Calendar 2016 - AdventarとIS17er Advent Calendar 2016 - Adventarの1日目の記事として書かれました。 どちらもまだわりとすっかすかですが完走できるんでしょうか....先日のTSGのハッカソンでesolang大会が突発的に発生したので、そ…

HITCON CTF 2016 Quals の Writeup

TSGの面々(cookies,dai,hakatashi,moratorium,satos,yamaguchi)で参加してました。(土曜は各々の自宅で、日曜は集まって1徹夜で) 1550点で38位でした。 自分が関わった問題について Handcrafted pyc pythonのバイトコードが与えられるので、デコンパイルして…

csaw ctf 2016 quals のwriteup

CSAW 2016 にTSGの面々(dai,moratorium08,satos)で参加してました。 14問解いて1226ptで126位でした。 自分が解いたり関わったりしたやつについてのWriteupっぽいものです。 The Rock 64bitのELF。stripped。 C++で書かれたやつだったので、objdumpをデマン…

csaw ctf 2016 qualsのTutorialのwriteup

Tutorial (pwn 200) 検分 strippedでないx86_64バイナリ。libcももらえる。 NXあり、カナリーあり、PIEなし。挙動は大雑把に、 void priv(){ /* ルートディレクトリを/home/tutorialにしたり、 tutorialのuid,gidに変更したりする。 */ } func1(int fd){ voi…

第x回プロコン分科会(seg木)

seg木 このへんから高速化とかそういう技術が必要になってきます logNは定数。(要出典) 一般的なの RMQ。ある区間内の最大(最小)値、一か所の変更ができる。 int N; int seg[400005]; void init(){ N=1; while(N<=n)N*=2; rep(i,N)seg[i+N]=-inf; rep(i,n)se…

AOJ 1601 Short PhraseをShort Codingする

AOJ 1601 Short PhraseのShort Coding - cookies.txt .scr cookiesくんがショートコーディングをしていたのでそれに対抗してみる。C++のやつ。206byte #include<bits/stdc++.h> main(){ for(char s[50],i,j,p,q;p=atoi(gets(s));printf("%d\n",i)){ for(i=0;i<p;s[i++]=strlen(gets(s+i))); for(i=j=0;j<7;) for(p=i++,j=q=1;q>0;) for(q=j++></p;s[i++]=strlen(gets(s+i)));></bits/stdc++.h>…

機械学習分科会、第八章の四,グラフィカルモデルによる推論

要約 木DPをすればよいです。以下では、各変数(ノード)はK種類の離散状態をとるものとし、ノード(変数)はN個あるものとします。 あと、以下のコードは、pythonっぽい疑似コードもどきです。 ある変数xが状態aを取る確率p(x=a)を求める モデルが一本鎖のとき …

機械学習分科会、第六章、カーネル法、前編。

おわび ガウス過程のところの話が分からなかったのでその手前までです。ベイズファンのみなさんすみません。以下、6.40のとこのコードです。なんか適当にいじって遊んだってください。 #coding:utf-8 import random import math import numpy as np print "i…

第Ⅲ回プロコン分科会(木、グラフについてその1)

森、木、グラフ、有向無向、頂点、辺、重み、(非)連結、(入|出)次数、隣接、パス、閉路、多重辺、自己辺、橋、関節点、根、親、子、DAG、なもり木、とか用語についての解説はその場でします。(図を書くのがめんどい)Online Programming Lesson(グラフの場合…

第弐回プロコン分科会(動的計画法(DP)のはなし)

その前に マラソンマッチが今朝方から始まりましたね。 TopCoder その他(競プロのこつシリーズ) テンプレート(repとか)を作ろう メモリを多めにとったり番兵を活用したりしてコードを書きやすくする 人のコードを見ると発見があってよい 動的計画法その前に …

第一回プロコン分科会

プロコンとは プログラミング力を競うコンテストのこと。TopCoder部のカレンダー - TopCoder部とかに予定が載っていたりする。 たいてい、インターネットや本を大会中にばんばん使用してもよい。 競技プログラミング アルゴリズム力を競う。正しく、ある程度…

volgactf-qual-2016のwriteupのwriteupとか

先日あった,volgactf-qual-2016に参加したのでそのwriteupです。 解けたの REV::broken elfファイルが与えられるので解析する問題。 複数スレッドを立ち上げていて、ふつうに実行すると、30秒ほどして "The processing has taken too long, terminating the …

Internetwache CTF 2016 の writeup

2/20~2/22にあったInternetwache CTF 2016にTSGの有志で参加した際に自分の関わった問題のWriteUp。 感想 わりと初心者向けらしく、全完したチームがたくさんあった。 たまにエスパー問が混じっていたのでそのあたりは辛かった。 (自分が関わったやつでは、c…

T-Rex Player (Google Chromeの隠しゲームを自動でやるやつ) を作った話

この記事は、TSG Advent Calendar 2015の19日目です。16日目は lip_of_cygnus さんの 任意の数字を出現させる話でした。今回は、先月の駒場祭のTSGの展示で僕が展示した 「T-Rex Player」について書こうかと思います。 紹介 まずはこちらをご覧ください。T-R…

第*回超絶技巧分科会(難解プログラミング言語)

Brainf*ck esolangとしてはわりかし分かりやすい言語です。 ひとつの左右に無限に長いメモリと、その上を動くひとつのポインタからできています。 命令は8つあり、C言語風に表すと、 + ・・・memory[index] += 1; - ・・・memory[index] -= 1; > ・・・index…

第二回超絶技巧分科会。

Quineを楽して書きたい。Cなどの場合、自分で書く->コピペをするのはつらい。メタプログラミングしましょう。P124参照。 s = <<'HERE' #include<stdio.h> char s[1024]=@; int main(void){ char *p,*q; for(p=s;*p;p++){ if(*p!=64)putchar(*p); else{ putchar(123); </stdio.h>…

第一回超絶技巧分科会

Quineを(とりあえず)書く eval s="print 'eval s='+s.inspect" $ cat quine.rb eval s="print 'eval s='+s.inspect" $ ruby quine.rb eval s="print 'eval s='+s.inspect"「Quine」・・「プログラムのソースコード」と「そのプログラムを実行した結果出力」…

MMACTF 1st 2015 問題 i のwriteup

i言語という独自言語でquineを書け、という問題でした。 変数を持つ場所としてスタックのみが使えるので、その上でどうにかしなければいけません。.icnファイルが実行できず、手元にいつも使っているパソコンがなかったので、excelのvbaでインタプリタを書く…