ここの日記を書きはじめてから、今日でちょうど3年になりました。
いままでを振り返ってみると、ここを続けることで いろいろな人と知り合うきっかけができたような気がしています。
またこれからも自分のペースで続けていきたいと思っています。よろしくお願いします。m(_ _)m
知らなかったのでメモ。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
・
・
・
Web見てしまったりして、思考が脱線…(汗
…かといって、Eclipseみたいに即座にコンパイルされて、エラーが出ている箇所をガンガン表示してくれるのは、なんか逆に休憩させてくれないみたいで、それはそれで疲れるんだよなぁ…(笑
$ man yes
yes(1) yes(1)
名前
yes - kill されるまで文字列を繰り返して出力する
・
・
・
…UNIXにあるコマンドの中でyesコマンドは、かなりバッドノウハウなコマンドの1つだと思う(汗
$ yes | rm -i *
コンテキストスイッチは確実に。という感じ?(笑
「自分の頭の中に情報を残さない」というのは、いい週末を過ごすためのコツかもしれないと思う。
存在をしらなかったのでメモ。
タスクトレイからお手軽に接続・切断を行うためのツール。インストーラにはWindows用のOpenVPNも含まれているので、本家のOpenVPNは入れておく必要はないみたい。
なんだよそれ(笑
DoCoMo/2.0/SO502i (compatible; Mozilla 4.0; MSIE 6.0; yahooseeker-jp-mobile AT Yahoo!JAPAN)
ちなみにiモード端末のユーザエージェントの一覧はこちら
loggy is a log cleaner for Linux. loggy allows users to clean logs, attach itself as syslog, spoof information, modify login history and more.
使う機会は無いと思うけど、名前に親近感をおぼえたのでメモ(笑
使っているうちに何となく思ったけど、これって…
とかが原因になってるのかな?と考えてみたり。
例えば、Skypeのビデオの設定で
とかの画質の調整ができたらいいのになぁ…と思ってみたり。ノートPCで使ってると、ビデオの表示にCPUパワーが食われすぎて、音声が途切れることがしばしばあるので…
URLとユーザ、パスワードが送られてきた。11:00になったけど、まだサイトにはつながらない様子?
サイトがあがった様子。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"と表示されててワロタ。
↓のおじさんって誰?(笑

ppcの問題が出るとは…_| ̄|○
とりあえず食事〜
Webアプリケーションの神様が降臨した瞬間。hiro-tさんすげー(笑
うお、forensicsネタでwavファイルが問題に…_| ̄|○
↑はwavファイルをごにょごにょ&ググってクリア。オチにちょっと感激(笑
とりあえず、全部の問題を見ちゃう作戦に変更。問題に答えることができなかったらマイナスになるんだよなぁ…
競技終了。予選突破は無理だったけど、いい経験ができたと思います。特に自分の弱いジャンルを再認識できてこの辺勉強しないといけないなーという気持ちになったのはよかったかも。
昨日の夜に500点のWeb300点のForensicsの問題を解いた地点で最高の1600点に。そのままキープしていたら21位ぐらい?
でも、最後の5分で全部の問題を見るという暴挙に出たため、-2100点に。60位(笑
今回のCTFの、
というスコアリングシステムは、なかなか絶妙なゲームバランスだなーと思ったり。問題を選択するまでは出題内容を見ることができないので、どの問題を選んで行くか?という戦略的なところでも面白かったと思います。
現在、最終的なランキングがkenshotoのサイトに掲載されています。


気がついたときには申し込みが終わっていたのですが、とりあえずメモ(汗
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/
料金
- 無料
CTF予選のときに初めて知ったのですが、
select * from authdata where user=''or''=''or''='' and password='ほげ'
で、シングルクオートとorって間にスペースがなくてもOKなのね。知らなかった…
Web300の問題では「スペース+"or"」の文字列が封じられていたみたいでした。
むー、HDDがカチカチ音をたてて死亡…ガックシ_| ̄|○
エフェクトがかっこいいー。要Flash Player8+Webカメラ。
Flash8ではビットマップの操作ができるので、カメラ画像の差分を取ったり輪郭抽出とかを使ってると思うんだけど、かっこよく見せるアイデアがいいねー。
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点アップだったのに。ぐぅ…
bpencodeを見て、今日がチケットの発売日だったことを思い出す。やべー忘れてた(汗
まだチケット残ってるのかな?帰りにローソンに寄ってみよう。
この色だけ選べるようにして欲しいなぁ…ワンセグは見ないし。HDDは欲しいと思うし(笑
なかなか凶悪な仕掛けですなぁ…
名前でソートするとファイル名についている数字を数値として判断して、順に表示するのね。教えてもらって初めて気が付いて、すごく感心してしまった(笑
ASCII順で並べるとtest1.jpgの次はtest11.jpgが表示されそうなんだけど、わざわざ数字としてソートしているところがすごい。


◆ kikuzou [3周年おめでとうございます ヽ(´ー`)ノ ]
◆ よぎ〜 [ありがとうございます〜ヽ(´ー`)ノ]