Skip to content

Commit

Permalink
Fix UDP checksum
Browse files Browse the repository at this point in the history
  • Loading branch information
xfangfang committed May 26, 2024
1 parent 8558b2e commit 23a9e35
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
8 changes: 4 additions & 4 deletions src/exploit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1026,10 +1026,10 @@ int Exploit::stage4() {

// Calculate checksum
std::vector<uint8_t> temp(udpLayer.getHeaderLen());
V16(temp, 0, udpHeader->portSrc);
V16(temp, 2, udpHeader->portDst);
V16(temp, 4, udpHeader->length);
V16(temp, 6, 0);
(*(uint16_t *) &(temp)[0]) = udpHeader->portSrc;
(*(uint16_t *) &(temp)[2]) = udpHeader->portDst;
(*(uint16_t *) &(temp)[4]) = udpHeader->length;
(*(uint16_t *) &(temp)[6]) = 0;
temp.insert(temp.end(), this->stage2_bin.begin(), this->stage2_bin.end());
uint16_t checksumRes = pcpp::computePseudoHdrChecksum(temp.data(),
temp.size(),
Expand Down
2 changes: 1 addition & 1 deletion tests/extern.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#include <EndianPortable.h>

#define COPY_TO_BUFFER(buffer, packet) \
memcpy(buffer, packet.getRawPacket()->getRawData(), size), packet.getRawPacket()->getRawDataLen()
size < packet.getRawPacket()->getRawDataLen() ? 0 : memcpy(buffer, packet.getRawPacket()->getRawData(), packet.getRawPacket()->getRawDataLen()), packet.getRawPacket()->getRawDataLen()

#ifndef htole64
#define htole64
Expand Down

0 comments on commit 23a9e35

Please sign in to comment.