Linux'ta bir metin dosyasında oluşturduğum sözcüklerin bir listesini içeren basit bir komut dosyası yazmaya çalışıyorum ve bu sözcüğü bir steganografi çıkarıcıya karşı kontrol eden bir program aracılığıyla çalıştırıyorum. Ben mümkün oldumPython'da, bir listeden veriyi linux komutuna nasıl girersiniz?
steghide --extract -p {buraya şifre} -sf {burada dosya adı}:
programı (steghide)
komuta aşağıdaki sözdizimini kullanır dosyayı çağırmak ve listedeki kelimeler için bir döngü oluşturmak, ancak her bir komutta bu yinelemeden sözcüğü girmek için bir yol bulamadı.Çalışmayı nasıl denediğimi burada.
import os import sys script, filename = argv filename2 = sys.open(filename) for word in filename2: os.system('steghide --extract -p [want to put something here] -sf stegfilename')
Kontrollü bir kutudayım ve zaten sahip olduğumun ötesindeki bir şeyi karşıdan yükleyemiyorum. Herhangi bir yardım takdir edilir.
Güncelleme: Ben çalışması için var
. Ama şimdi doğru cevabı bulursanız çıkmamı sağlamaya çalışıyorum. Python'u çıktıyı okumak için çok zorlanıyorum. Şimdiye kadar sahip olduğum şeyler. sys içe argv gelen
`alma alt işlemi f olarak (geçer) açık olan
komut, dosya = Argv geçer = dosya
: f hattı için: proc = subprocess.popen (['steghide', '--extract', '-p' line.strip(), '-sf', 'stegged dosya adı'], stdout = altprocess.PIPE) stdout = proc.communicate() [0] çıkış = proc.stdout.readline()
if 'wrote' in output: print 'YOU FOUND IT!' break else: print line`
Çalışmaya başladım, ancak şimdi doğru şifreyi bulduğunda çıkması için çalışıyorum. Şimdiye kadar sahip olduğum şeyler.sys içe argv ithalat alt işlemi komut, dosya = Argv geçer = dosya f olarak (geçer) açık olan : \t \t Proc = subprocess.popen ([ 'steghide', ': f hattı için \t --extract',' -p line.strip() '-sf', 'dosya adı stegged'], stdout'u = subprocess.PIPE) \t \t stdout'u = proc.communicate() [0] \t \t çıkış = proc.stdout.readline() \t \t \t çıktıda 'yazdı': \t \t \t print 'SEN BULUNMAKTADIR!' \t \t \t başka \t \t molası : \t \t \t baskı hattı – Brad
@Brad 'steghide' C/Unix kurallarını izler ve 0 başarılı olursa, 1 değilse döner. Bunu başarmak için 'subprocess.call' ile birlikte kullanın ('subprocess.call' işlemin dönüş kodunu döndürür). "Subprocess.PIPE", proc.communicate() [0] 'vb. – jDo