Brainf*ckを、直接実行可能バイナリにコンパイルした話

なんとなくカレンダーを埋めたいという衝動に駆られるので記事を書きます。 おととい書いたELFを書く話によって、僕らは事実上任意の機械語列をELFにすることができるようになりました。次は、当然任意のBrainf*ckで書かれたプログラムをコンパイルできるよ…

手で ELFを書く

学科の基礎実験でAssemblyでbrainfuckのコンパイラをかけという選択課題があります。この課題をやろうと思うと、ELFをある程度理解し、自分で生成できる必要があります。 今回、最低限の機械語を実行可能なELFフォーマットで出力できるようになるために手でE…

Circle CI + Python3 + GAEについて

Circle CI + Python3 + GAEについて 別にどうというわけでもないが、メモ。3時間くらい悩まされたため。 背景 Googleが提供するPythonで実装されたスクリプト群がPython2で動くことはあまりにも有名ですね。そもそもAppEngineのStandard Environmentにデプ…

Unix V6コードリーディングの個人的なメモ

学科ゼミとしてV6を読む会というのをやっています。ここまでのところ4回ほど開いて、順次はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)を読んでいます。とりあえずオラオラと9章(加えて14章)まで読んで来たわけで…

星空を描く ~esolang(難解プログラミング言語) writeup ~

3月末に、TSGというサークルでesolang( esoteric language ;難解プログラミング言語の略)陣取り大会というゲームが開催されました。この記事はそのwriteupです。割とポエムです。 TL;DR esolangショートコーディングは、僕がポエムを書いてしまうくらいには…

0ctf 2017

ctf

char ropできるんだけど、送りこめるデータが識字可能文字だけ、という問題。rop用にlibcが0x5555e000あたりにロードされる。まぁ、ある意味頑張ればできる問題なので、solverは結構いた。 方針は、/bin/shのアドレス(0x556bb7ec)自体は、ロード不可能な文字…

あけましておめでとうございます

あけましておめでとうございます。年賀状情報です。 描いたのはStarryというプログラミング言語です。某esolang大会のときに、@kurgm氏が解いていた言語で、これがまさに星空のようで美しく、割と個人的に気に入りました。 今年もよろしくお願いします。

今年の総括

去年もこんなことを書いていた気がするので、今年もまた。 今までも十分浅く広かったんですが、今年はいつにもまして、浅く広く色々と触りました。なので、結局何も無いという感じですかね。 なんもわからん。 以下、gistやその他を参照して今年やったかなあ…

mnemoにおける普遍的なテク

はじめに この記事は、TSG Advent Calendar 22日目として書かれました。 タイトルだけ見るとなんかすごい技を紹介するみたいな風に見えますが、そうではなく、普通にやってもらっていて分かりにくいんじゃないかなと思ったりする部分をある程度補完したい、…

gccが生成するELF付随品について探る

この記事はTSG Advent Calendarの21日目の記事として書かれたものです。 CTFやらでReversingをしていると、いつも見るframe_dummyやinit、本質ではない、的な感じでスルーをしているんですが、それなりに気になるところでもあり、少し深く見てみようかなと思…

EC2のインスタンスをウェブサーバとして S3を使ってNamecheapのDNSを関連付ける

メモ。 簡易的なflaskでのウェブサービスをデプロイしたりしたときにやったこと(後から書いているので漏れがあるかもしれない)。 使ったもの AWS EC2 AWS Route S3 Namecheap EC2 サーバー設定 とりあえず、t2.micro(なんでもいい)を作る セキュリティの…

HITCON CTF 2016 RegExpert and moRE writeup

CTF

