【问题标题】:Is it possible to inspect the command line arguments passed to an VB6 app from outside the app是否可以检查从应用程序外部传递给 VB6 应用程序的命令行参数
【发布时间】:2012-05-28 07:12:25
【问题描述】:

我有一个 VB6 应用程序,它在 VB6 中有一个许可模块,用于检查经过身份验证的用户。如果身份验证成功,此应用程序将使用身份验证信息调用主应用程序。现在,我想通过命令行参数以加密格式将信息从许可应用程序传递到主应用程序。主应用程序将读取命令行参数并检查用户是否经过身份验证。主应用需要认证,用户可以直接打开主应用,无需授权即可使用。

我担心这种方法的安全级别。在 Web 应用程序中,我们可以使用 fiddler 等各种工具来检查和查看 Web 应用程序发出的请求/响应。 是否有工具可以让用户检查或查看传递给/从 VB6 应用程序传递的命令行参数?

【问题讨论】:

  • 有趣但与VB6没有直接关系的问题
  • 正在运行的进程的命令行对任何应用程序都是可见的。然后,用户可以在任务管理器和进程资源管理器中看到它。
  • 任务管理器只显示 Vista 及更高版本的信息。

标签: security vb6 command-line-arguments piracy-prevention piracy-protection


【解决方案1】:

Process Monitor 是一个可以看到这一点的工具示例。命令行参数将与 exe 的完整路径一起显示在详细信息列中。 从Windows Vista 开始,这些值也可以在任务管理器中显示。

【讨论】:

    【解决方案2】:

    是的,在 VB6 中,您可以使用Command$ 来查看命令行参数,类似地,几乎所有的编程语言和技术都有这样的命令/工具来查看命令行参数。可以用他/她自己的 exe 替换您的 exe,然后打印(如 MessageBox)命令行参数。

    现在,您可以更改问题的标题或发布新问题,以获取有关安全模型的一些建议。最好先google一下这个模型和其他好的模型的风险

    编辑

    如果您的意思是“在应用程序之外”,那么我认为替换 exe 会起作用,前提是有人具有这样的访问权限,即她/他可以用他/她自己的替换您的应用程序的 exe,这只会转储参数。

    【讨论】:

    • 这不是 OP 所要求的。他想知道您是否可以检查从应用程序外部传递给应用程序的命令行参数。
    • @MattWilko 虽然我看不到“在应用程序之外”这样的提示,否则你是对的。
    • 是的,我的意思是“在应用程序之外”。更新了问题的标题。谢谢@Matt Wilko
    • @bjan 替换 exe 和打印命令行参数的好方法。我想不出这个简单的技巧。
    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2010-11-13
    • 2010-09-30
    • 2011-02-16
    相关资源
    最近更新 更多