问题标签 [base-address]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
103 浏览

vb.net - 通过 Visual Basic 代码查找程序的基地址

我正在使用 Visual Studio 2019 - Visual Basic。

我正在尝试通过代码查找程序的基地址。我已经知道基址,但我需要我正在制作的程序自己找到它。

我使用它,它显示了来自模块的很多地址:

(我从上面的代码中重命名了程序的名称,以防程序出现版权问题。)

我正在尝试获取基地址 我的基地址是:

当我运行上面的代码时,它列出的地址都不是我拥有的基地址。

我使用 PE 编辑器查看程序的基地址。我使用了一个来自 GitHub的名为PE Tools的程序。

那么如何编码来获取这个图像基地址呢?

0 投票
1 回答
140 浏览

x86 - PCI I/O BAR 地址 - 32 位还是 16 位?

我目前正在开发操作系统,并且正在尝试实现 PCI。具体来说,我正在尝试实现一个 RTL8139 驱动程序,但细节并不重要。无论如何,据我所知,我应该使用 I/O 而不是内存映射来寻址不同的寄存器,而且我在理解一件事时遇到了一些麻烦:

PCI 配置空间中的基地址寄存器为32 位宽。据我了解,x86 I/O 总线使用16 位端口号。除了配置它们并使用该地址之外,我似乎找不到如何正确使用 BAR 的解释,知道这一点,这是没有意义的。我知道需要对齐 4(对于 I/O),但我不确定如何使用这些地址。我应该只使用低 16 位吗?我还需要做一些其他的操作吗?

如果可以澄清这一点,我将不胜感激。提前致谢。

0 投票
0 回答
41 浏览

c# - 过早访问 MainModule 的问题.. (C#)

好的,这就是它的长短,这是一个困扰我一段时间的问题。我写了一些启动游戏进程的东西,然后为了继续应用程序所做的事情(它用于修改目的),它需要暂停进程并访问 MainModule 以检索进程的 BaseAddress - 不幸的是,这似乎“有时”,但并不总是导致 Win32 异常,可能是因为 MainModule 访问得太早了。(但是,出于我正在编写的工具的目的,我需要尽早访问它以在启动太远之前应用游戏修复..)

这是我正在使用的当前代码,我最初认为检查 MainModule 是否为 null 可以避免整个问题(事实上,自从我写这篇文章以来我还没有亲自遇到过)但是我的一个测试人员有时会遇到if 语句上的 Win32Exception ..

如果没有 if 语句和 while 循环,如果我只是完全暂停进程,那么当它到达 baseAddress 时,无论如何都会发生相同的异常,就像我能说的一样。在我的代码的更早的迭代中,我这样做了:

实际上,它会尝试扫描 BaseAddress,如果遇到异常,它会进入 catch 块,恢复(先前)暂停的进程,等待一个滴答声,然后再次暂停它并循环回到自身并尝试再次执行所有操作,希望最终接近它可以访问 MainModule 并且一切都很好的点.. 我的意思是.. 是的,这有效,但这似乎是解决这个问题的可怕“解决方案”,感觉就像是对 try\catch 的令人讨厌的滥用而且只是笨拙的编码。在 MainModule 准备好之前肯定有某种方法可以循环,而不会导致异常..?

来自事件查看器的异常

0 投票
0 回答
17 浏览

c# - 使用依赖注入模式更改 Xamarin.Forms 中 HttpClient 的 urlbase

我正在使用 Xamarin.Forms 为 UWP 和 Android 开发应用程序。使用依赖注入模式 (DI),我注册了一个 HttpClient 服务来管理与应用程序中具有可配置 IP 地址的后端的连接。在 App.xaml.cs 中:

在登录页面中,由于我的开发要求,我有一个“条目”组件来编辑我的后端的 URL。在 LoginPage ViewModel 中,我得到了服务

而他们,我设置了用户在“条目”上介绍的 url 基础

这可行,但问题是如果我在使用 HttpClient 注入服务执行一些请求后返回此 LoginPage 并尝试再次设置 UrlBase,它会引发异常:

是否有任何方法或不同的方法来重新注入/重新启动服务,以便我可以重新映射 urlbase?

注意:我想继续使用 DI,避免使用“使用”为每个调用创建不同的 HttpClient 实例。另外,我想使用 UrlBase 属性,而不是在每个请求中输入完整路径。