Adversarial C2 Protocol Implemented in Zig
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Remove prints

-15
-3
src/Client.zig
··· 30 30 @memcpy(msg_target_bytes, msg_bytes); 31 31 var msg_target: *align(1) SaprusMessage = try .bytesAsValue(msg_target_bytes); 32 32 try msg_target.networkFromNativeEndian(); 33 - std.debug.print("{x}\n", .{writer.buffer[0..writer.end]}); 34 33 try writer.flush(); 35 34 } 36 35 ··· 56 55 }; 57 56 58 57 try sock.bind(bind_addr); 59 - 60 - std.debug.print("{x}\n", .{msg_bytes}); 61 58 62 59 _ = try sock.sendTo(dest_addr, msg_bytes); 63 60 }
-9
src/NetWriter.zig
··· 64 64 65 65 _ = try ether_headers.write(&buf_w); 66 66 _ = try ip_headers.write(&buf_w); 67 - std.debug.print("after ip: {x}\n", .{buf_w.buffered()}); 68 67 _ = try udp_headers.write(&buf_w); 69 - std.debug.print("after udp: {x}\n", .{buf_w.buffered()}); 70 68 71 69 break :blk buf; 72 70 }; ··· 74 72 _ = try w.wrapped.write(&headers); 75 73 const total_len = try w.wrapped.writeSplatHeader(w.interface.buffered(), data, splat); 76 74 77 - std.debug.print("total splat: {}\theaders.len: {}\tsplat: {}\n", .{ total_len, headers.len, splat }); 78 - 79 75 try w.wrapped.flush(); 80 76 return total_len - w.interface.consumeAll(); 81 77 } 82 - 83 - // fn flush(io_w: *Writer) Writer.Error!void { 84 - // const w: *NetWriter = @alignCast(@fieldParentPtr("interface", io_w)); 85 - // try io_w.defaultFlush(); 86 - // } 87 78 88 79 const EthernetHeaders = struct { 89 80 dest_mac: @Vector(6, u8),
-2
src/RawSocketWriter.zig
··· 8 8 socket: gcat.nic.RawSocket, 9 9 10 10 fn drain(io_w: *std.Io.Writer, data: []const []const u8, splat: usize) Writer.Error!usize { 11 - std.debug.print("in drain\n", .{}); 12 11 const w: *RawSocketWriter = @alignCast(@fieldParentPtr("interface", io_w)); 13 12 const rem_buf = io_w.unusedCapacitySlice(); 14 13 var rem_w = Writer.fixed(rem_buf); 15 14 const res = rem_w.writeSplat(data, splat) catch rem_buf.len; 16 15 io_w.advance(res); 17 16 const buffered = io_w.buffered(); 18 - std.debug.print("buffer: {x}\n", .{buffered}); 19 17 w.socket.linkLayer().send(buffered) catch return error.WriteFailed; 20 18 _ = io_w.consumeAll(); 21 19
-1
src/main.zig
··· 59 59 if (r.len > 0) r else "Hello darkness my old friend", 60 60 dest, 61 61 ); 62 - // std.debug.print("Sent: {s}\n", .{r}); 63 62 return; 64 63 } else if (res.args.connect) |c| { 65 64 if (false) {