一个简单的cobol程序需要重新编码为C ++程序,以读取通过包装安全软件传递的环境变量

时间:2009-04-10 08:32:59

标签: c++ cobol

我有一个COBOL exe程序调用COBOL dll,后者又使用dos中断'x91调用COBOL程序 - 调用程序使用'x91'来激活EXE文件,就好像它是作为操作键入的一样系统命令行输入。包装我的cobol代码的安全程序是第三方程序,它包含了我的程序。作者建议我的程序读取环境变量以确保安全性没有被黑客入侵。我一直无法让我的cobol读取变量,所以我认为用C编写程序,可以读取变量。所有现在的程序都是创建一个小的顺序文件,写一个记录并关闭文件 - 为了安全起见,我将程序包装在第三方安全软件中,它生成我想要验证的变量以允许程序进行将记录与安全检查的内容写入传递或未传递。调用程序(cobol dll)然后测试文件是否存在,读取记录并验证安全代码是否已写入文件。

COBOL程序需要转换为C ++,因为安全包装代码的作者说他不能与cobol可执行文件连接。

  • 目前的程序很小
  • 它所做的只是创建一个小的顺序平面文本文件,向其写入一条记录,然后写入记录并关闭该文件。
  • 程序需要检查由安全程序生成的某些“环境”变量的存在和值,该程序包装生成文件的小程序,并在包装​​程序运行时运行。

例如,变量“LICENSE”返回当前使用的许可证的名称。谢谢你的任何意见。

安全软件的作者无法提供一个小的可执行文件来检查他的变量,因此我希望从头创建一个可以模拟的 我所指的小cobol程序(读取安全程序的环境变量包装和保护我的小程序,创建一个文件,写一条记录,其内容取决于环境变量的值,然后关闭 文件)。这样,调用DLL将接收由'x91'调用执行的小程序写入的文件到操作系统(需要用C ++而不是现在的Cobol编码),验证其内容,并允许是否进行的主要计划。主要软件包括500多个程序,我已经从大型机遗留代码移植到PC。我曾经使用加密狗,但我的客户讨厌他们,因为他们干扰了他们的打印机......

激活新的小包装程序的DOS调用将适用于任何可执行程序,因此它确实不是问题。

3 个答案:

答案 0 :(得分:2)

我对COBOL一无所知,但是使用它来读取Windows环境变量here有非常明确的说明。

看了之后,我很高兴我对COBOL一无所知。

答案 1 :(得分:1)

有些观点:

  • 我真的不认为您的代码是由“DOS中断”执行的,因为您无法使用Windows,而您的问题暗示您正在使用Windows。顺便说一下,请添加SO标签来表明这一点。
  • 你说它无法读取环境变量,但是调用应用程序(用同一种语言编写)可以创建它们吗?这似乎也不太可能。
  • 您希望在代码中的哪个位置读取环境变量&你想用它做什么?

作为一种快速解决方案,我建议让包装代码将环境变量值写入文件然后读取。如果您真的需要C或C ++解决方案,则必须澄清您的问题。

编辑:请注意,StackOverflow是一个回答编程问题的网站 - 它不是一个为您提供免费软件的网站。如果问题就像你说的那么容易(并且需要C解决方案,我仍然不相信),请雇用C程序员半天来编写它。

答案 2 :(得分:1)

由于我们不是都在这里说COBOL,并且代码相当小,因此编写一些解释COBOL功能的伪代码可能符合您的最佳利益。

我可能可能在Perl中找到一个完全符合你想要的内容,但目前我还不确切知道你做什么想要什么,所以我无法帮助你。(即使你 想要一个Perl-one-liner;)