code

ニャルラトホテプ言語が難しすぎるので中間言語から変換するものを作った。

このニャルラトホテプ言語 GitHub - masarakki/nyaruko_lang: いつもニコニコあなたの隣に這いよる混沌ニャルラトホテプ言語ですっ この言語かけそうもないので、中間言語?のBrainFuckで書くと変換できるようにした。 でもBrainFuckも書けません。 bf2nyaru…

ログをたくさん残すクローラ

いつの間にか、hatenaでソースが見やすくなっていた。 #!/usr/bin/perl use AnyEvent::HTTP; while(1){ my $c=AnyEvent->condvar; for (0..9999){ $c->begin;http_get($ARGV[0],sub{$c->end;});} $c->recv;}

ID抽出とカウント

1日分の.datを読み込ませて cat hoge.dat|perl idcount.pl|sort|uniq|wc #!/usr/bin/perlwhile(){ if ($_=~/ ID:([\w\/\+]+)/){print "ID:$1\n";} }

sshでリモートバックアップ

パスワードなしのdsaで認証を通してやる必要があります。 ssh_baclup.pl target.list #!/usr/bin/perl $SERVER='hogehoge@192.168.1.2'; main(); exit(); sub main{ my @lists=read_target($ARGV[0]); for(@lists){ my ($target,$savename)=split(/,/,$_,2);…

code memo

cat hoge7.txt|perl -e 'while(){$_=~/\d{7}/;print $&,"\n";}'謝肉祭が消えた。

utf16のコード表を作ったときのプログラム

テスト用に作成したのでメモ。 use Encode; print_utf16_table();sub print_utf16_table{ for my $upper(0..4095){ my $tmp=sprintf("%04X",$upper)."0 "; Encode::from_to($tmp,'ascii','UTF16-BE'); print $tmp; for my $lower (0..16){ my $code=pack('n'…

FizzBuzz

うちの会社でも、コードサンプルの提出と評価が入社試験の一部になっている。 普通に募集してもだめなのはそれが理由です。どうしてプログラマに・・・プログラムが書けないのか? Fizz-Buzz問題とは - はてなキーワード http://d.hatena.ne.jp/yoosaki/20070…

perlのチェック

上から順番に弱・中・強 perl -cw test.pl perl -cw -Mstrict test.pl perl -MO=Lint,All test.pl

perlで最大表現できる整数

999999999999999 perl -e "print 999999999999998+1,999999999999999+1" これ以上は浮動小数点演算。 2^25

見るだけだったGUIで

表示するだけだったら、定番のProcessWalkerでhttp://www.vector.co.jp/soft/winnt/util/se221254.html結果はGUIです。 Idle Process 0 N/A 16,384 0 1070:43:24.953 N/A 2 0 N/A System 8 NT AUTHORITY\SYSTEM 28,672 28,672 7:39:41.328 N/A 43 423 N/A LS…

tasklist.exe

XPではtasklist.exeで出てくる内容と比較してみよう タスクリスト詳細表示 $ tasklist /V|headイメージ名 PID セッション名 セッション# メモリ使用量 状態 ユーザー名 CPU 時間 ウィンドウ タイトル ========================= ====== ================ ===…

Cygwinのps

Windowsでpsコマンドを利用する場合は普通のUNIX系のpsとはオプションが異なる ps auwwxとかしてもまともに出てこないので。 ps -W これが正解。結果は以下のようなかんじ $ ps -W |head PID PPID PGID WINPID TTY UID STIME COMMAND 4 0 0 4 ? 0 04:24:48 *…

日付表示

よく使うのでメモ #!/usr/bin/perl{ my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time()); $mon++;$year+=1900; print "$year/$mon/$mday $hour:$min:$sec\n"; }

今日出来なかったコード

Windows等の64bitタイムスタンプを 年月表示で表示する。64bit timestampのLinuxでの取得方法。

ちょっとブルートフォース

#!/usr/bin/perluse Digest::MD5 qw(md5 md5_hex md5_base64);; use Digest::SHA1 qw(sha1 sha1_hex sha1_base64);;$H1="5A95ACEBD94B20575779986212690D69"; $H2="6136F090C1EF42DBC7B34B12A83A04F19692BB29";$H1=pack("H*",$H1); $H2=pack("H*",$H2);for(0…

URIデコード

#!/usr/bin/perlwhile(){ $_ =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg; print $_; }

16進表記のIPアドレスとポートを数字に変える

#!/usr/bin/perl # HEX2IPaddrprint unpack("C",pack("H*",substr($ARGV[0],0,2))),"."; print unpack("C",pack("H*",substr($ARGV[0],2,2))),"."; print unpack("C",pack("H*",substr($ARGV[0],4,2))),"."; print unpack("C",pack("H*",substr($ARGV[0],6,2…

コード密度

ソースコードが以下に黒いかを判別する方法を バイト数/行数として計算した。 今日書いたプログラムのコードは $ wc /tmp/hoge.pl 32 79 1030 /tmp/hoge.plだったので密度は 32.1875 byte/line濃い目のコードだと思う。

ファイルシステム視覚化

http://xcruiser.sourceforge.net/ こっちはファイルシステム

コード視覚化

http://pcweb.mycom.co.jp/photo/articles/2005/06/29/fsecure/images/004l.jpgたぶん、APIをどのようにとかで視覚化しているのだろう。

プロトコルデコーダ

仕様が公開されていないプロトコルのデコード.pmを作った。 意外と簡単だった。

つかえないと困るものがつかえなくなる

ある危険なコードを書いたのだが、強力すぎで 掲載できません。AD2005でもあったら発表してもいいけど。

Base64をデコードしたかった。

某URLに怪しいCGIのパラメータがBase64ぽかったので、デコードしてみた。 perl -e 'use MIME::Base64;$e='ここにBase64文字列';print decode_base64($e),"\n";'

へぇ

/. より <script> alert(document.cookie) </script--> ↓ alert(document.cookie)

syslog

リモートでsyslogを飛ばすテスト。 本当はcで書いたんだけど。 これでもOKだと思う。 echo "panic: kernel panic reboot now"|nc -u hoge 514