草庐IT

Collection-hooks

全部标签

c++ - 从注入(inject)的 DLL Hook DirectX EndScene

我想从任意DirectX9应用程序中绕过EndScene以创建一个小的叠加层。例如,您可以使用FRAPS的帧计数器覆盖,激活时会在游戏中显示。我知道以下方法可以做到这一点:创建一个新的d3d9.dll,然后将其复制到游戏路径。由于首先搜索当前文件夹,在转到system32等之前,我修改后的DLL被加载,执行我的附加代码。缺点:你必须在开始游戏之前把它放在那里。与第一种方法相同,但直接替换system32中的DLL。缺点:您无法添加游戏专用代码。您不能排除不希望加载DLL的应用程序。使用IDAPro4.9Free等工具直接从DLL获取EndScene偏移。由于DLL是按原样加载的,所以你

c++ - 如何在 C/C++ 中 Hook Windows 函数?

如果我有一个Windows已在kernel32.dll中实现的函数foo()并且它总是返回true,我可以让我的程序:“bar.exe”Hook/绕行那个Windows函数和让它为所有进程返回false吗?因此,例如,如果我的svchost调用foo(),它将返回false而不是true。当前正在运行的所有其他进程都应该执行相同的操作。如果是这样,怎么做?我想我正在寻找一个系统范围的钩子(Hook)或其他东西。 最佳答案 看看Detours,非常适合这种东西。对于系统范围的Hook,请阅读thisarticle来自MSDN。首先,创

MongoDB 1.6.5 : how to rename field in collection

$rename功能仅在开发版本1.7.2中可用。1.6.5如何重命名字段? 最佳答案 执行此类操作的最简单方法是循环遍历数据集重新映射字段名称。最简单的方法是编写一个执行重写的函数,然后在shell中使用.find().forEach()语法。这是一个来自shell的示例:db.foo.save({a:1,b:2,c:3});db.foo.save({a:4,b:5,c:6});db.foo.save({a:7,b:8});db.foo.find();remap=function(x){if(x.c){db.foo.update({

MongoDB 1.6.5 : how to rename field in collection

$rename功能仅在开发版本1.7.2中可用。1.6.5如何重命名字段? 最佳答案 执行此类操作的最简单方法是循环遍历数据集重新映射字段名称。最简单的方法是编写一个执行重写的函数,然后在shell中使用.find().forEach()语法。这是一个来自shell的示例:db.foo.save({a:1,b:2,c:3});db.foo.save({a:4,b:5,c:6});db.foo.save({a:7,b:8});db.foo.find();remap=function(x){if(x.c){db.foo.update({

garbage-collection - 有没有办法在收集 Go 结构时释放非托管资源?

我有一个指向由Go结构包裹的C类型的指针,如下所示:typeWrapperstruct{unmanaged*C.my_c_type}C类型又具有以下功能:my_c_type*make_c_type();voidfree_c_type(my_c_type*ct);有没有一种方法可以确保在Wrapper实例完成时调用free_c_type? 最佳答案 您可以使用runtime.SetFinalizer.这允许您在对象超出范围时运行清理功能。不保证运行。但是,在释放内存时,这并不重要。重要的是,对于一个长时间运行的进程,它可能会控制垃圾。

garbage-collection - 如何最小化 Go 中的垃圾收集?

有时您可能希望避免/最小化垃圾收集器,所以我想确定如何去做。我认为下一个是正确的:在函数开头声明变量。使用数组代替slice。还有吗? 最佳答案 要最小化Go中的垃圾收集,您必须最小化堆分配。为了尽量减少堆分配,您必须了解分配发生的时间。以下事情总是会导致分配(至少在Go1的gc编译器中):使用new内置函数使用make内置函数(少数不太可能的极端情况除外)当值类型是slice、映射或带有&运算符的结构时的复合文字将大于机器字的值放入接口(interface)。(例如,字符串、slice和某些结构比机器字大。)string、[]by

garbage-collection - Go 使用什么样的垃圾收集器?

Go是一种垃圾收集语言:http://golang.org/doc/go_faq.html#garbage_collection这里说它是一个标记和清除垃圾收集器,但它没有深入研究细节,并且正在开发替代品......然而,自从Go出现以来,这一段似乎没有太多更新发布。它仍然是标记和清除?它是保守的还是精确的?是世代相传的吗? 最佳答案 Go1.4+垃圾收集器的计划:混合stop-the-world/并发收集器在10毫秒的最后期限内停止世界部分专用于运行并发收集器的CPU内核三色标记和扫描算法非代际非压缩完全精确如果程序四处移动指针会

java - 如何在Java中测试JSON Collection对象是否为空

我收到的JSON集合对象如下所示:[{"foo1":"bar1","foo2":"bar2","problemkey":"problemvalue"}]我要测试的是problemvalue的存在。如果problemvalue返回一个JSON对象,我很高兴。如果没有,它将以{}的形式返回。我如何测试这种情况?我已经尝试了几件事,但无济于事。这是我迄今为止尝试过的://if(obj.get("dps")==null){//didn'twork//if(obj.get("dps").equals("{}")){//didn'tworkif(obj.isNull("dps")){//didn'

linux - git中钩子(Hook)的符号链接(symbolic link)

我编写了自己的自定义merge后钩子(Hook),现在我在我的主项目文件夹中添加了一个“钩子(Hook)”目录(因为git不跟踪.git/hooks中的更改),我在某处读到我可以创建一个符号从钩子(Hook)链接到.git/hooks所以我不必每次有人更改文件时都将文件从一个文件夹复制到另一个文件夹,所以我尝试了:ln-s-fhooks/post-merge.git/hooks/post-merge但它似乎不起作用,任何想法为什么?“lnhooks/post-merge.git/hooks/post-merge”工作正常,但我猜制作硬链接(hardlink)与copyin相同....

python - Python中的多级 'collection.defaultdict'

感谢SO上的一些伟大人物,我发现了collections.defaultdict提供的可能性,特别是在可读性和速度方面。我已经成功地使用了它们。现在我想实现三个级别的字典,最高的两个是defaultdict,最低的一个是int。我找不到合适的方法来做到这一点。这是我的尝试:fromcollectionsimportdefaultdictd=defaultdict(defaultdict)a=[("key1",{"a1":22,"a2":33}),("key2",{"a1":32,"a2":55}),("key3",{"a1":43,"a2":44})]foriina:d[i[0]]=i