about summary refs log tree commit diff stats
path: root/data/maps/the_lively
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-08-16 17:06:47 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-08-16 17:06:47 -0400
commit27724f813befb37f8767bdc084a2bf9c580701d7 (patch)
tree0c90392bbeb92bbfe4d6434bd195ed89ad3b55b6 /data/maps/the_lively
parentc88f4184eaa48efbdc69e76eb3c8a4a206434ad3 (diff)
downloadlingo2-archipelago-27724f813befb37f8767bdc084a2bf9c580701d7.tar.gz
lingo2-archipelago-27724f813befb37f8767bdc084a2bf9c580701d7.tar.bz2
lingo2-archipelago-27724f813befb37f8767bdc084a2bf9c580701d7.zip
Minor changes for compiling on Windows
Diffstat (limited to 'data/maps/the_lively')
0 files changed, 0 insertions, 0 deletions
.highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#include <libwifi.h>

#include <pcap.h>

#include <bits/types/struct_timeval.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>

pcap_dumper_t *filedumper = NULL;

void create_write_rtscts() {
    printf("[*] Creating RTS Frame\n");
    struct libwifi_rts rts = {0};
    unsigned char transmitter[6] = "\x00\x20\x91\xAA\xBB\xCC";
    unsigned char receiver[6] = "\xFF\xFF\xFF\xFF\xFF\xFF";
    libwifi_create_rts(&rts, transmitter, receiver, 32);

    printf("[*] Writing RTS Frame to pcap\n");
    struct pcap_pkthdr pkt_hdr = {0};
    struct timeval tv = {0};
    pkt_hdr.caplen = sizeof(struct libwifi_rts);
    pkt_hdr.len = sizeof(struct libwifi_rts);
    gettimeofday(&tv, NULL);
    pkt_hdr.ts = tv;
    pcap_dump((unsigned char *) filedumper, &pkt_hdr, (const unsigned char *) &rts);

    printf("[*] Creating CTS Frame\n");
    struct libwifi_cts cts = {0};
    libwifi_create_cts(&cts, receiver, 32);

    printf("[*] Writing CTS Frame to pcap\n");
    memset(&pkt_hdr, 0, sizeof(struct pcap_pkthdr));
    memset(&tv, 0, sizeof(struct timeval));
    pkt_hdr.caplen = sizeof(struct libwifi_cts);
    pkt_hdr.len = sizeof(struct libwifi_cts);
    gettimeofday(&tv, NULL);
    pkt_hdr.ts = tv;
    pcap_dump((unsigned char *) filedumper, &pkt_hdr, (const unsigned char *) &cts);
}

void helpexit() {
    fprintf(stderr, "[!] Usage: ./generate_beacon --file <file.pcap>\n");
    exit(EXIT_FAILURE);
}

int main(int argc, char **argv) {
    pcap_t *handle = NULL;
    char errbuf[PCAP_ERRBUF_SIZE] = {0};
    FILE *pcapfile = NULL;

    if (argc < 2) {
        helpexit();
    }
    if (strcmp(argv[1], "--file") == 0) {
        pcapfile = fopen(argv[2], "w+");
        if ((handle = pcap_open_dead(DLT_IEEE802_11, BUFSIZ)) == NULL) {
            fprintf(stderr, "[!] Error opening dead capture (%s)\n", errbuf);
            exit(EXIT_FAILURE);
        }
        if ((filedumper = pcap_dump_fopen(handle, pcapfile)) == NULL) {
            fprintf(stderr, "[!] Error opening file %s (%s)\n", argv[2], errbuf);
            exit(EXIT_FAILURE);
        }
    } else {
        helpexit();
    }

    printf("[+] Setup Complete\n");

    create_write_rtscts();

    pcap_dump_close(filedumper);
    pcap_close(handle);
    return 0;
}