집에서 PC를 통한 원격 작업을위한 백도어 프로그램을 만들고 있습니다. 서버가 잘 연결되어 있지만 각 문자를 입력 할 때 새 명령으로 분할 된 문자로 명령을 실행할 때 문제가 있습니다 ... 'echo'를 입력하면 'e'가 인식되지 않으므로 결과가 인쇄됩니다. 내부 또는 외부 명령과 어쩌구처럼. 그러면 'c'를 인식하지 못합니다.각 문자 뒤에 python 리모컨 프로그램이있는 명령 입력이 나뉘어집니다.
내 포인트를 얻었습니까 ??? PLZ
import socket
import subprocess
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((ipadd_of_pc_running_this_appl,12345))
s.listen(3) #ignore this plz..i will change this later
cli,addr=s.accept()
while 1:
data=cli.recv(1024)
if data:
data=data.decode() #string type conversion
proc=subprocess.Popen(data,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output=proc.stdout.readline()+proc.stderr.readline()
cli.send(output)
가 Btw은 내가에 연결하기 위해 유사하거나 TELENT를 사용하려면 : 코드
어떻게 내가 에코 입력 할 때 전체 명령 여기
을 기다리는이 일을 할 것입니다 감사는 recv_into 미안 사전 에 ... 난 그것을 RECV 감사
주를 변경하는 것을 잊었다 : 문제는 아직 해결되지 않습니다. 내 다른 파일의 내용을 복사하여 붙여 넣었습니다. 이제 코드가 편집됩니다. 친절하게 밖으로 도와
는 popen이 시도 인수 목록을 기대하고, 그래서
'stderr = subprocess.PIPE'를 제거하면 stderr은 stdout으로 간다. -> 오류와 출력이 혼합되면 더 읽기 쉽다. – User
버퍼를'recv_into'에 건네주지 않는 이유는 무엇입니까 – iruvar