aris-wiz の回答履歴
- 実験に使えるsyn flood攻撃ツールをご存知であれば教えて頂けないでしょうか。
こんにちわ。いつもお世話になっております。 前々から取り組んできたsyn flood攻撃を検知するプログラムが、皆々様のお力をお借りして、先ほどようやく完成する事が出来ました。 そこで、早速実験してみようとhpingを攻撃ツールとして用いたのですが、syn flood攻撃ツールの代用は出来ませんでした。 てっきり、オプション(-S)で指定すればいけるかと思っていたのですが甘かったようです。 仕方なくネットで他の攻撃ツールを探してみたものの、ついぞ見つけることが出来ませんでした。 どなたかご存知であればご教授頂けないでしょうか。どうぞよろしくお願いします。
- 正しい結果が表示されない
以下のプログラムはガウスの消去法を使って 解を求めるプログラムです。 しかし、gauss関数にprintf関数を入れてコンパイルすると 正しい結果 5 3 1 0 0 がでますが、gauss関数にprintf関数をいれずmain関数に書くと 0 0 0 0 0 となります。 なぜでしょうjか?? #include<stdio.h> #include<math.h> #define N 5 void gauss(double a[N][N+1]); int main(){ double a[N][N+1] = { { 1,-1,-1,-1,-1, 1}, {-1, 1,-1,-1,-1,-3}, {-1,-1, 1,-1,-1,-7}, {-1,-1,-1, 1,-1,-9}, {-1,-1,-1,-1, 1,-9} }; double x[N]; int i; gauss(a); printf("\n[x]=\n"); /* x[i] を表示する */ for(i=0; i<N; i++){ printf(" %8.3lf\n", x[i]); } return(0); } void gauss(double a[N][N+1]) { int i,j,k,p; double m, pmax, s, x[N]; for(k = 0; k < N-1; k++){ /* ピボット操作 */ p = k; /* p, pmax の初期値 */ pmax = fabs(a[k][k]); for(i = k+1; i < N; i++){ /* 最大値を検索 */ if(fabs(a[i][k]) > pmax){ p = i; pmax = fabs(a[i][k]); } } if(fabs(pmax) < 1.0e-12){ /* 最大値がゼロに近い時はエラー */ fprintf(stderr, "too small pivot!\n"); exit(1); } if(p != k){ /* ピボット操作 */ for(j = 0; j < N+1; j++) { s = a[k][j]; /* 値の入れ替え */ a[k][j] = a[p][j]; a[p][j] = s; } } for(i = k+1; i < N; i++) { /* 第 i 行 */ m = a[i][k] / a[k][k]; /* 倍率 m を計算 */ a[i][k] = 0; /* 注1 (下記参照) */ for(j = k+1; j < N+1; j++) { /* 第 j 列 */ a[i][j] = a[i][j] - a[k][j] * m; } } } for(i = N-1; i >= 0; i--){ /* 後退代入 */ m = 0; for(j = N-1; j > i; j--){ m = m + a[i][j] * x[j]; } x[i] = (a[i][N] - m) / a[i][i]; } }
- 16進数入力制限方法
いつもお世話になっております。 今回はEDITボックスの入力制限方法についてお聞きしたいです。 現在、あるプログラムで、EDITボックスに16進数で入力する欄を作っています。 今の状態では、入力後ボタンを押したときに一文字ずつチェックして一つでも失敗すればエラーを返すのですが、 できればEDITボックスに0~9、a~f、A~F以外の文字を入力しようとしても無視するように(無反応に)したいです。 EDITボックスをサブクラス化すればできそうですが、もっとスマートにできると思って探してみましたが見つけられませんでした。 何か方法があればご教授願いたいです。 環境はWindowsXP,VC6.0 使えるのはSDK,ATL/WTL,STLです。 以上、よろしくお願いします。
- C++DLLの明示的リンクに関して
DLLを明示的リンク(LoadLibraryとGetProcAddressを使用して)で使うとき、C言語では、関数名がそのまま利用できますが、C++では、オーバーロード機能があるため、関数名が変化してしまいます。C++でDLLを明示的リンクで使用するにはどうしたら良いのですか?
- ベストアンサー
- C・C++・C#
- cyacya2000
- 回答数10
- C++DLLの明示的リンクに関して
DLLを明示的リンク(LoadLibraryとGetProcAddressを使用して)で使うとき、C言語では、関数名がそのまま利用できますが、C++では、オーバーロード機能があるため、関数名が変化してしまいます。C++でDLLを明示的リンクで使用するにはどうしたら良いのですか?
- ベストアンサー
- C・C++・C#
- cyacya2000
- 回答数10
- C++DLLの明示的リンクに関して
DLLを明示的リンク(LoadLibraryとGetProcAddressを使用して)で使うとき、C言語では、関数名がそのまま利用できますが、C++では、オーバーロード機能があるため、関数名が変化してしまいます。C++でDLLを明示的リンクで使用するにはどうしたら良いのですか?
- ベストアンサー
- C・C++・C#
- cyacya2000
- 回答数10
- スキャン集合に関して
#include <stdio.h> int main() { char str[128]; printf("文字列を入力してください>\n"); scanf("%[^\n]" , str); printf("入力された値 = %s\n" , str); can_kansu(str); return 0; } int can_kansu(char *sp) { char strs[128]; printf("%sとは違う文字を入力して下さい。\n", sp); scanf("%[^\n]" , strs); printf("入力された値 = %s\n" , strs); return (0); } このプログラムでは、mainでは正常に入力表示が可能なのに、can_kansuにいくと勝手に入力、表示され、しかもその文字は文字化けして表示されてしまいます。 <実際の入力例> 文字列を入力してください> kkk 入力された値 = kkk kkkとは違う文字を入力して下さい。 入力された値 = �p "kkkとは違う文字を入力して下さい。"の所で入力出来ずにつぎに勝手に進んでしまい、入力されている文字はこの通りです。 原因は何でしょうか?scanfのスキャン集合に原因があるのでしょうか?
- このプログラムは
どこかおかしいですか? int main(void){ FILE *str; char buf[1000]; if((fp=fopen("ファイル名","r"))=NULL){ printf("ファイルが開けません"); return EXIT_SUCCESS; } while(fgets(buf,1000,fp) !=NULL){ str=buf; printf("%s",buf); } return EXIT_SUCCESS; } で実行すると前半4割程度が表示されません。 何故だかわかる人いませんか? 使用言語:C言語 環境:visualC++6.0 のコンソールアプリケーション。
- このプログラムは
どこかおかしいですか? int main(void){ FILE *str; char buf[1000]; if((fp=fopen("ファイル名","r"))=NULL){ printf("ファイルが開けません"); return EXIT_SUCCESS; } while(fgets(buf,1000,fp) !=NULL){ str=buf; printf("%s",buf); } return EXIT_SUCCESS; } で実行すると前半4割程度が表示されません。 何故だかわかる人いませんか? 使用言語:C言語 環境:visualC++6.0 のコンソールアプリケーション。
- このプログラムは
どこかおかしいですか? int main(void){ FILE *str; char buf[1000]; if((fp=fopen("ファイル名","r"))=NULL){ printf("ファイルが開けません"); return EXIT_SUCCESS; } while(fgets(buf,1000,fp) !=NULL){ str=buf; printf("%s",buf); } return EXIT_SUCCESS; } で実行すると前半4割程度が表示されません。 何故だかわかる人いませんか? 使用言語:C言語 環境:visualC++6.0 のコンソールアプリケーション。
- スキャン集合に関して
#include <stdio.h> int main() { char str[128]; printf("文字列を入力してください>\n"); scanf("%[^\n]" , str); printf("入力された値 = %s\n" , str); can_kansu(str); return 0; } int can_kansu(char *sp) { char strs[128]; printf("%sとは違う文字を入力して下さい。\n", sp); scanf("%[^\n]" , strs); printf("入力された値 = %s\n" , strs); return (0); } このプログラムでは、mainでは正常に入力表示が可能なのに、can_kansuにいくと勝手に入力、表示され、しかもその文字は文字化けして表示されてしまいます。 <実際の入力例> 文字列を入力してください> kkk 入力された値 = kkk kkkとは違う文字を入力して下さい。 入力された値 = �p "kkkとは違う文字を入力して下さい。"の所で入力出来ずにつぎに勝手に進んでしまい、入力されている文字はこの通りです。 原因は何でしょうか?scanfのスキャン集合に原因があるのでしょうか?
- スキャン集合に関して
#include <stdio.h> int main() { char str[128]; printf("文字列を入力してください>\n"); scanf("%[^\n]" , str); printf("入力された値 = %s\n" , str); can_kansu(str); return 0; } int can_kansu(char *sp) { char strs[128]; printf("%sとは違う文字を入力して下さい。\n", sp); scanf("%[^\n]" , strs); printf("入力された値 = %s\n" , strs); return (0); } このプログラムでは、mainでは正常に入力表示が可能なのに、can_kansuにいくと勝手に入力、表示され、しかもその文字は文字化けして表示されてしまいます。 <実際の入力例> 文字列を入力してください> kkk 入力された値 = kkk kkkとは違う文字を入力して下さい。 入力された値 = �p "kkkとは違う文字を入力して下さい。"の所で入力出来ずにつぎに勝手に進んでしまい、入力されている文字はこの通りです。 原因は何でしょうか?scanfのスキャン集合に原因があるのでしょうか?
- DirectXのバージョンの違い
OSはwindows xpを使ってます。 DirectXを使おうと思いダウンロードページを見た所、「Microsoft DirectX SDK (Mar 2008) 」が最新のバージョンとの事です。 そこで、いくつか疑問点があるので質問させてもらいます。 ・最新という事は、これがDirectX10ですか? ・このSDKで作ったアプリはwindows2000で動きますか? ・日本語ヘルプが「october 2004」以降出てないようですけど、最新のバージョンに対応した日本語ヘルプはまだ出てないのでしょうか? 出てないのでしたら、「october 2004」がヘルプとして使えるバージョンはいつの物になりますか? どうかよろしくお願いします。
- ベストアンサー
- C・C++・C#
- sankaku197
- 回答数2
- マルチスレッドのスレッド数を増やしたい
<プログラム環境> Windows XP VC++6.0 MFC AppWizard(exe) ダイアログベース <質問概略> CWinThread*を使って無限ループのスレッドを作ったのですが、 無限ループのスレッドをもう一つ作り、同時に実行しようとするとアクセスバイオレーションのエラーでます。 複数スレッドの作り方を教えていただけますと幸いです。 <質問詳細> 現状の正常に実行できるソースの必要最小限を書きます。 <.h> class CMyDlg : public CDialog{ public: static UINT ThreadFunc( LPVOID pParam ); void Thread(); // スレッドの処理 protected: CWinThread* m_pThread;//スレッドのアドレス }; <.cpp> void CMyDlg::OnButton(){ m_pThread = AfxBeginThread( ThreadFunc, this ); for(;;) /*無限ループ処理1*/ ; } UINT CMyDlg::ThreadFunc( LPVOID pParam ){ ((CMyDlg*)pParam)->Thread(); return 0; } void CMyDlg::Thread(){ for(;;) /*無限ループ処理2*/ ; } これに、 void CMyDlg::Thread2(){ for(;;) /*無限ループ処理3*/ ; } のようなスレッドを追加したいのですが全然出来ません。 宜しければご指摘お願い致します。
- DirectX開発中のinclude ファイルを開けません。
DirectX開発中に c:\documents and settings\a022\my documents\visual studio 2008\projects\map\map\stdafx.h(10) : fatal error C1083: include ファイルを開けません。'WinLib.h': No such file or directory MapModel.cpp 上のソースコードは、 #ifdef _MSC_VER // 警告の抑制 #pragma warning(disable: 4201) #pragma warning(disable: 4100) #pragma warning(disable: 4786) #endif #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x400 #endif #include <WinLib.h> ←ここがよめないらしい というエラーが出ます。 解決法がわかる方はお教えください。
- GetSaveFileNameで初期ディレクトリを設定したい(Windows Mobile)
ファイルをセーブ、ロードするにあたってGetSaveFileNameを使用しているのですが初期ディレクトリが設定できなくて困ってます。 OPENFILENAME ofn; ofn.lpstrInitialDir = L"\\Storage Card\\test001\\";で Location:には「Storage Card」が入るのですがFolder:に「test001」が入りません(test001フォルダは存在しています) L"\\Storage Card\\test001"と指定すると「test001」はファイル名として認識されてしまいます。 L"\\Storage Card\\test001\\file.txt"と指定すると設定できますがファイル名までは設定したくないです。 環境は、、、 開発 vc++ win32スマートデバイスプロジェクト SDK Windows Mobile 5.0 Pocket PC VGA Emulator です。 よろしくお願いします。
- ファイルクローズとメモリ使用率について
100Mを超えるファイルを扱っています。 中のデータは突合せ処理に使用しており、何度もファイルの頭から最後まで読み込みます。 サイズがサイズなので、指定バイト数分取り出し、読み終わったら次の指定バイト数分取り出すといったことをやっております。 この処理を繰り返しますと、メモリの使用量がどんどん増大してしまいます。 ファイルの最後まで読み終わった後、一旦ファイルクローズして、読み直しているのですが、メモリが開放された気配はありません。 どのようにすれば、メモリ使用量を増やさずに処理することができますか? ご教授お願いします。 ファイルのオープン/クローズには、 fopen_s() fclose() ファイルの中身を取得する際には fread() を使用しております。 メモリの使用量はタスクマネージャで確認しています。
- ドキュメントエクスプローラでヘルプが表示できない!?
高度な質問ばかりの中で非常に恥ずかしいのですが、タイトルにあるようにヘルプが表示できずに困っております。 先日Turbo C++ ExplorerをインストールしたのですがTurboCのヘルプはおろかPSDKや.NETのヘルプドキュメントも表示ができません。 ヘルプファイルそのものは存在しているようなのですがドキュメントエクスプローラにD&Dしても表示できずファイルメニュー等でも"開く"が見当たりませんでした。googleで拡張子HXS等を調べてみたのですが求める情報は得られませんでした。もしかして…ものすごく常識的な設定等をしていないのではないか??とも思うのですが…知恵を拝借させて頂けると幸いです。 当方の環境 Win2000SP4 / IE6 / TurboC ExplorerとPrereqJP.zipをインストール /ドキュメントエクスプローラ7.0
- directshowでAVIファイルが再生が出来ません…
Directshowを用いて動画を再生しようと試みています。 Direct sdkとplarformの両方を入れて、インクルードパスとライブラリパスを通しました。 ビルドしてもエラーは無いので某所のシンプルなソースでデバッグ無しで開始をクリック。 すると、再生が終わらないようにメッセージBlock Executionが表示されるものの肝心の動画が映りません。 プログラムはしっかりと動いているはずですが、、 動画aviはMSMPEG4V2です。Directshowのコーデックで動くとのことです。何がおかしいのか、さっぱりです。 環境はwindowsXP visual studio2005 DirectxSDK2008 microsoft platform(しっかりDirectshowフォルダは存在します) ここまで来たなら設定ミスは無いとは思いますが、(設定ミスがあれば、開けない等エラーが出ると思いますので) どうかお願い致します。 サンプルソース ↓ #include <stdio.h> #include <dshow.h> #define FILENAME L"C:\\Documents and Settings\\057104\\My Documents\\homerun2.avi" int main() { IGraphBuilder *pGraphBuilder; IMediaControl *pMediaControl; // COMを初期化 CoInitialize(NULL); // FilterGraphを生成 CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (LPVOID *)&pGraphBuilder); // MediaControlインターフェース取得 pGraphBuilder->QueryInterface(IID_IMediaControl, (LPVOID *)&pMediaControl); // Graphを生成 pMediaControl->RenderFile(FILENAME); // 再生開始 pMediaControl->Run(); // 再生中にプログラムが終わってしまわないように MessageBox(NULL, "Block Execution", "Block", MB_OK); // 資源を解放 pMediaControl->Release(); pGraphBuilder->Release(); // COM終了 CoUninitialize(); return 0; }
- ベストアンサー
- C・C++・C#
- noname#189082
- 回答数4