ソフトウェアライセンスの基礎知識を読んだメモ

明らかに間違っている場合は指摘してくれるとうれしい。でも自分用めもだから、詳しくは調べてね。 「オープンソース」を名乗るための10の条件が定義されている コピーレフトとは、ソースコードをベースとした派生ソフトウェアのライセンスを、もとのソフト…

IsBadXXXPtrを使うべきでないたった一つの理由

Windows Vista および Windows Server 2008 アプリケーション互換性解説書 以前のバージョンの Windows では、IsBadReadPtr および IsBadWritePtr 関数を使用してパラメータを検証していました。Windows Vista および Windows Server 2008 では、これらの関…

ページをまたがる構造体とか

うん、わかるよ、カーネルもカーネル、コアな構造体だからページアウトとか関係ないのはわかるよ。けどさ、 version size(hex byte) size(byte) 2000 SP4 x86 0x7e0 2016 XP SP3 x86 0xb30 2864 Vista SP2 x86 0x2008 8200 7 x86 0x3620 13856 どうかしてる…

興味深いソースがあるサイト

Collaborative RCE Tool Library!というサイトを見つけた。 ここにあるツール、結構面白いものが多く、たとえばDream of every reverserは Engine used to perfrom stealth memory trace of a target. なツールでソースコードが付いている。ソースもPoCのよ…

ネタ

| | { ! _,, -ェェュ、 | ィ彡三ミヽ `ヽ ,ィハミミミミミミミミミヽ、| 彡'⌒ヾミヽ `ー /ililハilミilミliliミliliミ| ヾ、 /iiiiイ!ヾヾミ、ミニ=ー-ミ| _ `ー―' i!ハ:.:.\\_::::::::::::::/:.| このアドレスは 彡三ミミヽ i! ヽ:.:.:.:冫': : :::/,,∠| 彡' ヾ、 _ノ i!::: ̄二ー…

もうここ、いらないかなって

いろいろと変わったし。決して納豆嫌いの圧力があったとかじゃないよ^^; いや、よくわかんないけどさ、更新頻度は落ちるよ(すでに落ちてるけど)。 くだらない日常事だったらTwitterのほうが適当。

そろそろセキュリティ系ベンチャー企業について一言いっとくか

8月1日をもって転職しました。おめでとう、ありがとう。 これまでお世話になったみなさん、本当にありがとう! 新しくお世話になるみなさん、よろしくお願いします! 転職した理由について、少しだけ書く。

x86仮想化技術のメモ

カーネル/VM探検隊などに触発されたので、私もVM関連の情報をまとめていく。こうかと思ったが、ザーと書いているうちに飽きてきたので途中で終わってます(笑) ググればわかるような情報を書き出すのに時間を使うよりも、実際にソース読んでいったほうが面…

情報セキュリティスペシャリスト試験

受験番号 SC337-0787 の方は, 合格 です 午前I得点 85.00点 午前II得点 88.00点 午後I得点 70点 午後II得点 66点 おめでとう、ありがとう。 受験直後の「楽だな」という印象に反して辛勝といった感じ。

初心者のためのkgdbによるカーネルデバッグ環境構築めも

Windows 7 RC(x64)をホストとしてVMware Workstation 6.5.2 で2台のUbuntu 9.04(x64)を作成し、一台をデバッグする側、もう一台をデバッグされる側とする。

Windows 7でのAppInit_DLLsの変更

AppInit_DLLsとはHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\以下にあるレジストリーキー群で、 AppInit_DLLs インフラストラクチャにより、アプリケーションは任意の DLL をすべてのユーザー モード プロセスに読み込むこと…

Force of Will ?

オリコンが10〜40代の男女を対象に『夢や目標を達成させるために必要なもの』について調査を行ったところ、性別・世代別の全ての部門で【自分自身の強い信念・精神力】が1位となった。 目標達成に必要なもの、男性は「運」女性は「行動力」 カッコ良すぎわろ…

ええ、それに電源コンセントも重要でしょう?

はせがわさんの記事を見ていてふと思い出したわけですよ。 「LANケーブルを中継するように接続するだけでウイルス侵入・データ盗難の防止」とのことですが、昨今、イーサ経由ばかりではなく電源コンセントからの情報漏えいにも配慮しなければならないのだそ…

WOW64にコストがかからないなんてのは幻想

Instead of using the x86 system-service call sequence, 32-bit binaries that make system calls are rebuilt to use a custom calling sequence. This calling sequence is inexpensive for WOW64 to intercept because it remains entirely in user mod…

WOW64サービステーブルをWinDbgでみる

WOW64サービステーブルというのは、wow64.dllのなかに実装された関数テーブル。WOW64プロセスがシステムコールを発行したときに、x64システムコールへの変換を行うため透過的に呼び出される。前回までの調査でこいつのシンボル名はwow64!ServiceTablesである…

WOW64からのシステムコール概要

もうちょっと実装よりに、Win7(RC)x64 で以下のコードを用いて違いを確認する。 int _tmain() { __debugbreak(); FlushProcessWriteBuffers(); return 0; } FlushProcessWriteBuffersは、引数なし戻り値なしのとても単純なAPIなので、処理の概要を理解するの…

WOW64からのシステムコール概要 のまとめ

要点をコードで。Win7(RC)x64でのみ動くので、あくまで例示ということで。 まとめ1:eaxにシステムコール番号、ecxにディスパッチ関数番号を入れて、call dword ptr fs:[0C0h] するとWOW64からシステムコールを発行できる このプログラムは、自分でWOW64のN…

LDR_DATA_TABLE_ENTRY にパッチを行う

ここでいってること。チェックは以下のシーケンスになっている。 PsSetCreateProcessNotifyRoutineEx(Routine, IsRemove) +-PspSetCreateProcessNotifyRoutine(Routine, IsRemove, 1) +-MmVerifyCallbackFunction(Routine) 関数を登録する際にMmVerifyCallba…

プロダクションの場合どうやってんだろ?

カーネルで何かやろうとするとすぐに、文書化された方法がない(ように思われる)状況になる。PoCやら趣味やらのコードであれば、泥臭い方法で逃げれることが多いのだけど、プロダクションの場合そうもいかないだろう。文書化されていない方法ってのは、良い…

WOW64で和訳の練習

WOW64 Implementation Details Best Practices for WOW64 Registry Reflection in Windows あたりを読んでめぼしい情報をメモ。さすがに全部和訳するのはだるい。 (追記)日本語のドキュメントが公開されました! 64 ビット Windows プログラミング ガイド

KVMをちょっと使ってみた雑感

Winの開発環境を作るために、Ubuntu Desktop 9.04(x64)の上に仮想マシンを立てるとする。VMwareで済ますのは非常に簡単なのだけれども、せっかくだから俺はこのKVMを試すぜ、という按配で少しやってみた。 結論としては、動作自体は極めて良好で不快感を覚え…

Win2008のプロセッサHot-Addを目の当たりにした

URL

vSphere 4のデモでね。タスクマネージャー再起動すると、プロセッサのグラフ数が増えているという。既存のプロセスは、アフィニティを再設定してあげればOK。ちなみに評価版を使えば、個人でもWin2008のHot-Addが簡単に(?)体験できる。最初、Windows2008…

フィルタドライバメモ

ドライバファイルはsystem32以下でなくてもOK。 ドライバサービスをインストールするだけで開始する必要はない。 開始する(フィルタドライバがメモリにロードされ正しく機能しはじめる)ためには、レジストリにフィルタドライバとしてサービス名を登録し、W…

C99が大変excellentで

C++

ブロック途中での変数宣言とインライン関数がサポートされてるから、C++から乗り換えるのに困らないよね! さらに複合リテラルとか素敵だね。 // $gcc -std=c99 -Wall test.c #include <stdio.h> typedef struct { unsigned int x; unsigned int y; } point; void dra</stdio.h>…

初心者のためのgdbフロントエンド

gdbわかんねえよヽ(`Д´)ノ ウワーン、という話をしたらid:firewoodさんからinsightとDDDというフロントエンドを紹介してもらった。 両方簡単に使ってみた印象では、insightに軍配が上がる。というか、DDDはソースのマルチバイト文字を表示できないので、正直なと…

