xinling.py 文件源码

python
阅读 37 收藏 0 点赞 0 评论 0

项目:cc98 作者: zjuchenyuan 项目源码 文件源码
def function_hook_parameter(oldfunc, parameter_index, parameter_name, parameter_value):
    """
    ?????????????IP?????????????????????????

    ????wrapper?????oldfunc????parameter_index??parameter_name?????????parameter_value; ??????????????????
    ??? ??? = function_hook_parameter(???, ?1????????????, ???????, ?????????)

    ??? ????socket.create_connection????????????? 
               create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None)
           ?????3???source_address???value???????
               socket.create_connection = function_hook_parameter(socket.create_connection, 3, "source_address", value)
    """
    real_func = oldfunc

    def newfunc(*args, **kwargs):  # args?????list?kwargs?????keyword???dict
        newargs = list(args)
        if len(args) >= parameter_index:  # ???????????????????????????????args?????????????
            newargs[parameter_index - 1] = parameter_value  # ?3????list????2
        else:  # ?????????????kwargs? ???????????????????kwargs??
            kwargs[parameter_name] = parameter_value
        return real_func(*newargs, **kwargs)

    return newfunc
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号