加载pwn模块时报错与解决

在使用Python的pwn库时遇到了两个错误:一是因Python3不支持元组参数解包导致的SyntaxError,二是尝试导入fcntl模块时在Windows环境下找不到该模块。对于错误一,需要修改term.py中的元组参数;对于错误二,由于fcntl模块在Windows上缺失,可以创建一个空的fcntl.py文件来解决依赖问题。

错误一: 

File "D:\Program Files\Python37\lib\site-packages\pwnlib\term\term.py", line 167
    def goto((r, c)):
             ^
SyntaxError: invalid syntax

原因:

Tuple parameter unpacking is not supported in python3 (python3不再支持元组作为函数参数)。

解决方案:

打开term.py,修改部分代码,去除元组参数。

def goto(r, c):  #改了这里
    do('cup', r - scroll + height - 1, c)
def render_from(i, force = False, clear_after = False):
    e = None
    # `i` should always be a valid cell, but in case i f***ed up somewhere, I'll
    # check it and just do nothing if something went wrong.
    if i < 0 or i >= len(cells):
        return
    goto(cells[i].start[0],cells[i].start[1])  #改了这里
    for c in cells[i:]:
        if not force and c.start == e:
            goto(cells[-1].end[0],cells[-1].end[1])  #改了这里
            break
        elif e:
            c.start = e
        render_cell(c, clear_after = clear_after)
        e = c.end
    if clear_after and (e[0] < scroll or e[1] < width - 1):
        put('\x1b[J')
    flush()

错误二:

import fcntl
ModuleNotFoundError: No module named 'fcntl'

原因:

windows中的python不自带fcntl而且这个模块

解决方案:

python路径下的Lib中新建一个fcntl.py文件,并写入:

def fcntl(fd, op, arg=0):
    return 0

def ioctl(fd, op, arg=0, mutable_flag=True):
    if mutable_flag:
        return 0
    else:
        return ""

def flock(fd, op):
    return

def lockf(fd, operation, length=0, start=0, whence=0):
    return

待续。。。

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值