[Violent Python for Hackers]常用工具收集整理
admin
2023-07-31 01:45:12
0

0:常用工具

#后面的三个工具无法安装,原因目前不知,后面用来时再寻找解决方法
pip install python-nmap python-bluez bluetooth python obexftp

#pycrypto是一个非常强大的加密解密module,对于信息的加密和破解是需要经常用到的
pip install pycrypto   #在windows下,安装报错后,需要安装一个VCForPython27.msi的软件即可,详细看安装的报错信息

#在windows下import crypt,发现找不到此module,发现只在linux系统下Python才自带有此模块
crypt.crypt(word, salt) #这个module只有这一个函数

1:Python基础

#导入自己写的module
import sys
sys.path.append(\"C:/pyqt/chap02\") #把我们写的module路径添加到了path路径,这里我们就可以import自己写的module了
#data type 
port=23
banner=\"hello hacker\"
type(port)
type(banner)
banner.upper()
banner.lower()
banner.replace(\"old\",\"new\")
banner.find(\"hacker\")

#list 
portlist=[]
portlist.append(22)
portlist.append(80)
print portlist
portlist.sort() #对portlist进行排序 
pos=portlist.index(80)
portlist.remove(443)
print portlist
cnt=len(portlist)

#dictionary
services={\"ftp\":21,\"ssh\":22,\"smtp\":25,\"http\":80}
services.keys() # return list
services.items()  #change to tuple couple
services.has_key(\"ftp\")  #true or false
services[\"ftp\"]  # return value

2:Networking部分

import socket
socket.setdefaulttimeout(2) #2秒时长没有收到想要的数据长度,就返回了socket.timeout 异常
s=socket.socket() #创建一个socket对象
s.connect((\"8.8.8.8\",21))
ans=s.recv(1024) #从服务器接收 1024个数据 ,如果在2秒内,没有接收完,就会返回 socket.timeo9ut异常 
    

3: Python简单异常处理

try:
    3/0
except:
    print \"3/0 is illegal\"

#下面是除0后,得到的ZeroDivisionError
>>> 3/0
Traceback (most recent call last):
  File \"\", line 1, in 
ZeroDivisionError: integer division or modulo by zero

#异常处理可以保证,程序出错后,自动处理错误,程序可以接着运行下
#没有异常处理,程序会由于这些异常直接退出
    
#查看异常类型:
try:
    15/0
except Exception, e:
    print \"Error\"+str(e)
        
    
#socket中使用异常处理
import socket
socket.setdefaulttimeout(2)
s=socket.socket()
try:
    s.connect((\"8.8.8.8\",21))  #  成功后,不会运行except部分
except Exception,e:
    print \"error\"+str(e)       #  connect失败后,会运行这部分代码

4:函数的使用

import socket
def abc(arg1,arg2):
    try:
            socket.setdefaulttimeout(2)
            xxx
            return 
    except:
            return 
def main():
        xxx

if __name__==\"__main__\":
    main()  

5:IP,Port的扫描

portList=[21,22,25,80,110]
for x in range (1,255):
    for port in  portList:
        print \"Checkingt 192.168.1\"+str(x)+\":\"+str(port)
        
#文件的行读取
f=open(\"hello.txt\",\"r\")
for line in f.readlines():
    if line.strip(\"\\n\") in banner:  #从文件中读取到的行内容是否有用 
         print \"xxxx\"

6:sys,os,系统模块

import sys
if len(sys.argv)==2:
    filename=sys.argv[1]
    print \"filename\"+filename
    
import os
if not os.path.isfile(filename)
    pirnt filename+\" does not exist\"
    return 
if not os.access(filename,os.R_OK):  #chmod 000 a.txt  后,就无法access
    print filename+\" access denied\"
    return 

7:运行时决定是否生成函数

import sys
if sys.version_info[:2] <(2,4): #小于2.4的版本没有sorted这个函数,那么我们自己写一个,用自己的
    def sorted(items):
        xxx
        xxx
        return items

8:Python异常处理

#运行过程:
#先try,输出 hello ahc,然后运行3/0后报错
#接下来进行except,输出except happened
#接下来程序接着往下走(不会执行else)
for i in dir(a):
    try:
        print \"hello ahc\"
        3/0
    except:
        print \"except happened\"
    else:
        print \"run without except\"
\\
#运行过程:
#输出hello ahc,由于没有异常,所以会运行else,输出run always
try:
    print \"hello ahc\"
except:
    print \"except happened\"
else:
    print \"run without except\"

# 下面是一个标准的异常处理过程
try:
    process()
except IndexError, e:
    print \"Error: %s\" % e
except LookupError, e:
    print \"Error: %s\" % e

9:根据不同的操作系统,选择采用不同的文件路径表达形式(实用)

import platform
os_type=platform.platform().lower()
if  \"windows\" in os_type:
    fontfile=r\"C:\\Windows\\Fonts\\timesi.ttf\"
else:
    fontfile=\"/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman_Italic.ttf\"

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...