gpt4 book ai didi

python - While 循环仅正确迭代一次

转载 作者:太空宇宙 更新时间:2023-11-03 16:32:21 27 4
gpt4 key购买 nike

我正在开发一个 python 脚本来暴力破解我在安全事件中发现的恶意 Java 脚本。长话短说,在这个过程中的某个时刻,他们用异或混淆了重定向到有效负载的脚本。这就是我的做法。 python :

#!/usr/bin/python
import os
import subprocess
perl = "perl -pe 's/([;\}\{])/$"
userInput = input("")
tail = (r"\n/g'")
def deobBrute():
count = 0
while (count < 101):
return(str(userInput)+str(perl)+str(count)+str(tail))
count = count + 1
output = subprocess.Popen(deobBrute(), shell=True).wait
results = 0
while (results < 101):
print(output)
results = results + 1

我正在输入的用户输入:

cat elsePageXoffset | 

elsePageXoffest 是我存储混淆 JS 的文本文件。

它只迭代一次,但是除非它们用 XOR^1 进行混淆,否则对我没有任何好处。

所有其他迭代的错误消息:

<bound method Popen.wait of <subprocess.Popen object at 0x7fb65c6c9128>>

最佳答案

如果这是您的方法(您的制表符困惑),那么该函数将直接返回 (str(userInput)+str(perl)+str(count)+str(tail))离开,并且函数的其余部分将不会执行,如果您想在方法中继续并返回更多值,请考虑使用yield。当yield返回一个生成器时,您将需要迭代deobBrute才能访问值

def deobBrute():
count = 0
while (count < 101):
return(str(userInput)+str(perl)+str(count)+str(tail))
count = count + 1

def deobBrute():
count = 0
while (count < 101):
yield(str(userInput)+str(perl)+str(count)+str(tail))
count = count + 1

尝试这样的事情:

#!/usr/bin/python
import os
import subprocess
perl = "perl -pe 's/([;\}\{])/$"
userInput = input("")
tail = (r"\n/g'")

def deobBrute():
for i in range(1, 102):
yield "{0}{1}{2}{3}".format(userInput, perl, i, tail)

brute = deobBrute()

for i in brute:
print(subprocess.Popen(i, shell=True))

关于python - While 循环仅正确迭代一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37502208/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com