トップ 最新 追記

yoggy's diary

〜せかいのすみっこから〜


2006-06-01

おかげさまで3周年

ここの日記を書きはじめてから、今日でちょうど3年になりました。

いままでを振り返ってみると、ここを続けることで いろいろな人と知り合うきっかけができたような気がしています。

またこれからも自分のペースで続けていきたいと思っています。よろしくお願いします。m(_ _)m

objdumpの-Sオプション

知らなかったのでメモ。objdumpでVisual C++の混合表示みたいなことができる様子。

Cのソースコードがどんな感じでアセンブラに変換されているかを確認するときに便利そうかも? objdumpを実行するときに、実行ファイルと同じところにソースコードも置いておくのがコツみたい。

↓は使い方のメモ。

$ cat test.c
  #include <stdio.h>

  int test_add(int a, int b)
  {
    int c;
    c = a + b;
    return c;
  }

  int main(int argc, char *argv[])
  {
    int a=1;
    int b=2;
    int c;
    c = test_add(a, b);
    printf("a=%d, b=%d, c=%d\n", a, b, c);
    return 0;
  }

$ gcc -g -o test test.c
$ objdump -S test
        ・
        ・
        ・
  08048354 <test_add>:
  #include <stdio.h>

  int test_add(int a, int b)
  {
   8048354:       55                      push   %ebp
   8048355:       89 e5                   mov    %esp,%ebp
   8048357:       83 ec 10                sub    $0x10,%esp
    int c;
    c = a + b;
   804835a:       8b 45 0c                mov    0xc(%ebp),%eax
   804835d:       03 45 08                add    0x8(%ebp),%eax
   8048360:       89 45 fc                mov    %eax,0xfffffffc(%ebp)
    return c;
   8048363:       8b 45 fc                mov    0xfffffffc(%ebp),%eax
  }
   8048366:       c9                      leave
   8048367:       c3                      ret

  08048368 <main>:

  int main(int argc, char *argv[])
  {
   8048368:       55                      push   %ebp
   8048369:       89 e5                   mov    %esp,%ebp
   804836b:       83 ec 28                sub    $0x28,%esp
   804836e:       83 e4 f0                and    $0xfffffff0,%esp
   8048371:       b8 00 00 00 00          mov    $0x0,%eax
   8048376:       83 c0 0f                add    $0xf,%eax
   8048379:       83 c0 0f                add    $0xf,%eax
   804837c:       c1 e8 04                shr    $0x4,%eax
   804837f:       c1 e0 04                shl    $0x4,%eax
   8048382:       29 c4                   sub    %eax,%esp
    int a=1;
   8048384:       c7 45 f4 01 00 00 00    movl   $0x1,0xfffffff4(%ebp)
    int b=2;
   804838b:       c7 45 f8 02 00 00 00    movl   $0x2,0xfffffff8(%ebp)
    int c;
    c = test_add(a, b);
   8048392:       8b 45 f8                mov    0xfffffff8(%ebp),%eax
   8048395:       89 44 24 04             mov    %eax,0x4(%esp)
   8048399:       8b 45 f4                mov    0xfffffff4(%ebp),%eax
   804839c:       89 04 24                mov    %eax,(%esp)
   804839f:       e8 b0 ff ff ff          call   8048354 <test_add>
   80483a4:       89 45 fc                mov    %eax,0xfffffffc(%ebp)
    printf("a=%d, b=%d, c=%d\n", a, b, c);
   80483a7:       8b 45 fc                mov    0xfffffffc(%ebp),%eax
   80483aa:       89 44 24 0c             mov    %eax,0xc(%esp)
   80483ae:       8b 45 f8                mov    0xfffffff8(%ebp),%eax
   80483b1:       89 44 24 08             mov    %eax,0x8(%esp)
   80483b5:       8b 45 f4                mov    0xfffffff4(%ebp),%eax
   80483b8:       89 44 24 04             mov    %eax,0x4(%esp)
   80483bc:       c7 04 24 08 85 04 08    movl   $0x8048508,(%esp)
   80483c3:       e8 c8 fe ff ff          call   8048290 <printf@plt>
    return 0;
   80483c8:       b8 00 00 00 00          mov    $0x0,%eax
  }
   80483cd:       c9                      leave
   80483ce:       c3                      ret
   80483cf:       90                      nop
        ・
        ・
        ・
本日のツッコミ(全2件) [ツッコミを入れる]

kikuzou [3周年おめでとうございます ヽ(´ー`)ノ ]

よぎ〜 [ありがとうございます〜ヽ(´ー`)ノ]


2006-06-02

久しぶりにC++でプログラムを書いていると…

テンプレートを使いまくってると、コンパイルが遅いよ…

