第一次在这里发帖!我真的需要帮助,我在谷歌上查看了这个问题,但无法找到对我有用的答案。所以这就是问题所在。我在 bash 中编写类似框架的代码很有趣。每个人都可以创建自己的模块并将其添加到框架中。但。为了知道脚本需要什么参数,我创建了一个必须在每个模块中的“args.conf”文件,看起来像这样:
LHOST;true;The IP the remote payload will connect to.
LPORT;true;The port the remote payload will connect to.
第一列是参数名称,第二列定义是否需要,第三列是描述。无论如何,长话短说,框架应该逐行读取 args.conf 文件,向用户询问每个参数的值。这是一段代码:
info "Reading module $name argument list..."
while read line; do
echo $line > line.tmp
arg=`cut -d ";" -f 1 line.tmp`
requ=`cut -d ";" -f 2 line.tmp`
if [ $requ = "true" ]; then
echo "[This argument is required]"
else
echo "[This argument isn't required, leave a blank space if you don't wan't to use it]"
fi
read -p " $arg=" answer
echo $answer >> arglist.tmp
done < modules/$name/args.conf
tr '\n' ' ' < arglist.tmp > argline.tmp
argline=`cat argline.tmp`
info "Launching module $name..."
cd modules/$name
$interpreter $file $argline
cd ../..
rm arglist.tmp
rm argline.tmp
rm line.tmp
succes "Module $name execution completed."
如您所见,它应该向用户询问每个参数的值......但是:
1) 读取命令似乎没有执行。它只是跳过它,参数没有价值
2) 尽管 args.conf 文件包含 3 行,但循环似乎只执行了一次。我在屏幕上看到的只是一次“[此参数是必需的]”,并且模块刚刚启动(并且由于它没有所需的参数而崩溃......)。
真的不知道该怎么办了,这里...希望这里有人能解答^^'。提前致谢!
(对于最终的错误,我很抱歉,我是法国人)
Α。