RegExpert RegExpert 59 Teams solved. Description Do you remember "hard to say" last year? I think this one is harder to say... nc 52.69.125.71 2171 Hint None % cat regexp (?i)s.*e.*l.*e.*c.*t ^(a\g<1>?b)$ ^(?!(xx+)\1+$)xx+$ ^((.)\g<1>\2|.?…

今年の総括

もうすぐ今年も終わりらしいので、一応今年を振り返りたいなと思います。1月から2月にかけて、絶対JOI春合宿行こうな!っていう気分で、蟻本を読みつつ、競プロなどをしていました。死んでからは、競技プログラミングという分野が見えなくなりました。でし…

JOI本戦参加しました

人生どうでも飯田橋

あけましておめでとうございます

今年は昨年以上に忙しくなる一年だと思うので、頑張りたいと思います。年賀状情報です。 今年もよろしくおねがいします。目標として、昨年はここで足し算を目標としたので、今年は引き算の習得を目指して行こうと思います。

今年を振り返って

今年も凄い速度で時が過ぎ去って行きました。来年も頑張りたいと思います。

定期試験とはナップザック問題のようなもの

以下試験からの逃避文章です。定期試験とはナップザック問題のようなものだと思います。時間という有限の制限以下で、評価を最大化するためにどの勉強をするかを選ぶからそんな感じが。夏休みという時間を何一つ定期試験のために過ごしてこなかったから、あ…

Raspberry PiでL-03FでdocomoのXiを使ってネットをしてみる

かなり色々と試行したので、無駄な処理が入っている可能性があるのですが、とりあえず、やっとことをまとめてみます。一応、Linuxはdocomoのサポート外なので、以下も自己責任でお願いします(主にパケ死などに)。参考にさせてもらったのは、Qaplaの覚書・…

花火

夏を忘れないために花火です。Processing何かと役立つと思うので、ある程度使えるようにしてたい float t; float g = -0.8; float v0 = 10.0; float h = 100.0; int divide = 30; float theta = 360/divide; float colors[][] = new float[divide+1][3]; int…

iOSのアプリつくった話。とコード署名でno identities are available for signingって言われまくった話

ものはたいしたものじゃないというか、僕が欲しかったっていうだけのアプリなのですが、iOS dev program登録して何もしないのもお金がもったいなすぎるということで、アプリを投稿してみました。で、Objective-Cのメソッドなげーとか言いながら、まぁたのし…

seccon online

CTF雑魚なので、全然問題解けなかったのです。数毒のやつと、12問暗号のやつの11問までの部分点までしか解けなかった、という悲惨な結果です。えっと、初めてのCTFということで初めてのWrite upを書いてみようと思いましたが、他の人にかなり完全な答えのWri…

あけましておめでとうございます

今年は足し算が出来るようになりたいです。

xcodeでboost使うためのメモ

非常に忘れっぽいので、というか毎回ググって誰かのブログから見てくるのがめんどくさいので、ここに書いておきます例えば次のように関数を「nx^m」と書いたときのmが知りたいときってあるじゃないですか(?)。で、正規表現使いたいって思ってboostを読み…

Boost使って正規表現で名前付きキャプチャしようとした話

もともとPythonで #coding:utf-8 from __future__ import print_function import re s = "123hello" # named capture m = re.match(r"(?P<num>\d*)(?P<str>.*)", s) print("num is", m.group("num")) print("str is", m.group("str")) というように、正規表現を使って</str></num>…

Pythonの子プロセスIO

すっごい見よう見まねですが。subprocessモジュール使って子プロセスのIOしてます ipc_test_parent.py #coding:utf-8 from subprocess import * p = Popen("python ipc_test_child.py", shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True…

L-systemとな

http://www14.ocn.ne.jp/~kk62526/Lsys/ なんかすごいやつっぽい。遺伝的アルゴリズムでグラフの文法エンコードが使えるとか使えないとか def lsystem(a): if a==0: return "F" str = lsystem(a-1) result=[] for x in str: if x=="F": result.append("F-F++…

Traveling Salesman Problem 2

昨日の巡回セールスマン問題何かがおかしいと思ってたら、案の定Processing側のコードがおかしかったわけです。10地点(Simulated Annealing + Genetic Algorithm) 117世代0.00313452861531 が最大適応度 50地点(Simulated Annealing + Genetic Algorithm) ま…

Traveling Salesman Problem 1

巡回セールスマン問題を遺伝的アルゴリズムを使って計算してみています。ちょっとまだ、きれいな解が得られてないので、途中経過だけ残しておこうかと。【適応度変化のグラフ】 なんかグラフ的には、厳しい感じに見えますが、絵にしてみると【巡回の図】 な…

mac os mountain lionにXamarin入れるのに苦労した話

C#使うことになって、それまで「C#?ふーん」くらいしか気にしてなかったのですが、ググってみるとXamarinっていうのが使えるってことらしいんですね。 http://xamarin.com/download こっからインストールできるわけですが、インストールすると、 こんな感じ…

遺伝的アルゴリズムで遊ぶ 2

突然変異つけないと話にならないので、つけました。ようやくスタートライン一歩手前ですかね # coding: utf-8 import random import copy generation = [] population_size = 10 chrom_size = 10 mutation_rate = 1 def initialize(): global population_siz…