コード例 #1
0
ファイル: TariqServer.py プロジェクト: P2ppyJack/tariq
 def make_reply(self, req):
     pk=IP(str(req.payload))
     tcp=pk.payload
     if tcp.flags!=4 and tcp.flags!=2: return None
     d=str(tcp.payload)
     dp=int(tcp.dport)
     s=str(pk.src)
     if tcp.flags==4:
         if dp!=self._ports[-1] or not self._challenge.has_key(s): return None
         if d.replace('\0',' ').strip()=='': return None
         print ("** Got challenge answer=[%s]") % d.__repr__()
         c,cmd,arg=self._challenge[s]
         if c==d:
             print ("** accepted, executing cmd=[%s] arg=[%s]") % (cmd,arg)
             self._q.put((s, cmd, arg))
         else: print ("rejected")
         del self._challenge[s]
         return None
     print ("dp=",dp,)
     #print "pk=", pk.__repr__()
     r=self._is_right_knock(s, dp)
     print ("** right order=", r)
     if not r: return None
     self._hist[s].append(d)
     if len(self._hist[s])==self._portsN:
         # send challenge
         img="".join(self._hist[s])
         del self._hist[s];
         in_file=StringIO.StringIO(img)
         try: d=Steganography.decode(in_file, red_bits=1, green_bits=1, blue_bits=1)
         except: return None
         try: email,cmd,arg=d.split(' ',2)
         except ValueError: return None
         print ("** last valid knock received, cmd=[%s] arg=[%s]") % (cmd, arg)
         print ("** sending challenge ...")
         dec_blob=randomblob(self._blobm,self._blobM)
         enc_blob=enc(self._gpg, dec_blob, email=email)
         print ("** expecting answer=[%s]") % dec_blob.__repr__()
         try: self._challenge[s]=(dec_blob, cmd, arg)
         except KeyError: return None
         return IP(dst=pk.src,src=pk.dst)/TCP(flags='SA',dport=tcp.sport, sport=tcp.dport, seq=tcp.seq)/enc_blob
     return None
コード例 #2
0
ファイル: main.py プロジェクト: Alfatoxin/alfatoxin.github.io
def decodeImage():
    data = json.loads(Steganography.decode())
    newFile = open("image_encode/" + data["name"], "wb")
    newFile.write(binascii.unhexlify((data["data"])))