2007-12-01から1ヶ月間の記事一覧

静的リンク

このコードはプロセスの起動時に指定したDLLを読み込ませる、detoursのDetourCreateProcessWithDll関数を利用したプログラムだ。この関数はDLLを静的リンクされているものとして処理させるようにPEを書き換える。 #include <windows.h> #include <tchar.h> #include <shlwapi.h> #pragma com</shlwapi.h></tchar.h></windows.h>…

狂犬の復讐

オススメしてもらったので値が張らないこいつを買いました。あなたもいかがですか?→ホットソース ワールド

低リソース環境シミュレータ lowresource.dll

メモリアロケートに失敗したときの動作検証って面倒くさいですよね。うん、たぶんめんどうだよね! 正直コードカバレッジとか意識してテストしたことない! めんどうだから!*1で、lowresource.dll とは何ぞやというと、ロードしたプロセスのHeapAllocをフッ…

関係ないけどね

って本心ではあるけど、さすがにそろそろ帰省して顔を出すのが、親元を離れた子供のやさしさのような気がしなくも無い。ので少しの間、パソコンの無い遠野へ移動します。それにしても、PCが無い環境に行くと読書がはかどるんですよねー。

detoured.lib はいらない

detoured.dll は殆ど機能を持っていない。ただひとつエクスポートしている Detoured 関数も、関連コードからは実質的にまったく利用されていないようである。したがって自分でDetoured関数を定義してしまえばよい。そうすれば、detoured.lib を使わずにビル…

遅延読み込みのインポート

libを使い、静的にリンクするようにビルドされたバイナリは、WinMainやDllMainなどよりも早い段階で、そのDLLのロードが行われる。DLLが見つからない場合、警告ダイアログを表示して起動に失敗する。この辺の、俗にローダと呼ばれる処理についての理解が浅く…

乱数生成の速度

乱数が必要になったが、速度的なボトルネックになりそうな気がしたので、いくつかの乱数生成関数の速度を調査することにした。実行コードはこんな感じ(random.cpp)で、100000回乱数を生成する。 関数 所要時間(秒) 速度比 rand 0.0063734 x1.00 RtlRando…

アロケータ置換

仮想メモリ2GBの壁が問題になった。環境上 /3GB も使えない。冷やし中華さんはこう考えた。 「2GB以上のメモリは確保できない。ならメモリの確保はすべてメモリマップトファイルにしてしまえ」 試行段階としてvc9test20071228.cpp.txtを書いてみた。このコー…

とりとめもなく

成果の上がらなかったことや、自分の中での結論の導かれていないことも書いてみようと思う。HTMLのほうは一定の成果・結論が出たものだけ書いていたが、後悔したこともあった。たとえばカーネルパッチングのページにおいてServiceDescriptorTableShadowが発…

ページビュー

なぜか既に300を超えていた。300がなにかというと、私のHTMLサイトのページビューの数である。HTMLの方はカウンタを付けて約1ヶ月。一方こちらは1週間程度。ブログはブログ(ここではhatena)というつながりがあって、人の交流が盛んなのだろうか。まあ、読…

はてなの使い方

画像の貼り方が良くわからない。通常は縮小表示して、クリック時に等倍で表示してほしいのだが。「今日の一枚」の機能も画像が小さい。有料オプションで大きくできるらしいが、まあ、どうでもいい。 あとは、geocitiesにある自分のサイトのzipへ直リンクした…

redist.txt

MSの製品の中には再頒布可能なファイルというものがあり、そのファイルは通常 redist.txt というテキストにリストされている。中身を見ると大体 The following files may be redistributed みたいなことが書いてあって、ファイルのリストや詳細な条件が続く…

それにしても

定時で帰宅するなり、24時近くまでこんなことをやくざな事をやっているとは。いくらブログヽ(*´∀`*)ノ キャッキャ なタイミングとはいえ酷いものだ。それと、私のローカルのMSDNにはZwFreeVirtualMemoryの宣言が次のように書かれていた。 NTSTATUS ZwFreeVirtualM…

VistaSP1+VC9でDetours Express 2.1をビルドしたメモ(追記)

Detours ライブラリを利用したバイナリは detoured.dll がないと動作しない。少しライブラリに手を加えれば、無くてもどーにでもなるような気もするが、あえてやる価値があるとは思えない。で、本題。detoured.dll にASLRが適用されるようにビルドしよう。de…

Detours でみるメモリアロケーション

Detours を使ってAPIをフックするのは非常に簡単。要するにインクルードして、専用APIを利用したコードを書いて、ビルドして、リンクするだけだ 手順にまとめる必要が無いぐらい。で、メモリアロケートの基底APIを調べるため次のAPIを引っ掛けてみた。 RtlAl…

VistaSP1+VC9でDetours Express 2.1をビルドしたメモ

Detoursをダウンロードしてインストール コンパイルエラーになる部分を修正 detoured.dll にASLRが適用されるようにビルドするならMakefileを編集 スタートメニューの[Visual C++ 9.0 Express Edition]->[Visual Studio Tools]->[Visual Studio 2008 Command…

exeに設定を書けばポータブル

エロゲが名前付きMMファイルを作る エロゲが適当なほかののプロセスに対して監視スレッドを流し込む 監視スレッドはMMファイルのハンドルを開き、エロゲのプロセス終了に対して待機状態に入る エロゲがMMファイルの値を更新し、いずれ終了する 待機していた…

生粋の窓っ子です

主にC++を使いますがWin32APIのインターフェースとしてしか捉えてないです。 newではなくHeapAlloc、sprintfではなくwsprintf、strstrではなくStrStrな人間です。 int main() { ::MessageBox(NULL, _T("ぼく冷やし中華"), _T("こんにちは!"), MB_ICONWARNIN…

こんにちははてな

これまで生HTMLで書いてきた日記もどきのファイルサイズが巨大で扱いにくくなり、 さらにこちらでは、ソースコードも簡単に扱えると聞いてとんできました。牛歩で。 決して、手書きHTMLをW3Cに準拠させるのがめんどくさくなってきたとか、そんなんじゃないで…