问题标签 [signatures]

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 投票
0 回答
72 浏览

file - 文件的哈希签名

我需要创建一个程序,为目录中的每个文件创建哈希签名。我需要输出包含它旁边的文件名和哈希。

这是我到目前为止的代码,它所做的就是给我哈希值。

0 投票
1 回答
57 浏览

c# - 签名模式解析效率

我将二进制文件转换为十六进制字符串,以在其中搜索用户提供的特定模式,就像防病毒软件处理其签名数据库一样。如果找到一个模式,那么它将返回 true。

我面临的一个困难是通配符和扫描速度慢。用户有数千种模式,每个模式最多 200 个字符,甚至更多。

例如,此模式用于验证文件是否在 C++ 下编译,而“?” 字符是一个通配符(可以匹配任何一个字符):

55 8B EC 53 8B 5D 08 56 8B 75 0C 85 F6 57 8B 7D 10 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 01

与那个相似的模式都堆叠在一个长度不等的文件中,所以我想你明白了。

这是我正在使用的代码(工作正常,但与其他在几秒钟内完成模式扫描的工具(如 ExeInfoPE 或 Die)相比非常慢)

关于如何极大地提高速度,同时保持对通配符的支持以便我的工具可以在现实世界中使用的任何想法?

0 投票
2 回答
159 浏览

c++ - 调用模板化类型的不同构造函数签名

我手头有一个模板繁重的代码,其中应该用作用户代码的模板参数的类具有不同的构造函数签名。我的问题是,我还没有找到在我的用户代码中调用模板类的构造函数的好方法。一个最小的工作示例可能如下所示:

这里我在一个库中有两个类,一个有一个长且不相关的构造函数签名,一个有一个短的。我希望能够将它们都用作模板参数。在我的 userClass 中,我必须以某种方式定义要根据传递的类型传递给构造函数的参数。

我不能使用简单的 if() 因为编译器会检查两个签名,一个会出错。我不能将 c++17 用于“if constexpr(){}”。

我可以将模板参数“ShortConstructorInLibrary”传递给我的类并完美地调用它的构造函数,但是当我使用另一个类时,它当然会因构造函数签名错误而失败。到目前为止,我使用了一个丑陋的技巧,我实现了两个辅助方法,我在其中传递一个指针,然后让这两个方法实现构造函数调用,但这对我来说似乎很丑陋。我还摆弄了 std::enable_if<> ,但并没有走得太远。@Mohit 建议使用部分模板特化,但在现实世界的代码中,Short ConstructorInLibrary 类本身是用几个 ...templated 模板参数进行模板化的。给你一个想法:

我认为尝试专门化我的用户代码将是一团糟。

实现可能不同签名的构造函数调用的正确方法是什么?

任何提示将不胜感激!

(ubuntu 16.04, gcc)