ns-2を使えるようにする
ネットワーク趣味れーたーシミュレーターのns-2を使いたいので、インストールしたときのメモ。
まず、必要な物がすべて入ったall-in-oneの圧縮ファイルをダウンロード。
nsnam - Browse /allinone/ns-allinone-2.35 at SourceForge.net
tarを展開したら、
Network Simulator 2 (ns-2) のインストール|monoのブログ
を参考に、必要なライブラリをインストール
$ sudo aptitude install libx11-dev xorg-dev
次の3ヶ所を修正
allinone-2.35/ns-2.35/linkstate/ls.h 137c137 < void eraseAll() { erase(baseMap::begin(), baseMap::end()); } --- > void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
none-2.35/ns-2.35/bin/raw2gp 24,25c24,27 < require 'getopts.pl'; < &Getopts('ags:m:ql') || usage; --- > #require 'getopts.pl'; > use Getopt::Std; > #&Getopts('ags:m:ql') || usage; > getopts('ags:m:ql') || usage;
none-2.35/ns-2.35/bin/raw2xg 37,38c37,40 < require 'getopts.pl'; < &Getopts('acefgds:m:n:qrplvt:xy') || usage; --- > #require 'getopts.pl'; > use Getopt::Std; > #&Getopts('acefgds:m:n:qrplvt:xy') || usage; > getopts('acefgds:m:n:qrplvt:xy') || usage;
このgetopts.plにはしばらく悩まされた。validateでCan't locate getopts.pl in @INCで悩んでる人はおそらくこれが原因です。
ビルド
$ cd ns-allinone-2.35 $ ./install
動作確認
$ cd ns-allinone-2.35/ns-2.35 $ ./validate
cronを使ってチャイムを鳴らす
チャイムといえば、僕が作ったフリーソフトがあるのでまずそれを紹介。
「簡易チャイム」
http://www.vector.co.jp/soft/winnt/personal/se478631.html
Windowsならこれを使ってかんたんにチャイムを鳴らせます。
Linux用を作ってなかったので、(Monoを使ったら動く可能性もありますが)LinuxではCronを使うことにしました。
今回はpulseaudioがインストールされた環境だったので、再生ソフトにはpaplayを使いました。
crontab -eでcron用のエディタを起動します。
22時ちょうどにチャイムを鳴らすには
0 22 * * * paplay --volume=32768 chime.wav
21時50分にチャイムを鳴らすには
50 21 * * * paplay --volume=32768 chime.wav
とこんな感じで末尾に書き足していくだけです。
paplayの--volumeオプションですが、最大値が65535らしいので、半分の32768を指定しました。
音声ファイルは、NHKの素材集から拾ってきたものをwavに変換して使用しました。
「効果音 学校のチャイム:素材をさがす:NHKクリエイティブ・ライブラリー」
http://www1.nhk.or.jp/creative/material/5d/D0002011518_00000.html
VLCのイコライザー設定をバックアップする
~/.config/vlc/vlcrc にある。
# Bands gain (string) equalizer-bands=3.6 2.1 0.5 0.0000000 0.0000000 1 1.7 1.9 2.9 3.1
キーボードの配列を切り替える
キーボードの配列を切り替えるregファイルです。
キーボードの配列をUS配列にして、CapsをCtrlに割り当てる
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters] "LayerDriver JPN"="kbd101.dll" "OverrideKeyboardIdentifier"="PCAT_101KEY" "OverrideKeyboardSubtype"=dword:00000002 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
元に戻す
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters] "LayerDriver JPN"="kbd106.dll" "OverrideKeyboardIdentifier"="PCAT_106KEY" "OverrideKeyboardSubtype"=dword:00000002 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=-
x86_64の逆アセンブルを読む(gcc版)
先週の土日にDEFCONに参加してました。
そのときに逆アセンブルを読む必要があったので、まとめてみました。
Cのソース
#include <stdio.h> int main() { printf("hello, world\n"); return 0; }
objdump -d -M intel helloの結果の一部
00000000004004fc <main>: 4004fc: 55 push rbp 4004fd: 48 89 e5 mov rbp,rsp 400500: bf c4 05 40 00 mov edi,0x4005c4 ;文字列のポインタをわたしてる 400505: e8 d6 fe ff ff call 4003e0 <puts@plt> 40050a: b8 00 00 00 00 mov eax,0x0 ;return 0 40050f: 5d pop rbp
変数をつかってみた
#include <stdio.h> int main() { int i=10; printf("hello, world\ni = %d", i); return 0; }
000000000040050c <main>: 40050c: 55 push rbp 40050d: 48 89 e5 mov rbp,rsp 400510: 48 83 ec 10 sub rsp,0x10 ;スタック領域を確保 400514: c7 45 fc 0a 00 00 00 mov DWORD PTR [rbp-0x4],0xa ;int a=10 40051b: 8b 45 fc mov eax,DWORD PTR [rbp-0x4] 40051e: 89 c6 mov esi,eax 400520: bf ec 05 40 00 mov edi,0x4005ec 400525: b8 00 00 00 00 mov eax,0x0 40052a: e8 b1 fe ff ff call 4003e0 <printf@plt> 40052f: b8 00 00 00 00 mov eax,0x0 ;return 0 400534: c9 leave 400535: c3 ret
関数の構造
1. ラベル
main:
2. スタックのベースポインタrbpをpush
push rbp
3. 他に使うレジスタがあればpush
push rsi ;たとえば
push rdi
4. スタックのベースポインタを現在のスタックの先頭に設定
mov rbp, rsp
5. 必要であれば、変数用領域を確保
sub rsp, 0x10
6. 変数への読み書き
mov DWORD PTR [rbp-0x4], 0xa ;変数へ書き込み
mov eax, DWORD PTR [rbp-0x4] ;変数から読み出し
7. 関数の呼び出し
mov r9, 0x6 ;第六引数
mov r8, 0x5 ;第五引数
mov rcx, 0x4 ;第四引数
mov rdx, 0x3 ;第三引数
mov rsi, 0x2 ;第二引数
mov rdi, 0x1 ;第一引数
call 000000 ;関数呼び出し
mov edx, eax ;eax=戻り値
8. 戻り値のセット
mov eax, 0x0 ;return 0
9. 呼びだし前の環境の復元
pop rdi ;基本的にはpopする
pop rsi
mov rsp, rbp ;忘れてた(13/06/19 14:10追記)
pop rbp ;popの順番に注意
もしくは
leave ;便利
10. 呼び出し元に戻る
ret
sambaを触ってみる
とりあえず、インストールから。
環境は諸事情によりdebianです。
$sudo aptitude install samba samba-* smbclient winbind
設定は
$sudo vim /etc/samba/smb.conf
を編集する。
全般設定
[global] dos charset = CP932 display charset = UTF-8 workgroup = WORKGROUP server string = %h server map to guest = Bad User obey pam restrictions = Yes pam password change = Yes passwd program = /usr/bin/passwd %u unix password sync = Yes syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 domain logons = Yes dns proxy = No wins support = Yes usershare allow guests = No panic action = /usr/share/samba/panic-action %d idmap config * : backend = tdb admin users = Administrator
homesセクションを書いておくと、ログインしたユーザーのhomeが自動的に共有される。
[homes] comment = Home Directories browseable = no path = %H/winhome read only = no create mask = 0600 directory mask = 0700 valid users = %S
設定を確認
$sudo testparm
設定を変更したら、
$sudo service samba restart
する。
$sudo smbcontrol smbd reload-config
では、設定の変更がうまく反映されないらしい。
ユーザーの追加は
$sudo pebedit -a -u username
で追加できるらしいけど、Debianに無いユーザーを入力するとエラーになる。どこか設定しないといけないのかも。
続く(?)
今日すごい大雪だったのでまとめ
外すごく積もってる twitpic.com/bv030r
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
0b10100歳のみなさん、おめでとうございます! #成人式 #成人の日
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
体育館が山小屋に見える程度には twitpic.com/bv0lqz
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
つないでみた。五思から体育館。 #雪 #uec twitpic.com/bv1e39
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
さっき twitpic.com/bv0lqz より積もった?twitpic.com/bv1j3x
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
スキー場なうって言ってもばれないレベル twitpic.com/bv1j3x
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
お休みの日でよかったね。ともいえないのか。。 #成人の日 #成人式
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
ちょっとまって、体育館横の木が雪で折れる瞬間を見てしまったw
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
トンネルを抜けなくても、そこは雪国だった。 twitpic.com/bv2e55
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
これはたのしそう!w ぜひ見に行かねば twitter.com/Ban06/status/2…
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
電気通信大学 情報基盤センター:Webカメラ cc.uec.ac.jp/webcam/
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
これ標高間違えてると思う twitpic.com/bv2mxo
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
歩いた跡 twitpic.com/bv2smo
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
謎の風格 twitpic.com/bv2sy5
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
甲州街道は渋滞 twitpic.com/bv2tc8
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
雪国ドコモ twitpic.com/bv2tmg
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
雪国交差点 twitpic.com/bv2tz6
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
バスはチェーンしてる twitpic.com/bv2ugu
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
雪の駅前 twitpic.com/bv2uth
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
成人式も大変そうね
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
ろーそん twitpic.com/bv36wl
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
木が折れてる twitpic.com/bv37na
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
この木もだ。危ない twitpic.com/bv37te
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
K-Shop twitpic.com/bv383j
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
K-shopと西食 twitpic.com/bv38ed
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
体育館前 twitpic.com/bv38qq
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
体育館五思寮側 twitpic.com/bv38xa
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
西地区の写真つないだ twitpic.com/bv3nwh
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013
今日の東地区 twitpic.com/bv4xcj
— hiro1357さん (@eserver_dip_jp) 1月 14, 2013