我被困在一项任务中,该任务在于在std::unordered_set
中发现一个漏洞,该漏洞只是在一个周期中简单地在unordered_set<string>
中插入一些字符串:
for (const auto& user : users_list) {
users.insert(user);
}
有关详细信息,请参见full source code。
在UBUNTU上编译的文件如下:
g++ -std=c++14 -O2 -Wall run.cpp -o run
任务是提供使该程序返回非零状态代码的输入。
任何想法在哪里看?提示是有些东西具有默认的哈希功能,并且该程序是在ubuntu上编译的。
听起来您的教授希望您找到并利用哈希碰撞攻击。您必须生成所有哈希值都相同的输入,以便哈希表查找必须使用集合的每个值来strcmp
新值,以在插入之前查看是否存在重复项。