トップ «前の日記(2011-01-04) 最新 次の日記(2011-01-08)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2011-01-05

_ golf場 TODO

なんか IRC で話してていくつか

  • 8 characters hello world 。8種類しか文字使えない hello を書けというもの。 goruby が h だけでいいのはいいかげんあれだし HELLO, WORLD! とかにしてやればいいか
  • edit distance がコードサイズになってないといけない cyclic な quine 。これ書けるかまだわからんからとりあえず解いてから…
  • rejudge button 。 random base な解答はちょっとアレなので、 deadline つきの新しい問題は rejudge button をつけて、それを押すと解答の check をもう一度走らせる、ってもの。 time limit が厳しい解答がかわいそうになるかもなので、 rejudge の時は time limit を増やすと良い

(05:25)

_ random seed

rejudge よりは rand seed 全部殺すのが良いんじゃないかと言われた。 そんなの無理だと思ってたんだけど、結構できそうな気もしてきた

  • rm /dev/urandom; cp /dev/zero /dev/urandom
  • personality(personality(0xffffffff) | ADDR_NO_RANDOMIZE) で address randomization は全滅するらしい
  • rdtsc は cr4.tsd というのをセットすると殺せるらしい
  • gettimeofday はフック
  • getrusage あたりが rdtsc 内部的に使ってたりしないだろうか

最後の3つは色々互いに絡んでる恐れがあるかな。

話としては、

  • 基本的にはコードが長くならなきゃいいわけなんで、言語実装が勝手に呼ぶ srand の seed として使われてるシステムコールさえ殺せば問題なし
  • rdtsc 殺しても kernel 内部で使っててかつそのシステムコールを言語処理系が seed として使ってると終わるので、やはり使ってる system call を全部殺すのが良さげ
  • 今時の gettimeofday は vsyscall とかそのへんの仕組みで userland で rdtsc 呼んでるとか無いだろうか→となると libc hook を復活させないといけなくてだるい気もする
  • 言語実装が勝手に自力で rdtsc を呼んでる…ってことはさすがに無いだろうか

あとは他に乱数源ってあったかなあ… 普通に考えると /dev/urandom とか time 系だけだと思うけど…

(11:09)

本日のツッコミ(全4件) [ツッコミを入れる]
_ Rui (2014-05-24 03:41)

getpidとか?

_ shinh (2014-05-24 03:41)

あー getpid は既に克服された問題だったので書いてなかったんですがそうですね。特定の PID 狙って投稿する人がやりやすいように、ゴルフ場は setpid なんていう素頓狂なもの用意してあったりします。

http://golf.shinh.org/setpid.html

_ herumi (2014-05-24 03:41)

golfは全くやってないので頓珍漢なことかもしれませんが,/proc/net/devのRX packetsなどはどうなんでしょう.

_ shinh (2014-05-24 03:41)

おおたしかに /proc の下とかは結構色々アレですね。 file の inode なんかもイヤな感じだったりします。ただそのへんは記述量が多くなりそうなので、ゴルフとしては特殊な問題以外では使えないかもですね…

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2011年
1月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
1.kosaki(2014-05-24 03:41) 2.shinh(2014-05-24 03:41) 3.ukzk(2014-05-24 03:41)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h