プロセスの終了コード取得(on Shell)

Windowsの場合、errorlevel環境変数で取得する。 >type con > exit_code.c int main(void) { return 11519; } [Ctrl+C] >cl exit_code.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 Copyright (C) Microsoft Corpora…

Q.システムコール番号はどうやって調べますか

A."unistd*"でfindれ $find /usr -name unistd*.h /usr/src/linux-headers-2.6.28-11/arch/sh/include/asm/unistd_64.h ... アーキテクチャ依存のヘッダ /usr/src/linux-headers-2.6.28-11-generic/include/linux/unistd.h /usr/include/bits/unistd.h /usr/…

コンソール内のエディタ

コマンドプロンプトの場合 >type con > filename ... [Ctrl+C] PowerShellの場合 PS>Write-Output > filename InputObject[N]:... InputObject[N]:[Enter]空行を入力する方法がわからないね。とりあえず半角空白など入れているけど。 UNIX色に染まりたい(染…

PowerShellで青画面

突然すぐる… PowerShell使っていて [Alt]+[Enter] 押したらこうなったんだよ! 嘘じゃないよ! 一瞬ブラックアウト 青背景に白文字 微妙に文字がつぶれてる この辺がポイント。いかに青画面見慣れてても、突然だと焦る。

C言語のイディオムに潜む未定義

C++

S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル*1を読んでいたら可変長の構造体の利用について、未定義であると書かれていて驚いた。ググってみたら初級C言語Q&Aに次のとおり説明が。 Q 【可変長の構造体】 次のような構造体を…