2011-01-07 8 views
1

これらの関数はどのWin32 API呼び出しを使用しますか(もしあれば)?これらの機能を実行するシステムコールはどれですか?

_itoa_s(), strcat_s() 
+0

これらはWin32の機能ではなく、MicrosoftのCRTの一部です。 –

+2

ソース '%programfiles%\ Microsoft Visual Studio 10.0 \ VC \ crt \ src \ xtoa.c'と'%programfiles%\ Microsoft Visual Studio 10.0 \ VC \ crt \ src \ tcscat_s.inl'を見てください。 – dalle

答えて

1

実際には、SetUnhandledExceptionFilter()は1つだけです。 TerminateProcess()が続きます。関数がバッファオーバーフローを検出したときにコードパスにあるもの。これにより、未処理の例外フィルタをフックし、意図的にアクセス違反を引き起こすことによりマルウェアがアクティブになるのを防ぎます。残念なことに、オーバーフローが単純なプログラミングバグによって引き起こされたときにカスタムクラッシュレポートを作成することを非常に困難にしています。コードはvc/crt/gs_report.cにあります。

4

おそらくNONEです。

これらの機能は、MicroSoft セキュアバージョンのC標準itoastrcatです。これらのC関数は、システムライブラリではなくCライブラリの一部です。それらが提供する機能は、システムコールを必要とせずに完全に実装できます。

しかし、結局私は彼らがシステムコールをするかどうか全く考えていません。

+1

これらは、C標準ライブラリのすべての関数ではなく、システムコールなしで実装できます。 – bcsanches

+0

ソースを見ると、両方とも '_SECURECRT__FILL_STRING'マクロを使用しているようです。これは' memset'を呼び出すために展開され、x64で 'RtlFillMemory'を呼び出します。 – dalle

1

デバッガを使用してデバッガにステップインして、デバッガの機能を正確に確認できます。一見すると、彼らはシステムコールをしません。これは私が期待するものです。

1

このような「基本的な」機能がシステムコールを必要とするかどうかは、パフォーマンスの観点からは非常に心配です。私はあなたの質問に決定的な答えを持っていませんが、常識は言うでしょう:なし。

関連する問題