ネットワークコマンドと結果
まずping について
Reply from
pingの応答ごおこなわれており!
ネットワークか正常に動作している状態
Destination net unReachable
宛先IPアドレスまでの経路が存在しない
Unknown host
宛先IPアドレス情報が存在しない
Request tkmdd out
ICMPのメッセージ送信できたけど
返答がかえってこない
次に ifconfig
inet addr
現在設定されているIPアドレス
MASK
現在指定されているネットマスク
そして、route
Destination
併記されているGateway に処理を送るネットワークアドレス
Genmask
Destinationのネットマスクで
DestinationとNetmaskを組み合わせて
Gatewayへ処理を送るネットワークを指定
Gateway
DestinationとNetmaskで指定されたネットワークへの処理は
このアドレスの機器により
外部ネットワークに転送される
Flags
この行に
指定されたルールの動作状況を示していて
Uが指定されていないと動作していない
Iface
この行に指定されたルールは
この名前で認識されているネットワーク機器で処理される
カテゴリー: 未分類
ネットワークの基礎知識
ネットワークの基礎知識
IPアドレス
32bitの数値
10進数表示するときには、一般的に8bitごとに区切るとめ
最大値は255にねる
ネットマスク
32bitのビット列
IPアドレスと比較してネットマスクご
1となっている範囲をネットワーク部
0となっている範囲をアドレス部として使う
ローカルネットワーク
利用者が勝手に作成できるネットワーク
自由にできるアドレスとして
10.0.0.0/8
192.168.0.0/16
172.16.0.0/20
などがある
ワイドエリアネットワーク
ローカルネットワークの外のネットワーク
ブロードバンド回線などの公衆回線はこちらになる
FHSで定められたディレクトリと、内容のメモ
FHSで定められたディレクトリと、内容のメモ
/bin
主要コマンド
/boot
起動関連ファイル
/dev
デバイスファイル
/etc
システム設定ファイル
/lib
共有ライブラリー
/mnt
ファイルシステムの一時マウントポイント
/opt
オプションソフトのインストール用ディレクトリ
/proc
kernel process状態の情報を示す仮想ファイルシステム
/sbin
主要なシステム管理コマンド
/srv
システムによって提供されたサイト固有データ
/tmp
一時ファイル置き場
/usr
ユーザー共有ファイル
/usr/bin
基本的ではないコマンド
/usr/include
インクルードファイル
/usr/lib
共有ライブラリー
/usr/local
ユーザーが追加するアプリの置き場
/usr/sbin
基本的ではないシステム管理コマンド
/usr/share
アーキテクチャに依存しない共有データ
/var
ログなど
/var/cache
アプリのキャッシュデータ
/var/lib
アプリ、あるいはシステムの状態情報
/var/lock
ロックファイル
/var/log
ログファイル
/var/opt
/optの可変データ
/var/run
プロセスIDのファイルなど
実行時のシステム情報
/var/spool
アプリのスプールデータ
/var/tmp
一時ファイル置き場
OSをCUIで起動するには
OSをCUIで起動するには
LinuxをCUI環境、つまり仮想コンソールで起動するには
ランレベルを変更する
このメリットは
Linuxをアップグレードしたことにより
ビデオドライバーに不具合が生じ
GUIが起動しなくなったとき
お手上げにならなくてすむこと
以下Ubuntuのランレベル
0シャットダウン
1
rootのみのシングルユーザーモード
2~5
GUIのマルチユーザーモード
6
再起動
また、CentOSでは異なり
2
ネットワークなしのマルチユーザーモード
3
テキストログインのマルチユーザーモード
5
GUIのマルチユーザーモード
というように、少し細かくなる
LinuxのGUIから仮想コンソールへの切り替え
LinuxのGUIから仮想コンソールへの切り替え
Linuxの
GUI環境利用時にフリーズしたときの対策
Ctrl + Alt +F2
で仮想コンソールに切り替わる
切り替わると、黒い背景で
login:
となるので
ユーザー名
パスワード
を入力してログイン
そして、
top
freeなどのコマンドで、
リソース消費が激しいプロセスを把握
場合によっては
kill
で終了させる
仮想コンソールの場合
端末と同じで、バックグラウンドで稼働していない場合
次のコマンドが実行できない
そんなときには
Ctrl+Alt+F3
とすれば、新しく仮想コンソールが使えるようになる
Tab+Altでアプリの切り替えができるように
仮想コンソールも
Alt+F2で仮想コンソールのtty2
Alt+F3で仮想コンソールのtty3
というように切り替えできる
仮想コンソールから、GUI環境へ戻すには
Ubuntuなら Alt+F7
CentOSなら Alt+F1
で戻る
ファイルの解析
ファイルの解析
http://www.byakuya-shobo.co.jp/hj/data/HJ2013_03_Q1.zip
から圧縮ファイルをダウンロード
Unzip HJ2013_03_Q1.zip
で解凍し
bin200
をだす
この拡張子もないファイルを解析していく
VMイメージのBT5R3 は
USキーボードなので
USキーボードと日本のキーボードの違い
http://www.nagasaki-gaigo.ac.jp/toguchi/pc/multilingual/keyboard_us_jis.htm
を見ながら行う
一番わかりにくいのは
全角、半角の切り替えキーが
shift + 全角半角 で ~
全角半角は` というバッククオートになるということ
USキーボード形式は全角半角はたしかに使うことがないと思う
だって英語圏だし
今回のこの問題に必要なスキルは
バイナリ解析系
まず、どんなファイルかを調べるため
file コマンドで調べる
file bin200
すると
bin200: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
となる
この結果から読み取れるのは
ELF 32-bit LSB executable, Intel 80386,
ということなので
IA32アーキテクチャの32bit Linux 用ELFファイルであること
このファイルのバイナリを静的解析して処理のあたりをみつける
使うのは
IDA Pro free 5.0
とはいっても使い方がわからないので検索
http://ameblo.jp/a-f-s-g/entry-11476490443.html
によれば vim でもバイナリエディタ代わりになるとのこと
vim bin200
でファイルを開いて
:%! xxd でバイナリが表示
使い方いまいちわからないので後にして今後の参考に
backtrack ida
で検索したら
http://www.byakuya-shobo.co.jp/hj/moh2/bt5_tools_list.html#p6
に
Reverse Engineering のところに
install ida-pro free
と有ったので
仮想マシンのBT5R3 で
startx で GUI画面にして
Applications > BackTrack > Reverse Engineering > ida-pro free
で起動
ただ、時間がなかったので
途中でキャンセルしたらインストールできなくなったため
次回。新しく仮想マシンを作りなおして実験
今回は
gdb という動的解析用デバッガーで
スタックとプログラムカウンター(EIPレジスター)
をいじくり
ptrace を経由せずに直接 GeneratePassword を実行する
まず
apt-get install gdb
でインストールして
gdb ./bin200 を行う
この時点ではまだ実行されていないので
break main
でブレークポイントの設置
しかし、次の gdbの使い方がわからないので
とりあえず
これの使い方を調べるところからになりそう
PHPのセッションについて
PHPのセッションについて
セッションを使ってみよう
http://dotinstall.com/lessons/basic_php_advanced/6907
を参考に
セッションについて学習
cookieと似て
複数ページで使い回しができる仕組み
cookieは、ブラウザーにデータを保存する
sessionは、サーバー側にデータを保存する
セッションを使うには、まず
session_start();
とする
そして、セッションに値をセットするには
$_SESSION[‘userName’]=”taguchi”;
というように
$_SESSION[‘セッション変数’]=”セッションの値”
とする
このままブラウザーでよみこんでも
何も表示はされないけど
echo $_SESSION[‘userName’];
すれば
値として設定した
taguchi
が表示される
また、設定したセッションを削除するには
unset()
を使う
今回なら
unset($_SESSION[‘userName’]);
というように
unset($_SESSION[‘セッション変数’])
とすることで
設定したセッションの値を削除できる
cookieと似ているけど
sessionのほうが安全性は高い
cookieは改ざんの可能性や
中身が見えるなど
セキュリティー関連の問題があるため
sessionのほうがセキュリティーは高くなる
UNIXタイムの取得
UNIXタイムの取得
#25 日付/時間関数を使ってみよう (1)
http://dotinstall.com/lessons/basic_php_beginner/6825
を参考に
UNIXタイムの取得について学習
UNIXタイムからの経過時間をみるには
var_dump(time());
でみれる
また、mktime()で指定した時間のUNIXタイムで表示できる
引数は
時間、分、秒、月、日、年
の順番
例えば
2013/6/17 7:55:00
なら
mktime(7,55,0,6,17,2013)
となる
strtotime()
これは、日付の文字列からタイムスタンプを作成する
strtotime(“2013/6/17 7:55:00”)
とすると
UNIXタイムが表示される
このstrtotime()は使い勝手がよく
strtotime(“last Sunday”)
とすれば先週の日曜日のUNIXタイムを表示し
strtotime(“+ 2day”)
とすれば、2日後のUNIXタイムを表示できる
—
から送られてきた高速メモ帳
RelativeLayoutのレイアウト属性
RelativeLayoutのレイアウト属性
layout_centerInParent
true/falseを指定
trueなれ中心へ配置
layout_centerHorizontal
trueなら横中心で配置
layout_centerVertical
trueなら縦中心で配置
layout_toLeftOf
指定したidをもつビューの左に配置
layout_toRightOf
指定したidをもつビューの右に配置
layout_above
指定したidをもつビューの上に配置
layout_below
指定したidをもつビューの下へ配置
layout_alignLeft
左端を指定したidをもつビューへあわせる
layout_alignRight
右端を指定したidをもつビューへあわせる
layout_alignTop
上端を指定したidをもつビューへあわせる
layout_alignBottom
下端を指定したidをもつビューへあわせる
layout_alignBaseline
ベースラインを指定したidをもつビューへあわせる
layout_alignParentLeft
trueなら左端を親ビューへあわせる
layout_alignParentRight
trueなら右端を親ビューへあわせる
layout_alignParentTop
trueなら上端を親ビューへあわせる
layout_alignParentBottom
trueなら下端を親ビューへあわせる
次に
marginの指定について
layout_margin
外側、上下左右の余白
layout_marginTop
外側、上の余白
layout_marginLeft
外側、左の余白
layout_marginRight
外側、右の余白
layout_marginBottom
外側、下の余白
twitter アプリの設定
twitter アプリの設定
#04 アプリの設定をしよう
http://dotinstall.com/lessons/tw_connect_php_v2/21904
を参考に、アプリ設定ファイルを作成
すでにDBの作成は終了しているという前提
最初にDB関連は定数を設定しておく
mkdir /var/www/html/tw_connect_php
でディレクトリを作成
cd /var/www/html/tw_connect_php
で移動して
vim comfig.php
でファイルを開いて
define('DSN', 'mysql:host=localhost;dbname=dotinstall_tw_connect_php'); define('DB_USER', 'dbuser'); define('DB_PASSWORD', '**********'); define('CONSUMER_KEY', '********************'); define('CONSUMER_SECRET', '*********************************'); define('SITE_URL', 'http://dev.dotinstall.com/tw_connect_php/'); error_reporting(E_ALL & ~E_NOTICE); session_set_cookie_params(0, '/tw_connect_php/'); [/php] をコピペ そして define('SITE_URL', 'http://dev.dotinstall.com/tw_connect_php/'); を define('SITE_URL', 'http://ドメイン/tw_connect_php/'); に変更して define('DB_PASSWORD', '**********'); define('CONSUMER_KEY', '********************'); define('CONSUMER_SECRET', '*********************************'); の部分をそれぞれ自分の環境になるように 動画を参考にしながら変更して保存する これで、設定ファイルができたので、 codebird.php も /var/www/html/tw_connect_php/ にコピーしておく