- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一段 C++ 代码来模拟 AODV 网络,其中的恶意节点会进行重放攻击。我需要将它嵌入到我的 OMNet++ 项目中。
我试图在 OMNet++ 中更改示例项目中的原始代码,但我又回到了起点。
很高兴能找到帮助。
我无法包含示例代码,它的字符相当长,如果您需要查看我到目前为止的试验,请告诉我在哪里可以分享我的项目。
最佳答案
由于OP问题缺少一些细节,我将在Wikipedia article's example之后提供一个模拟解决方案。对于重放攻击:
Suppose Alice wants to prove her identity to Bob. Bob requests her password as proof of identity, which Alice dutifully provides (possibly after some transformation like a hash function); meanwhile, Eve is eavesdropping on the conversation and keeps the password (or the hash). After the interchange is over, Eve (posing as Alice) connects to Bob; when asked for a proof of identity, Eve sends Alice's password (or hash) read from the last session, which Bob accepts thus granting access to Eve.
我将通过向 UDPPacket 添加 source 和 destination 字段来创建一个新数据包(扩展 UDPPacket)来满足您的特定应用程序目标:
cplusplus {{
#include "<directory_path_for_the_udp_packet_goes_here>/UDPPacket_m.h" // inheriting the parent class
}}
class ExtendedUDPPacket; // you can call it whatever you want
message ExtendedUDPPacket extends UDPPacket
{
string sourceNode; // name of the sender
string destinationNode; // name of the receiver
}
现在让我们看看给定示例中的 3 个不同角色:
如果我们考虑到每个节点都有一个包含其名称的特定 ID,我们可以为每个角色执行以下操作:
爱丽丝:
void MalAODVRouter::handleMessage(cMessage *msg)
{
ExtendedUDPPacket *eUDPmsg = dynamic_cast<UDPPacket *>(msg);
if (this->myID == eUDPmsg->getDestinationNode()) // myID is "Alice"
{
ExtendedUDPPacket *ExtendedUDPPacket= new UDPPacket();
ExtendedUDPPacket->setSourceAddress(myID.c_str());
ExtendedUDPPacket->setDestinationAddress(std::string("Bob").c_str());
send(udpPacket, "ipOut");
}
}
夏娃:
void MalAODVRouter::handleMessage(cMessage *msg)
{
ExtendedUDPPacket *eUDPmsg = dynamic_cast<UDPPacket *>(msg);
if (this->myID != eUDPmsg->getDestinationNode()) // myID is "Eve"
{
ExtendedUDPPacket *ExtendedUDPPacket= new UDPPacket();
ExtendedUDPPacket->setSourceAddress(std::string("Alice").c_str()); // fake the message
ExtendedUDPPacket->setDestinationAddress(std::string("Bob").c_str());
send(udpPacket, "ipOut");
}
}
鲍勃:
void MalAODVRouter::handleMessage(cMessage *msg)
{
ExtendedUDPPacket *eUDPmsg = dynamic_cast<UDPPacket *>(msg);
if (eUDPmsg->getSourceNode() == 'Alice')
{
ExtendedUDPPacket *ExtendedUDPPacket= new UDPPacket();
ExtendedUDPPacket->setSourceAddress(std::string("Bob").c_str());
ExtendedUDPPacket->setDestinationAddress(std::string("Alice").c_str());
send(udpPacket, "ipOut");
}
}
请记住这是一个模拟实现,您可以添加更智能的条件检查以使应用程序表现得更好。
关于c++ - 如何在 omnet++ 中使用 AODV 协议(protocol)实现重放攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30404458/
我正在尝试在 Raspberry pi 上安装 AODV 协议(protocol)。当我尝试执行“make”时,从“https://github.com/erimatnor/aodv-uu”完成 gi
我正在使用 AODV 路由协议(protocol)在 NS2.35 中运行一些简单的模拟。然而,在某些情况下,我注意到,当我运行模拟足够长的时间时,AODV REQUEST 和 REPLY 消息不会被
我想计算运行时从 NS2 中的节点发送的数据包数。因为我想使用 C++ 更改 AODV 协议(protocol)。有人可以帮助我如何进行吗? 我尝试编辑 aodv.cc 中的 recv() 函数来计算
假设我们在 AODV 协议(protocol)中有一个条件 AODV(MANET 协议(protocol))中的 RREQ(路由请求)数据包继续移动到目的地,即使 TTL=1 的节点已回复路由请求。
我正在基于 ARM 的系统 Sabrelite 上实现临时 AODV 路由协议(protocol) http://boundarydevices.com/products/sabre-lite-imx
我即将在 ARM 板 SabreLite 上实现 AODV,但遇到了一些问题。 因此,我使用位于此处的最新版本的 AODV (sourceforge.net/projects/aodvuu/)。我已按
我正在开展一个研究项目,我将创建一个类似于 AODV 的主动协议(protocol)。从头开始创建协议(protocol)将是一项乏味且耗时的任务,如果我从已经工作的 AODV 实现协议(protoc
我需要一段 C++ 代码来模拟 AODV 网络,其中的恶意节点会进行重放攻击。我需要将它嵌入到我的 OMNet++ 项目中。 我试图在 OMNet++ 中更改示例项目中的原始代码,但我又回到了起点。
我是一名优秀的程序员,十分优秀!