当前位置: 首页 > 面试题库 >

JNA-获取基本地址

曾沛
2023-03-14
问题内容

最近,我一直在从事我的一个小项目,该项目是使用Java为本地游戏(C / C ++ / etc)进行内存读取/写入。

目前,我有一个可以读写游戏内存的基址,但是现在我需要一种方法来获取正在运行的应用程序的基址。例如:

我有使用作弊引擎及其指针搜索器收集的指针列表。这些是稳定的,并且在每次游戏重新加载时都能正常工作。

我现在面临的问题是,第一个指针使用程序的基址(每次重新启动程序时都会更改):“ ac_client.exe” + 000DF73C

我需要一种使用JNA获取“ ac_client.exe”基本值的方法。

我已经做了大量研究,发现了几种用C 进行处理的方法,但是我对C / C

的了解非常有限。我发现很难使用JNA将其转换为Java,我想在这里问一下,看看是否有人能够提供帮助或知道执行此壮举的其他方法。

谢谢您的提前帮助,Kaden。

[编辑]

阅读下面的解决方案!谢谢您的帮助。


问题答案:

在弄乱了Alex发布的内容之后,我开始工作了,并设法使其工作。

对于其他想要获得类似效果的人,请看一下Alex发布的那个项目,您会看到所需的必修课。然后我就用这个:

public int getBaseAddress() {
        try {
                Pointer hProcess = gethProcess();
                List<Module> hModules = PsapiHandler.getInstance().EnumProcessModules(hProcess);

                for(Module m: hModules){
                        if(m.getFileName().contains(exeName)){
                                misc.log(m.getFileName() + ": 0x" + Long.toHexString(Pointer.nativeValue(m.getEntryPoint())));
                                return Integer.valueOf("" + Pointer.nativeValue(m.getLpBaseOfDll()));
                        }
                }
        } catch (Exception e) {  e.printStackTrace(); }
        return -1;
}


 类似资料:
  • 问题内容: 我的机器上运行了一个简单的node.js程序,我想获取运行该程序的PC的本地IP地址。如何使用node.js获得它? 问题答案:

  • 我检查了下面的代码以获取ipv6地址,这段代码返回了全局单播地址,比如“2001:x:x…”。但我想获得链接本地地址,比如“fe80:…”。如何使用以下代码获取链接本地地址?

  • 问题内容: 我想获取计算机的IP地址。我使用了下面的代码,但是返回了。 我想获取IP地址(例如),而不是回送地址。 问题答案: 您需要遍历所有网络接口 播放(取自util / helper.go)

  • 问题内容: 我不是指 127.0.0.1 而是其他计算机将用来访问该计算机的计算机,例如 192.168.1.6 问题答案: http://nodejs.org/api/os.html#os_os_networkinterfaces

  • 问题内容: 获取我的本地主机IP地址。但这给了我答案。如果我知道的话。 我需要我的“真实” IP地址(例如192.168.xx)来修改配置文件。我怎么能得到? 问题答案: 我通常使用以下代码: 我不知道它的起源,但是它可以在Linux / Windows上运行。

  • 问题内容: 我有一个存储在系统时间UTC中的mysql值。我需要将其转换为我在Django的本地时区。这是我目前拥有的: 我如何将last_updated值设为本地时区=“ America / Los Angeles”? 问题答案: 时区的Django文档记录了将对象转换为适当时区以进行显示的所有必要详细信息。 您的数据存储在UTC中,这很好。当您从数据库中获取字段对象时,它将是一个天真的对象。即