草庐IT

热修补

全部标签

android - 防止/使修补二进制程序集变得困难

我不确定术语是否正确,您可以使用哪些代码实践来使某人难以修改二进制文件/程序集以绕过检查:例如在源代码中。boolverificationResult=verify();if(verificationResult){allow_Something();}else{prevent_Something();}如果查看上述代码的反汇编版本的人可以修改“跳转操作码(?)”以运行allow_Something,即使验证结果为假。这里有类似的内容http://www.codeproject.com/Articles/18961/Tamper-Aware-and-Self-Healing-Code#

android - 将文件修补到 system.img 以用于 android 模拟器

我需要将文件打补丁到Android模拟器使用的system.img文件中,特别是我想将ARM二进制文件添加到/system/bin目录。我预编译了这个二进制文件,它在我的模拟器中完美运行,但我不能简单地将system.img重新挂载为rw和adb推送它,因为更改在重新启动后是非持久性的。我在system.img的副本上尝试了这个,并使用-system将它传递给了模拟器,但不幸的是,这是非持久性的。在理想情况下,我想修改“makesdk”过程,以便sdk构建过程在生成system.img时自动包含我的二进制文件。这能做到吗?如果这不可能,是否可以手动将其修补到图像中?非常感谢。

android - AndFix 如何修补方法?

我最近了解到一个Android库AndFix这允许实时方法修补。现在,据我所知,Dalvik不允许运行时操作字节码或dex。有人可以就如何提供一个很好的解释AndFix是否实时修补? 最佳答案 查看源码,可以看到Dalvik的补丁机制here.dalvik_replaceMethod()函数正在修改内部Dalvik状态,更改Method结构以指向替换方法。它不会修改磁盘或内存中的DEX,只是将方法调用路由到替换方法。这种方法是高度依赖于版本的,因为更改Method或方法的工作方式会破坏事情。Dalvik自2011年年中以来没有太大变

android - 如果我向用户发送修补程序,他们会继续从 Play 商店获取更新吗?

假设我有一个用户从Play商店安装的应用程序,如果我的一个用户报告了一个错误,我想向他们发送应用程序的补丁版本进行测试,他们可以将它安装到他们的手机上。但是,如果我随后在Play商店更新应用程序,用户会得到更新吗?我的测试似乎表明是这种情况,但是否存在任何陷阱?我的构建过程的工作方式是,每次我构建时,它都会获得更高版本的代码,因此修补后的版本将具有比当前在Play商店中的版本更高的版本代码,然后是我上传到Play的版本在向我的用户发送补丁后存储该补丁将再次具有更高版本的代码。 最佳答案 我在这里做了一个相当大胆的猜测,但它应该有效,

c# - API/WMI 查询系统上安装的修补程序和更新的完整列表?

以前,如何查询安装在Windows系统上的修补程序列表是discussed,并且建议使用WMI和类Win32_QuickFixEngineering来提供信息。然而MSDN表示从Vista开始,这个特定的类只返回修补程序,而不是通过其他方式安装的更新。Anolderquestion讨论了使用此类来获取已安装的更新,表明由于我上面描述的限制,作者也不满意使用它。不幸的是,正如对已接受答案的评论所指出的那样,使用WindowsUpdateAgentAPI的替代解决方案仍然会指示已安装修补程序,即使随后已将其删除(它正在查询安装历史记录,而不是当前安装的更新).有谁知道如何在C#中(通过WM

ruby - 猴子修补对象产生奇怪的结果

我正在破解一个to_hash到Object(我并不是说这是个好主意,只是一个实验)。当我遇到一个奇怪的问题时,IO停止工作。#lib/object.rbclassObjectdefto_hashself.instance_variables.inject({}){|hash,var|hash[var.to_s.delete("@")]=self.instance_variable_get(var);hash}endend#run_test1.rbrequire_relative'lib/Object'require'FileUtils'puts'runtest'#run_test2.r

c - Hook - 热修补

我正在尝试HookWindowsAPI函数FindWindowA()。我成功地使用下面的代码完成了它,而没有对其进行“热修补”:我已经覆盖了函数开头的字节。调用myHook()并在调用FindWindowA()时显示一个消息框。user32.dll启用了热修补,我想在实际函数之前覆盖NOP,而不是覆盖函数本身。但是,当我将热修补设置为TRUE时,下面的代码将不起作用。当FindWindowA()被执行时,它什么都不做。#include#includevoidmyHook(){MessageBoxA(NULL,"Hooked","Hook",MB_ICONINFORMATION);}in

windows - 安全更新和修补程序的注册表项位置

在我的应用程序中,我想查询Windows框中的安全更新和修补程序。为此,我查询了HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall除windows2008server和windows7以外的操作系统上一切正常...当在Windows2008服务器计算机上运行appwiz.cpl时,它会显示大量修补程序和安全更新,但它们在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows中没有任何条目\CurrentVersion\Uninstall。Windows似乎更改了

python - 我如何区分和修补/merge 字符串而不是文件?

我正在从事一个项目,人们可以在其中提交故事并让其他人做出贡献。我不想简单地编辑数据库中的条目,而是希望存储人们所做的更改,而不是整个新的更改集。如果人们想恢复到以前的版本,我可以动态应用差异。我还可以轻松地向编辑者用户展示修改后的文本,以便他们可以直接跳转到更改部分。我知道如何获取差异文件并用它们修补其他文件。但我正在用Python和Django制作一个网络应用程序,我会将所有这些差异存储在MySQL数据库中。鉴于性能不是这个应用程序的主要问题,我准备从数据库中提取数据,生成文件,然后在这些文件上运行gitdiff和patch.每次我想创建新版本或应用新差异时,是否有比构建新文件并删除

python - 猴子修补 Django 表单类?

给定一个表单类(在你的巨型Django应用程序的某个深处)..classContactForm(forms.Form):name=...surname=...考虑到您希望在不扩展或修改表单类本身的情况下向该表单添加另一个字段,为什么以下方法不起作用?ContactForm.another_field=forms.CharField(...)(我的第一个猜测是Django使用的元类hackery仅在第一次构造表单类时适用。如果是这样,是否有重新声明该类的方法来克服这个问题?) 最佳答案 一些相关的定义出现在django/forms/f