问题标签 [hotpatching]
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.
assembly - 有人知道“mov edi,edi”是做什么的吗?
mov edi,edi
对我来说没有意义,这是为了什么?
.net - 如何为 .NET dll 创建 Hotpatchable Image?
我已经了解了使用Windows Hotpatching功能无需重新启动即可更新 Windows Server OS 的能力。MSDN 说可以通过一个简单的 switch为 VC++ 项目启用热补丁。
.NET 项目是否有类似的开关/设置?如果不是,是否可以使用外部工具进行操作?
c++ - 在函数末尾添加 N 个字节数以进行热补丁
是否可以在函数末尾添加 N 个字节数?
我的简单想法是添加以下代码:
还有其他方法吗? (使用代码、编译器或其他方法)
我需要它来热补丁功能。我有一个有一些 IF 语句的函数,该函数每秒被调用 10 次或更频繁。所以,为了提高性能,我需要少做一些检查,比如“我需要执行那个代码吗?”。IF 语句中的布尔值不会经常更改(我会说很少)。我也想实现,如果我不需要执行一些代码,我不需要检查。
c++ - 计算热补丁/内联函数挂钩的偏移量
来自http://lastfrag.com/hotpatching-and-inline-hooking-explained/,
Q1)代码是否从高内存进入低内存,反之亦然?
Q2)更重要的是,在计算replacement offset的过程中,为什么要减去函数前导码?是因为偏移量是从指令的结尾而不是开头开始的吗?
完整代码:
Q3) 在这段代码中,jmp 指令的相对地址被替换了;relAddrSet 是指向原始目的地的指针;to 是指向新目的地的指针。我不明白to地址的计算,为什么你必须将原始目的地添加到functionForHook + opcodeOffset?
c++ - x64 MOV、JMP 指令使程序崩溃
我正在学习如何修补功能,并且我有以下代码在 32 位程序中运行良好。但是,我试图让它在 64 位程序中也能工作,但它只是崩溃了。
任何想法代码有什么问题?
c++ - 热补丁后如何调用原始函数
我编写了代码来修补“睡眠”功能,例如来自 Kernel32.dll。修补工作得很好。补丁的删除工作得很好。但是,调用原始函数根本不起作用。它崩溃得很厉害。
任何想法我的代码缺少什么?
c - 挂钩 - 热补丁
我正在尝试挂钩 Windows API 函数 FindWindowA()。我用下面的代码成功地做到了,没有“热补丁”它:我已经覆盖了函数开头的字节。调用 myHook() 并在调用 FindWindowA() 时显示一个消息框。
user32.dll 启用了热补丁,我想在实际函数之前覆盖 NOP,而不是覆盖函数本身。但是,当我将热补丁设置为 TRUE 时,下面的代码将不起作用。当 FindWindowA() 被执行时它什么也不做。
你能告诉我有什么问题吗?
谢谢你。
javascript - 如何在发布后更新长寿命页面上的 javascript/css 资产?
假设一个站点有多个长期存在的应用程序,是否有一些简单的策略可以在生产中热交换 javascript/css 代码?
我看到一些网站(例如关键跟踪器)显示一个横幅,上面写着“有更新,请刷新”。理想情况下,该解决方案更像是开发环境中的实时更新。类似的东西还存在吗?
c - 挂钩框架(Detours-like)
我正在寻找一个 C 库/框架,它允许我替换内存中的函数并将它们重定向到我自己的实现,同时仍然允许我的实现调用原始实现。
这在 Linux 系统上似乎是一个相当罕见的需求,大概是因为 LD_PRELOAD 涵盖了运行时功能替换事物的大部分方面。