java 中操作系统的名称(不是“os.name”)

2024-06-30

我想知道如何获取 jvm 运行的操作系统类型。它也必须是“安全的”,所以System.getProperty("os.name")这并不是一个真正的选项,因为它可以通过 -D 指令轻松规避。

我所说的“安全”是指不容易被规避。它适用于桌面应用程序。用户始终可以对代码进行反混淆、反编译、编辑和重新编译,但这比将 -D 传递给 jvm 困难得多。我们想让修补变得不平凡,而不是不可能(因为这是不可能做到的)。


首先,不可能保护代码不被运行时环境任意操纵。但为了至少难以欺骗你的支票,最好的选择可能是某种基于文件系统的操作系统指纹识别 http://en.wikipedia.org/wiki/TCP/IP_stack_fingerprinting.

文件.listRoots() http://java.sun.com/javase/6/docs/api/java/io/File.html#listRoots()是你的起点;在类 Unix 系统上,它将返回一个包含特征目录(如 /etc、/usr 等)的根目录。在 Windows 上,它将返回多个结果,但据我所知,操作系统安装驱动器不一定是 C:,并且特征目录不同Windows 版本和区域设置 - 请注意不要假设每个人都运行英文版本的 Vista。

您可以投入大量工作来识别不同版本的 Windows 和 Linux,以及 BSD 或 MacOS,而且一旦编译代码发布,从其中删除检查可能会花费更少的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 中操作系统的名称(不是“os.name”) 的相关文章

随机推荐

  • 保留一组星期几

    我正在寻找一种有效的方法来保留一组星期几 换句话说 用户将从工作日列表中选择任意天数 具体日期并不重要 重要的是星期几 我需要将这组日期存储在休眠实体中 我可以存储其中之一 Set
  • Angular 在 Img 末尾添加额外变量 %E2%80%8B

    http myimage png E2 80 8B 我刚刚复制粘贴了这个图像网址 但它最后添加了一些奇怪的数据 并且图像没有显示 但在代码上它看起来很完美 我尝试过类似 Angular 的东西 var imageSafeUrl this s
  • 使用 mongo-go-driver 将结果转换为不带结构的 JSON

    我不想在将结果转换为 JSON 之前使用结构 假设我有一些结果 result err collection Find ctx filter options 我可以收集所有结果docs变量和最后的结果doc多变的 var doc bson R
  • 如何在 Java 中对密码进行哈希处理?

    我需要对密码进行哈希处理以存储在数据库中 我怎样才能在Java中做到这一点 我希望获取纯文本密码 添加随机盐 然后将盐和散列密码存储在数据库中 然后 当用户想要登录时 我可以获取他们提交的密码 从他们的帐户信息中添加随机盐 对其进行哈希处理
  • 如何在不在 iPython 笔记本中使用离线模式下的plotly进行绘图?

    我需要使用plotly绘制我的数据 但是这段代码没有给我任何结果 我显示我的数据 但没有任何数字 import plotly graph objs as go from plotly offline import download plot
  • LINQ - 与 Group By 结合并获得平均值

    SQL SELECT DeptId avg Marks FROM StudentTb s JOIN StudInDepartment d on s StudentId d StudentId GROUP BY DeptId 转换为 Linq
  • Java 中整数之间的除法

    我需要在Java中执行整数之间的除法 结果应该是浮点数 我可以用吗 它的符号 如 int integer1 1 int integer2 2 float quotient integer1 integer2 Could I do this
  • 如何链接到C 中的静态库?

    我使用 code blocks 来编译我的静态库 输出结果是一个libstatic a文件 现在 如何链接到我的库以使用已编译的函数 我尝试使用 include libstatic a 但我的项目无法编译 cc o yourprog you
  • jQuery淡入淡出重复

    我有一个图像 它希望在加载文档时自动淡入淡出 并且应该完成直到文档关闭 请帮帮我 这会做到这一点 function fader fadeIn slow function fadeItOut function fadeItIn fader f
  • 使用 Android 获取 Firebase 实时数据库中最后一个节点的数组元素

    如下图所示 我有一个数据库 表 名为fridge有一个孩子叫food food是一个可以包含一个或多个元素的数组 我想访问最后一个节点并获取食物元素并将它们添加到列表中 但我不知道该怎么做 感谢您的帮助 您可以按照docs https fi
  • _class 字段和 Spring Data couchbase

    因此 我试图找到一种方法来删除 重命名 并更改字段值 由 spring data couchbase 生成的文档中的 class 字段 因为该文档将由一个服务存储 并且很可能被某人使用完全不同 我正在使用 spring couchbase
  • 我应该根据当前的内部 api 创建公共 api

    我的项目是拥有公共网站和内容管理系统 CMS 我正在使用 Lambda 和 API Gateway 作为 api CMS 当前有一个 api GET 请求来获取下表中的所有数据 横幅 表 属性 id 字符串 主键 分区键 标题 字符串 is
  • lua模块未加载库

    背景信息 我是 lua 的新手 我想了解模块是如何工作的 但我试图将预先存在的模块加载到新脚本中并从命令行运行该脚本 Code 我有一个名为 main lua 模块的文件 看起来像这样 module package seeall Load
  • 在一定时间后自动更改 Firestore 中的字段值 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 I m working on Javascript and here s how s my data looks like 我想要的功
  • 多维向量

    如何创建 2D 矢量 我知道在二维数组中 我可以这样表达 a 0 1 98 a 0 2 95 a 0 3 99 a 0 4 910 a 1 0 98 a 1 1 989 a 1 2 981 a 1 3 987 如何使用 C STL Vect
  • 使用 Passport 进行 Node.js 身份验证:如果字段丢失,如何闪烁消息?

    我正在使用 Passport js 如果我的表单字段为空 我想显示一条消息 但我不知道该怎么做 因为如果缺少护照 则不会触发策略回调 我真的希望这个用例更加清晰 而且我不想修改护照 我感觉有办法 但不知道在哪里 我尝试使用路线的回调 app
  • 谷歌管理的虚拟机上的Websocket端口

    我尝试使用托管虚拟机通过端口 3000 运行 Web 套接字服务器 但我只能通过实例的 IP 连接到它 而不能通过我自己的域或 appspot 域连接到它 当我在端口 80 上访问应用程序时 我得到应用程序在端口 8080 上发送的正确响应
  • 为什么策略的“using”子句用于新行,而“with check”子句则用于更新语句?

    来自 Postgres制定政策 https www postgresql org docs current sql createpolicy html文档 UPDATE 策略接受 USING 表达式和 WITH CHECK 表达式 USIN
  • jquery - 查找仅包含文本而没有任何其他 html 标签的元素

    我需要使用 jquery 检查锚元素中是否只有文本 而不是任何其他标签 img b 或任何其他内容 a href TV a 应该可以找到 但是 a href img a or a href span TV span a 或任何其他 HTML
  • java 中操作系统的名称(不是“os.name”)

    我想知道如何获取 jvm 运行的操作系统类型 它也必须是 安全的 所以System getProperty os name 这并不是一个真正的选项 因为它可以通过 D 指令轻松规避 我所说的 安全 是指不容易被规避 它适用于桌面应用程序 用