我正在尝试使用StegoSip工具和Ekiga软电话。最后Ekiga可以工作,但是当我运行StegoSip时,它会给我一个警告,即cb()只需要3个参数(给定2个)。
我在代码中找到了这个函数,我认为stegoSip无法识别我的对话(第三个参数)。我检查端口,一切看起来都不错(SIP使用5060端口)。
我知道问题在于细节,但是我浪费了太多时间来解决这个问题而且我很绝望。
StegoSIP https://github.com/epinna/Stegosip
有问题的代码:
def cb(self,i,nf_payload):
"""
Callback function of packet processing.
Get corresponding dissector and direction of packets with .getLoadedDissectorByMarker()
and send to the correct dissector using checkPkt() and processPkt().
"""
data = nf_payload.get_data()
pkt = stegoIP(data)
marker = nf_payload.get_nfmark()
dissector, incoming = dissector_dict.dissd.getLoadedDissectorByMarker(marker)
pkt.incoming = incoming
if not dissector:
nf_payload.set_verdict(nfqueue.NF_ACCEPT)
else:
dissector.checkPkt(pkt)
if pkt.extracted_payload:
dissector.processPkt(pkt, nf_payload)
return 1
输出是: TypeError:cb()只需3个参数(给定2个) 回调失败!