お世話になります。ぴー子と申します。
勉強のため、あるDDKを使ったサンプルプログラムをビルドしようと
思っているのですが、以下のエラーがでてビルドできず困っています。
■エラー
link : error LNK2001: unresolved external symbol _mainCRTStartup
error LNK2019: unresolved external symbol _printf referenced in function
_FunctionName@8
error LNK2019: unresolved external symbol _memmove referenced in function _main
rror LNK2019: unresolved external symbol _system referenced in function _main
サンプルコードは、.cファイルとmakefile、sourcesが添付されていて、makefileと
sourcesの中身は以下のようになっています。
また、ダウンロードした他の方はうまくビルドできているようです。
■makefile
!INCLUDE $(NTMAKEENV)\makefile.def
■sources
TARGETNAME=Sample
TARGETPATH=obj
TARGETTYPE=PROGRAM
SOURCES=Sample.c
UMTYPE=console
UMBASE=0x00400000
TARGETLIBS= \
$(DDK_LIB_PATH)\ntdll.lib
私が実行した手順と環境は、以下の通りです。
■手順
1.DDKをインストールします。
2.[スタート]-[Windows Driver Kits]-[WDK 6001.18002]-[Build Environments]-
[Windows Vista]-[Windows Vista and Windows Server 2008 x86 Checked Build
Environment]を起動します。
3.サンプルプログラムのフォルダに移動します。
4.Buildコマンドを実行します。
5.上記のエラーが発生します。
■環境
・Windows Vista
・DDK 6001.18002
・VS 2005
もし分かる方がいらっしゃいましたら、アドバイスをお願いいたします。
エラーを見る限りでは、なにかヘッダーファイルが足りませんね。
サンプルの入手先で必要なファイルの確認をしたほうがいいですね。
DDKのサンプルはインストール時にコピーされるサンプルが信頼性が高いです。
ネットからのは信頼性低いです。
勉強のためならなおさらネットからサンプルを拾うのはやめたほうがいいです。
TARGETTYPE=DRIVER
に変更して見ましょう。
返信ありがとうございます。
sourcesファイルのTARGETLIBSにLIBCMT.libファイルを追加することで
ビルドできました。
>DDKのサンプルはインストール時にコピーされるサンプルが信頼性が高いです。
>ネットからのは信頼性低いです。
>勉強のためならなおさらネットからサンプルを拾うのはやめたほうがいいです。
サンプルは、Exploitコードに関するプログラムで、DDKサンプルではありません。
説明足らずで申し訳ありません。
内容がないようだけに、ネットに頼るしかないので・・・。
>TARGETTYPE=DRIVER
実際に作成されるファイルは、ドライバファイルではなく
実行ファイルなので、PROGRAMとなっています。
ありがとうございました。
>Exploitコードに関するプログラム
悪用できるコードもあるんで選ばないといけないね。
DDKの付属のサンプルでフィルタドライバーがあるんで勉強しておくといいかも。
悪用しないようにしましょう。
解決をチェックしていなかったので、チェックします。