草庐IT

c - 手动修补遗留服务器上的 Ghost 漏洞

我有一个遗留的RedhatES3.x服务器(由于不受支持的古老应用程序的限制,我无法在以后的发行版上安装)并且我正在尝试手动修补glibc以解决Ghost漏洞。根据Qualys(http://www.openwall.com/lists/oss-security/2015/01/27/9)的分析,修改glib源代码以处理堆栈/堆溢出问题似乎应该很容易。但我想多看几眼我的程序,看看我是否遗漏了什么,等等。这是我所做的。首先,我从SRPM构建并准备了glib源代码树:rpm-ivhglibc-2.3.2-95.50.src.rpmrpmbuild-bp/usr/src/redhat/SPE

c++ - 运行时进程内存修补以恢复状态

我正在寻找一种方法来存储进程内存,并在以后在某些条件下恢复它。...其实我已经阅读过有关它的问题...这似乎是一个很大的挑战!所以,让我们分析一下:应用程序是分布式的,但许多进程是无状态的(向中央服务器请求它们的状态)。进程使用网络连接和共享内存与其他进程进行通信。中央服务器应通过转储其进程内存来保存其状态,稍后应在某些条件下恢复。(1)我知道ReadProcessMemory和WriteProcessMemory允许进程读取自身并覆盖已分配的内存的函数,不是吗?所以,我需要的是我开始读/写的地址,以及要读/写的字节数。那么...什么地址?我读过的许多代码都使用VirtualAlloc

python - Patch - 修补类引入了一个额外的参数?

第一次使用补丁。我试图修补我的一个类进行测试。如果没有尝试运行的补丁程序可以通过测试函数定义,但是有了补丁程序,测试函数定义显然需要另一个参数,我得到了一个TypeError:testAddChannelWithNamePutsChannel()takesexactly1argument(2given)错误。测试代码如下:importunittestimportmockfromnotification.modelsimportChannel,addChannelWithName,deleteChannelWithNameclassTestChannel(unittest.TestCas

python - 如何修补/模拟 logging.getlogger()

我有这段代码要测试:log=logging.getLogger(__name__)classA(object):def__init__(self):log.debug('Init')但我不知道如何断言log.debug是用'Init'调用的我尝试修补记录器,但检查它我只发现了一个getLogger模拟。我确定它很简单,但我就是想不通!提前感谢您的任何帮助! 最佳答案 您可以在实际的日志记录对象上使用patch.object()。这可以让您验证您是否也在使用正确的记录器:logger=logging.getLogger('path.t

python - 修补函数的 __call__

我需要在测试中修补当前日期时间。我正在使用这个解决方案:def_utcnow():returndatetime.datetime.utcnow()defutcnow():"""Aproxywhichcanbepatchedintests."""#anotherlevelofindirection,becausesomemodulesimportutcnowreturn_utcnow()然后在我的测试中,我会执行以下操作:withmock.patch('***.utils._utcnow',return_value=***):...但今天我想到了一个想法,我可以通过修补函数utcnow的

python - 如何用 mock 修补模块的内部功能?

“内部函数”是指从定义它的同一模块中调用的函数。我正在使用mock库,特别是patch装饰器,在我的单元测试中。它们是Django单元测试,但这应该适用于任何python测试。我有一个具有多个功能的模块,其中许多功能相互调用。例如(虚构代码,忽略缺少的decimal.Decimal):TAX_LOCATION='StateName,UnitedStates'defadd_tax(price,user):tax=0ifTAX_LOCATION=='StateName,UnitedStates':tax=price*.75return(tax,price+tax)defbuild_cart

python - 你能用闭包修补*只是*一个嵌套函数,还是必须重复整个外部函数?

我们使用的第3方库包含一个相当长的函数,该函数在其中使用了嵌套函数。我们使用该库会触发该函数中的错误,我们非常希望解决该错误。不幸的是,库维护者的修复速度有点慢,但我们不想必须fork库。在他们解决问题之前,我们也无法暂停发布。我们更愿意在这里使用猴子补丁来解决这个问题,因为这比修补源更容易跟踪。然而,重复一个非常大的函数,仅仅替换内部函数就足够了,这感觉有点过分,而且让其他人更难看到我们究竟改变了什么。我们是否被库蛋的静态补丁困住了?内部函数依赖于关闭一个变量;一个人为的例子是:defouterfunction(*args):definnerfunction(val):returns

mongodb - 我控制修补程序上的 Mongo 错误

我尝试从我的2008R2服务器启动mongod.exe,但我收到此错误:ICONTROLHotfixkb2731284oralaterupdateisnotinstalled,willzero-outfiles.我没有找到任何更新或我控制什么,有人遇到过这个问题吗?谢谢。 最佳答案 好吧,我刚刚遇到了同样的问题。我安装了修复程序,但只看到同样的错误。这就是我克服它的方法:只需在你的C目录中创建一个文件夹结构,如下所示:C:\data\db。所以它非常适合我。我使用的是Windows7x64。

Ruby:猴子修补字符串类

我有点困惑为什么下面这段代码真的有效:String.instance_evaldo#selfissettoString[:readlink,:symlink?,:expand_path].eachdo|method|#selfisstillStringdefine_method(method)do#selfisstillStringFile.send(method,self)#whatexactlyisthisself?endendend"asdf".expand_path#=>"C:/users/some_user/asdf"我不明白为什么最后一行会这样。当定义了每个方法时,方法的主

ruby-on-rails - 如何猴子修补 Rails 附带的 rake 任务?

我刚刚在Rails附带的一个rake任务中发现了一个错误。有没有办法给rake任务打补丁? 最佳答案 是的。你可以这样做:Rake::Task['doc:app'].clear然后定义自己的任务namespace:docdotask:appdo#workyourmagicendend 关于ruby-on-rails-如何猴子修补Rails附带的rake任务?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c