1

私は、DOS割り込み「x91」を使用してCOBOLプログラムを呼び出すCOBOL dllを呼び出すCOBOL exeプログラムを持っています - 呼び出し元プログラムは「x91」を使用して、オペレーティングシステムのコマンドラインとして入力されたかのようにEXEファイルをアクティブにしますエントリ。私の COBOL コードをラップするセキュリティ プログラムは、私のプログラムをラップするサード パーティ プログラムです。著者は、私のプログラムが環境変数を読み取って、セキュリティがハッキングされていないことを確認することを提案しました。cobol に変数を読み取らせることができなかったので、C でプログラムを作成すると、変数を読み取ることができると考えました。現在のプログラムが行っていることは、小さなシーケンシャル ファイルを作成し、それに 1 つのレコードを書き込んでファイルを閉じることだけです。セキュリティのために、サード パーティのセキュリティ ソフトウェアでプログラムをラップしています。そして、検証したい変数を生成して、プログラムがセキュリティチェックの内容を合格または不合格としてレコードを書き込むことができるようにします。呼び出しプログラム (cobol dll) は、ファイルの存在をテストし、レコードを読み取り、セキュリティ用のコードがファイルに書き込まれているかどうかを検証します。

COBOL プログラムは C++ に変換する必要があります。これは、セキュリティ ラッピング コードの作成者が、cobol 実行可能ファイルとのインターフェイスができないと言っているからです。

  • 現在のプログラムは小さい
  • 小さなシーケンシャル フラット テキスト ファイルを作成し、そこに 1 つのレコードを書き込んでから、そのレコードを書き込んでファイルを閉じるだけです。
  • プログラムは、ファイルを生成する小さなプログラムをラップし、ラップされたプログラムの実行中に実行されるセキュリティ プログラムによって生成される特定の「環境」変数の存在と値をチェックする必要があります。

たとえば、変数「LICENSE」は、現在使用されているライセンスの名前を返します。ご意見ありがとうございます。

セキュリティ ソフトウェアの作成者は、変数をチェックするための小さな実行可能ファイルを提供できませんでした。そのため、私が参照している小さな cobol プログラムをエミュレートするものをゼロから作成しようとしています (セキュリティ プログラム ラッピングの環境変数を参照してください)。私の小さなプログラムを保護し、ファイルを作成し、それに 1 つのレコードを書き込みます。その内容は環境変数の値に依存し、ファイルを閉じます)。このようにして、呼び出し元の DLL は、オペレーティング システムへの「x91」呼び出しによって実行される小さなプログラムによって書き込まれたファイル (現在の Cobol ではなく C++ でコーディングする必要があるファイル) を受け取り、その内容を検証し、次のいずれかを許可します。続行するかどうかのメインプログラム。メイン ソフトウェアは、メインフレームのレガシー コードから PC に移植した 500 以上のプログラムで構成されています。

新しい小さなラップされたプログラムをアクティブにする DOS 呼び出しは、どの実行可能プログラムでも機能するので、実際には問題になりません..

4

3 に答える 3

2

私は COBOL について何も知りませんが、COBOL を使用して Windows 環境変数を読み取るためのかなり明確な手順がここにあります

それを調べてみると、私はCOBOL について何も知らなくてよかったと思っています。

于 2009-04-10T19:04:11.287 に答える
1

いくつかのポイント:

  • Windowsでは使用できないため、コードが「DOS割り込み」によって実行されているとは本当に思いません。質問は、使用していることを意味します。ところで、これを示すために SO タグを追加してください。
  • 環境変数を読み取ることはできませんが、呼び出し元のアプリケーション (同じ言語で記述されている) は環境変数を作成できると言っていますか? これもありそうにありません。
  • コードのどこで環境変数を読みたいですか?それで何をしたいですか?

簡単な解決策として、ラッピング コードで環境変数の値をファイルに書き出してから読み取ることをお勧めします。本当に C または C++ のソリューションが必要な場合は、質問を明確にする必要があります。

編集: StackOverflow はプログラミングに関する質問に答えるサイトであり、フリー ソフトウェアを提供するサイトではないことに注意してください。問題があなたが言うほど簡単な場合 (そして、C の解決策が必要であり、私はまだ確信が持てません)、C プログラマーを半日雇って書いてください。

于 2009-04-10T08:42:56.507 に答える
1

ここでは全員が COBOL を話すわけではなく、コードもかなり小さいので、COBOL が何をするかを説明する疑似コードを書くことはおそらくあなたの最善の利益になるでしょう。

おそらく、あなたが望むことを正確に実行するPerlのワンライナーを見つけることができますが、現時点では、あなたがを望んでいるのか正確にはわからないため、あなたを助けることはできません. -一発ギャグ ;) )

于 2009-04-10T08:52:34.267 に答える