Java:访问计算机内存中的内存对象,成员和信息(使用Reflection?)

时间:2014-04-17 15:57:58

标签: java memory reflection memory-address

博士。 Gamut的评论:

  

"这里是销售和购买历史项目的字符串数据的存储位置,粗体的偏移是唯一需要调整的。出售:[[[[[[[ffxiv.exe + F8EBE0] +20] +18] +84] +20] + 32C]]价格+0总计+4数量+8镇+ C保留+10下一个价钱+14购买历史[[[[[[[ffxiv.exe + F8EBE0] +20] + 1C] +84] +20] + AFC]]价格+0数量+4买家+8时间+ C下个商品价格+14我将在我自己的独立应用程序上工作以供私人使用,但是将这样的功能集成到已经广泛使用和信任的程序中可以真正使社区受益。"

我想使用Java访问此内存位置。我创建了一个FFXIV市场分析器,并且到目前为止: - 接收项目的输入(名称,描述,个人笔记,此项目的组成部分,项目,此项目的组成部分,当前价格和历史价格基于高/常规质量) - 从数据文件中保存并加载所述输入。 - 分析数据,为您提供当前平均价格,数量和总价格。 - 分析数据,为您提供平均历史个人价格,数量,总吉尔价格,平均购买时间和每小时平均交易价格。分析工具没有问题,但获取信息是繁琐和重复的。如何访问此内存以使输入系统自动化?

我听说Reflection可以给我一个对象及其成员,但是如何从主计算机访问内存?

2 个答案:

答案 0 :(得分:0)

Reflection用于获取对Class,Method和Constructor对象(以及其他对象)的引用。基本上,您正在访问有关已加载类的元数据。它不用于从内存或磁盘中检索数据。

答案 1 :(得分:0)

您无法访问主内存。你不能用Java做到这一点,无论如何,大多数操作系统都会禁止它,无论使用哪种语言。如果你可以“访问”一些内存,这将是一个很大的安全问题。

并且:无论你想做什么,访问“一些记忆”都是一个非常糟糕的主意。像Java这样的语言可以隐藏类似的东西 - 因为这是一个坏主意。有时您必须访问内存地址,例如开发驱动程序或某些操作系统设施时。也许是其他硬件相关的任务。但我认为在你的情况下(收集一些价格数据)这是完全错误的方式。

顺便问一下,谁是Gamut博士?