カーネルの修正 まずシステムコールに名前を付け、一意の番号を割り当てます。linux/include/asm/unistd.hファイルを見ていくと、以下のような記述があります。(バージョンにより異なり ます。) #define __NR_exit 1 #define __NR_fork 2 ... #define __NR_vfork 190 ここで、追加するシステムコールを後続の空き番号に追加します。形式は、 #define __NR_システムコール名 システムコール番号 と記述します。例えば追加するシステムコール名が「mysyscall」ならば、以下のように 記述します。 #define __NR_mysyscall 191 次に、linux/arch/i386/kernel/entry.Sファイルを修正します。以下のような テーブルが入っているはずです。(
UNIX の関数群の説明です。関数にはシステムコールとライブラリ関数があります。システムコールとは、 各プログラムが OS の提供する機能を利用するための関数で、これが呼ばれると UNIX のカーネルが処理を行い実行します。一方、ライブラリ関数には2つのタイプがあり、 最終的にはシステムコールを呼び出すもの。直接システムコールを使うより便利な造りになっている 文字列操作や計算をおこないメモリ領域を操作するだけで、OS の提供する機能を使わないものがあります。簡単に言うと、ライブラリ関数というのは「便利だから、よかったら使ってね」というもので、システムコールは「〜したいならこれを使うしかないよ」というものです。例えば、open・read・write はシステムコールです。一方、fopen・fread・fgets などは、ライブラリ関数です。どちらの関数の機能も「ファイルの読み書きを行うこと」
ダウンロード この「仲介DLL生成補助ツール」は、EXEファイルとDLLファイルの仲介を行う偽物のDLLを作成、補助するツールです。さらに、任意のDLLのエクスポート関数を列挙することも可能です。当ツールはコンソールプログラムなので、コマンドプロンプトから実行してください。 任意のDLLのエクスポート関数の列挙 任意のDLLのエクスポート関数の列挙方法は、コマンドプロンプトから以下のように入力します。listexport.exeはC:\以下に保存されているとします。おなじフォルダに任意のDLL(kernel32.dllなど)をコピーしてください。 C:\>listexport kernel32.dll 序数: 0001 名前: ActivateActCtx 序数: 0002 名前: AddAtomA 序数: 0003 名前: AddAtomW 序数: 0004 名前: AddConsole
C/C++によるWin32API /* 2007/3/25 プログラムは4年ぐらい引退していましたが、復帰することになりましたので、リハビリとしてこのサンプル集を見直して再度、公開しました。見直す際にはWindowsXP+(Borland C++ Compiler 5.5とVisualC++5.0)で確認しました。このサンプル群は6年前に私がC/C++の勉強のために作成したものですが、なんせ「C/C++を勉強しはじめた4ヶ月程度のコーディング」のままなので仕事などで利用する際にはエラー処理やメモリ解放などきっちりとしたほうがよいところが多々あると思います。ですが、情報としてはそれなりに有益かとおもいますので、改変しながらつかってやってください。皆様のお役に立てれば幸いです。 一括ダウンロード:papy's softwarelibraryからダウンロード */
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く