ハンド (逆) アセンブルのための x86 ニーモニックの覚え方

x86

バイナリ列を見て x86 のコードかな〜とニヨニヨできる人に、x86 のコードであること、だけじゃなく実際のコード列も読めるようになってほしい!そんな願いから、今回は hex dump のバイト列を見つめてハンド逆アセンブルできるようになるための、効率良い覚…

グレイコード→次のグレイコード的なカウンタ

[twitter:@iorivur] さんがつぶやいた、グレイコードを直接出すカウンタは…できました。けど複雑な上に実質加算器なので、個人的にはこれはあまり好きになれません。 グレイコードとは グレイコードとは、1 ステップ進めると 1 ビットだけ変化するという性質…

そろそろあの長文に反論するか…。

http://d.hatena.ne.jp/pacsolution/20110813/1313230347 ふむふむ。一回読んだだけでも、間違っているどころか詭弁に見える部分がある。 というわけで、私の立場から反論させていただきたい。 自己紹介 原著者の方が見ることも考慮して、自己紹介しておこう…

線形合同法で色々やってみる。

任意の未来の状態を計算できる乱数について調べてたら、線形合同法ならパラメータを計算し直すだけで何とかならないかと考えた。あと 2ch のログでもこういうのを発見した。(出典: http://unkar.org/r/tech/1192628099 [擬似乱数2 - プログラム技術@2ch掲示…

x86 で任意精度整数の演算 (一部) をやってみる

x86

FAT12/FAT16 用のブートローダを書こうとしていたときに気づいた問題。FAT12/16 の最大クラスタ数はそれぞれ 2^12, 2^16 より少し少ない値だが、セクタに関してはそうではない。計算するときには 32 ビットの値でセクタ数を計算し、ディスクからのロード操作…

やっと「マトモ」になった mingw-w64

凄く場違いな話題だが、x64 Windows 向けのツールチェーンに加えられた飛躍的な進化について。x64 Windows 向けの例外処理もだいたい分かるぐらいに話す。 (カーネル/VM Advent Calendar : 1010+1001/01/11 分) x86→x64 Windows はこのプラットフォームの変…

私の目から見た PacSec 2010 (3)

やっと PacSec Day 2。かなり飛ばし飛ばしですが、最終回です。 PacSec Day 2 : 時間の見積もり (2つの意味で) とりあえず、そのまま喋ればオーバーになる程度*1の文章量。少々の要約はやむを得ない。大丈夫だと言い聞かせつつ、意図的に少し遅めに出発。今…

Hackers' Dream 優勝してしまいました

意外にも。というわけで今回はここまでの経緯について。 イベントを教えてもらう 私は PacSec 2010 にスピーカーとして参加した。PacSec の終了後に飲み会があったのだが、そのときに韓国人グループと話をしていたのだ。今回スピーカーとして参加した韓国人…

Hackers' Dream 参加しました。

後日レポートをアップする予定です。(本文そのものはブログには貼りません。念のため。) 問題は 4 問あり、そのうちの 3 問ではリバースエンジニアリングが必須です。8 日という長丁場なので、全問正解することは最低必須だと考えていました。そこで取り掛か…

私の目から見た PacSec 2010 (2)

時系列に並べずにアトランダムに記述するという方針変更。まぁ大まかには時系列どおりにいきたいところだけど。 トレンドの変化、時代の変化、参加者の変化 今年の PacSec は 1 日チケットが購入可能になったのと同時に、昨年は明確でなかったジャンルの区分…

私の目から見た PacSec 2010 (1)

なんで自分語りばかりのエントリに星がついたのか謎だが、今回からマトモな話題です。 AVTokyo 2010 (昼の部) 会場の場所がわからず、BS ホールではなく「本社まで」行ってしまった。往復 1.5km の無駄足だった。とりあえず遅刻しながらも昼の部会場まで到着…

私の目から見た PacSec 2010 (0)

今回は PacSec 以前の話となります。自分語り多めどころか全部そうです。 まずは前回 (PacSec 2009) 直後から。 前回も、私は PacSec において発表させてもらった。話題はライブメモリフォレンジックを妨害するための rootkit という、ものすごくマイナーな…

PacSec 2010 で発表してきました。

去年の別のネタ (アンチフォレンジック) に比べれば噛むことも少なく、全体としては安定した発表になった。(それが「良い」かどうかは別として。) さて、今回の発表は "Record and Replay" に関する VMM の設計技術に関する部分。つまりどのように VMM を実…

プリプロセッサで型名を自動整形 (C/C++ 両対応)

C++ と C で同じ内容の型を定義したいときがある。しかも、C++ ではちゃんと名前空間に入れて、さらに C では名前空間に対応するユニークな名前で修飾しておきたい場合とかも。というわけでこれに対応するためのマクロを Boost.Preprocessor を使って書いて…

Amazon EC2 はじめました

aws

というのも、作成中の VM のデモ目的で。自宅の PC は何度か試したが Wake on LAN では正常に立ち上がらない。家族に立ち上げてもらってもディスクにパスワードかかってる。そもそもリモートからちゃんと弄れる環境を作るのは少し厳しいし、この PC で仮想化…

Bochs を使って命令 / メモリトレースを取得する

Bochs の組み込みデバッガはなかなかよくできています。メモリアクセス、実行命令など、必要なほとんどの情報 (ハードウェアからの実際の入力を除く!) を取得することができるのです。私は Bochs for Windows に付属の bochsdbg.exe を用いていますが、必要…

Bochs のバグ (?)

Bochs を使って命令トレースとメモリトレースを取得し、そこから最小情報トレースで必要とされるトレース量を計算、比較する試み――なのだが、思ったより時間がかかっている。最大の理由はその遅さ。メモリトレースを無効にして命令トレースだけにしても 1000…

TeX記法のテスト中

うーん、表示に若干の不安があるが、想定の範囲内か。

リバースエンジニアリングのための Record and Replay (レイテンシ削減編)

当初、最小情報トレース (= Record and Replay) において、VM で当該命令を実行してからその部分についてある程度の解析が終了するまでのレイテンシは 5〜20 分と見積もっていた。それは、Replay に相当する部分における解析に比較的時間がかかると見込んで…

やぁやぁ

ここが旧 id:xna の新ダイアリーになる予定だよ!