この文章も、そんなコンパイル中に書いていたり(笑

コンパイルが遅いと…

Web見てしまったりして、思考が脱線…(汗

…かといって、Eclipseみたいに即座にコンパイルされて、エラーが出ている箇所をガンガン表示してくれるのは、なんか逆に休憩させてくれないみたいで、それはそれで疲れるんだよなぁ…(笑

yesコマンド

$ man yes

yes(1)                                                                                       yes(1)

名前
       yes - kill されるまで文字列を繰り返して出力する

                  ・
                  ・
                  ・

…UNIXにあるコマンドの中でyesコマンドは、かなりバッドノウハウなコマンドの1つだと思う(汗

$ yes | rm -i *

2006-06-05

作業ログを書くために大切な、たった一つのこと(結城浩の日記)

コンテキストスイッチは確実に。という感じ?(笑

「自分の頭の中に情報を残さない」というのは、いい週末を過ごすためのコツかもしれないと思う。

OpenVPN GUI for Windows

存在をしらなかったのでメモ。

タスクトレイからお手軽に接続・切断を行うためのツール。インストーラにはWindows用のOpenVPNも含まれているので、本家のOpenVPNは入れておく必要はないみたい。

久しぶりの歯医者

定期検診のお知らせはがきが届いていたので行ってきた。 多少痛かったけど、以前よりもずいぶんマシになっていたみたいだ。

歯のみがき方をちょっと注意されたり…(汗

Companion 3(Bose)

いままで自宅の音環境がしょぼかったので、思わず衝動買い。

中音域が微妙に物足りないような気はするけど、 この値段でこの音だったら、とりあえず満足(笑

変なUser-Agent:

なんだよそれ(笑

DoCoMo/2.0/SO502i (compatible; Mozilla 4.0; MSIE 6.0; yahooseeker-jp-mobile AT Yahoo!JAPAN)

ちなみにiモード端末のユーザエージェントの一覧はこちら

loggy - Advanced Log Cleaner

loggy is a log cleaner for Linux. loggy allows users to clean logs, attach itself as syslog, spoof information, modify login history and more.

使う機会は無いと思うけど、名前に親近感をおぼえたのでメモ(笑


2006-06-06

昨日、席を外していたら…

↓のウインドウが残ってた。すまん、席外してたよ…

一部伏字(笑

内積

内積ってなんだったっけ?と思って、Wikipediaの内積を見て敗北。説明が難しいよ…_| ̄|○

とりあえずここを見て思い出す。絵に描いて説明してくれるとわかりやすい(汗

本日のツッコミ(全2件) [ツッコミを入れる]

ntoh [なんかモザイクの部分、俺がとてつもなくやばい発言しているみたいじゃないかよ。]

よぎ〜 [ある意味、やばい発言だな(笑]


2006-06-08

Skypeでビデオ通話を使うと重いのは…

使っているうちに何となく思ったけど、これって…

  • Qcamのドライバが重い?
  • ビデオの表示をDirectXではなく、GDIでまじめに描いているから重い?
  • エンコードが重い?(何のCODEC使ってるかしらないけど…)

とかが原因になってるのかな?と考えてみたり。

例えば、Skypeのビデオの設定で

  • 荒くてもいいからフレームレート高め
  • フレームレートが低くてもいいから画質きれいに…とか

とかの画質の調整ができたらいいのになぁ…と思ってみたり。ノートPCで使ってると、ビデオの表示にCPUパワーが食われすぎて、音声が途切れることがしばしばあるので…

リモートで質問

してみたり。IDA, OlyDbg, Packet Black Holeあたりを使ってるのね(笑

あー、今日行ってみたかったなぁ…>INTEROP


2006-06-09

ねこ

近所のねこ

明日は

ぼちぼち楽しみますよー

そういえば、aCTFIIというのもあるのね。

CTF


2006-06-10

11:00(JST)

URLとユーザ、パスワードが送られてきた。11:00になったけど、まだサイトにはつながらない様子?

11:30(JST)

サイトがあがった様子。Pythonで動いてるのかな?

カテゴリが5つあって、各カテゴリに5つレベルが用意されているのですが、 とりあえずどの問題を選ぶか悩み中…

- Binary L33tness: Reverse engineering with a focus on determining
  or reproducing existing functionality.
- Web Hacking: Just what it sounds like. There's a website that
  doesn't want anything to do with you, and you want to fuck it
  up. Use your skills and make it happen.
- Potent Pwnables: Remote exploitation, pure and simple. Some
  items in this list may provide a binary for analysis, while
  others may not.
- Forensics: For the "Certified Ethical Hackers" in the crowd,
  *cough*SANS*cough*, we've included this extremely challenging
  category.
- Trivia: Know your profession / hobby. Random useless facts we
  arbitrarily deemed important enough for you to know.

なぜかサイトでは"Web Hacking"が"Web 3.0"と表示されててワロタ。

13:00(JST)

↓のおじさんって誰?(笑 誰?

16:30(JST)

ppcの問題が出るとは…_| ̄|○

19:00(JST)

とりあえず食事〜


2006-06-11

1:00(JST)

Webアプリケーションの神様が降臨した瞬間。hiro-tさんすげー(笑

5:00(JST)

うー、眠さの限界…

とりあえずFreeBSD環境を準備できた地点で仮眠する予定。

12:00(JST)

さっき順位が出ていた。現在25位(笑

20:00(JST)

うお、forensicsネタでwavファイルが問題に…_| ̄|○

22:00(JST)

↑はwavファイルをごにょごにょ&ググってクリア。オチにちょっと感激(笑

23:00(JST)

ねこダンシング中! -> スクリーンショット


2006-06-12

12:00(JST)

ねずみが応戦中ー -> スクリーンショット

12:45(JST)

のこり15分。こんな感じ。

image

12:55(JST)

とりあえず、全部の問題を見ちゃう作戦に変更。問題に答えることができなかったらマイナスになるんだよなぁ…

13:00(JST)

競技終了。予選突破は無理だったけど、いい経験ができたと思います。特に自分の弱いジャンルを再認識できてこの辺勉強しないといけないなーという気持ちになったのはよかったかも。

CTF競技ルールメモ

  • 参加登録するとそこへアクセスするためのユーザ・パスワードが送られてくる。専用のサイトが用意されているので、そのアカウントを使ってログイン。
  • 5つのジャンルにそれぞれ100〜500ポイントの問題が1つ用意されている。
  • 25個の中から1つづつ問題を選択して解いていく。
  • 問題を解くと答えの文字列が出てくるので、それをフォームに入力すると、得点をゲット。
    • 追記: 1問につき入力できるのは10回まで。Brute Forceはできないようになっている(笑
  • 問題を一度選択してしまうと、問題を解くかギブアップするまで次の問題へ移ることができない。
  • 問題を解くことができなかったり、ギブアップした場合はその得点分マイナス。

点数の推移

昨日の夜に500点のWeb300点のForensicsの問題を解いた地点で最高の1600点に。そのままキープしていたら21位ぐらい?

でも、最後の5分で全部の問題を見るという暴挙に出たため、-2100点に。60位(笑

今回のCTFの、

  • 一度問題を選ぶと、正解するかギブアップするまで次の問題が解けない。
  • 不正解、またはギブアップした場合はその点数分マイナス

というスコアリングシステムは、なかなか絶妙なゲームバランスだなーと思ったり。問題を選択するまでは出題内容を見ることができないので、どの問題を選んで行くか?という戦略的なところでも面白かったと思います。

現在、最終的なランキングがkenshotoのサイトに掲載されています。

最高の1600点最終点数は-2100点

本日のツッコミ(全2件) [ツッコミを入れる]

tessy [順番的にはForensic300をクリアした時点が最高なのかと。 調子乗ってForensic400に挑んで玉砕したよ..]

よぎ〜 [意外とTrivia500は30分ぐらいあったらいけたような気がする(笑]


2006-06-13

Firefoxで使っている機能拡張

ふだんはこんな感じかも(笑


2006-06-14

あじさい

はぁ…、もう6月も半ばですなぁ…

あじさい

Trivia500

後で試しにチャレンジしてみたら、ここで言ってたとおり、本当に30分以内に解けてしまった…_| ̄|○

現在サイト

  • We'll post *all* the challenges and keys (but not answers) here shortly (prolly monday evening)

と載っているので、後日、予選で出題された問題はすべて公開されるみたいです。興味がある人はチャレンジしてみてはいかが?


2006-06-15

Shibuya.js Technical Talk #2

気がついたときには申し込みが終わっていたのですが、とりあえずメモ(汗

2次募集は6/17 12:00からの予定だそうです。

2006年 6月30日(金)に Shibuya.js 第二回目のイベント、Shibuya.js Technical Talk #2 を開催します。

開催日時

  • 2006年 6月30日(金)
  • 18:00開場 18:30〜21:00 予定

開催場所

  • 神保町三井ビル 17F 株式会社インターネットイニシアティブ (IIJ) 大会議室
  • http://www.iij.ad.jp/map/

料金

  • 無料

2006-06-16

DI.fm Goa-Psy Trance

最近のお気に入り。コーディングする時にiTuneで聞いてます(笑


2006-06-19

駐車場ゲーム

仕事の合間の息抜きのつもりが、まじめに遊んじゃったよ…いかんいかん(;´Д`)

via. にわか鯖管の苦悩日記

SQLのwhereで…

CTF予選のときに初めて知ったのですが、

select * from authdata where user=''or''=''or''='' and password='ほげ'

で、シングルクオートとorって間にスペースがなくてもOKなのね。知らなかった…

Web300の問題では「スペース+"or"」の文字列が封じられていたみたいでした。

天災は忘れたころに…

むー、HDDがカチカチ音をたてて死亡…ガックシ_| ̄|○


2006-06-20

Flash 8 + ウェブカメラでリアルタイム発火・積雪エフェクト(Engadget Japanese)

エフェクトがかっこいいー。要Flash Player8+Webカメラ。

Flash8ではビットマップの操作ができるので、カメラ画像の差分を取ったり輪郭抽出とかを使ってると思うんだけど、かっこよく見せるアイデアがいいねー。


2006-06-23

デマングリングのメモ

c++filtというコマンドがあったのかーといまさら気が付いたのでメモ。

サンプルとして、こんなコードを用意。

$ cat hoge.cpp
#include <iostream>
using namespace std;

class Hoge {
private:
  int a;
public:
  Hoge(){a = 0;};
  Hoge(int a){set(a);};
  Hoge(const Hoge &h){set(h.a);};
  ~Hoge(){};
  Hoge& operator=(const Hoge &h){set(a);};
  void set(int a){this->a = a;};
  int get(){return a;};
  void print(){cout << get() << endl;};
};

int main(int argc, char* argv[])
{
  Hoge h1(123), h2;
  h2 = h1;
  h2.print();
  return 0;
}

nmでそのまま出力すると、name manglingされた状態で表示されてしまう。

$ g++ hoge.cpp -g -o hoge
$ nm hoge | grep "Hoge"
080487ee W _ZN4Hoge3getEv
080487a4 W _ZN4Hoge3setEi
080487f8 W _ZN4Hoge5printEv
080487b2 W _ZN4HogeC1Ei
08048796 W _ZN4HogeC1Ev
080487cc W _ZN4HogeD1Ev
080487d2 W _ZN4HogeaSERKS_

c++filtを使って、デマングリングする。

$ nm hoge | grep "Hoge" | c++filt
080487ee W Hoge::get()
080487a4 W Hoge::set(int)
080487f8 W Hoge::print()
080487b2 W Hoge::Hoge(int)
08048796 W Hoge::Hoge()
080487cc W Hoge::~Hoge()
080487d2 W Hoge::operator=(Hoge const&)

またはnmを--demangleオプションをつけて実行

$ nm --demangle hoge | grep "Hoge"
080487ee W Hoge::get()
080487a4 W Hoge::set(int)
080487f8 W Hoge::print()
080487b2 W Hoge::Hoge(int)
08048796 W Hoge::Hoge()
080487cc W Hoge::~Hoge()
080487d2 W Hoge::operator=(Hoge const&)

2週間前にc++filt知っていれば、100点アップだったのに。ぐぅ…

参考


2006-06-26

bpencode

素数のルックアップテーブルをBrainf*ckで出力するように変換してるのね(笑

Lightweight Language Ring

bpencodeを見て、今日がチケットの発売日だったことを思い出す。やべー忘れてた(汗

まだチケット残ってるのかな?帰りにローソンに寄ってみよう。


2006-06-27

「VAIO type U」に16GBフラッシュメモリ、ワンセグ搭載モデルを追加(Broadband Watch)

この色だけ選べるようにして欲しいなぁ…ワンセグは見ないし。HDDは欲しいと思うし(笑

hi5のアレ

なかなか凶悪な仕掛けですなぁ…


2006-06-29

Rubyist Magazine - 日本 Ruby カンファレンス 2006 特別号

あー、行きたかったなぁ…ということで、後で読むメモ。

ちょうどこの日はCTFの予選だったんだよね(笑

Flash Player 9

ほう!

ドコモのM1000、バッテリーや通信部に不具合(ケータイWatch)

ぇー。

近いうちにドコモショップへ行く用事があるから、まぁいいか…


2006-06-30

今までエクスプローラにこんな機能があるって知らなかったよ…

名前でソートするとファイル名についている数字を数値として判断して、順に表示するのね。教えてもらって初めて気が付いて、すごく感心してしまった(笑

ASCII順で並べるとtest1.jpgの次はtest11.jpgが表示されそうなんだけど、わざわざ数字としてソートしているところがすごい。

エクスプローラでの表示

dirでの表示

本日のツッコミ(全2件) [ツッコミを入れる]

はせがわ [つ http://support.microsoft.com/kb/319827/JA/]

よぎ〜 [おー、これってXPからの機能だったのね。知らなかったです(笑]


トップ 最新 追記

2003|01|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|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|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|
2010|01|02|03|