有什么方法可以仅使用python库生成 $db = ConnectionManager::get('default');
$stmt = $db->execute("call mydatasp($paramlist)");
$result = array();
try{
do
{
$rowset = $stmt->fetchAll('assoc');
$result[]=$rowset;
} while($stmt->nextRowset());
}
catch(Exception $e){}
吗?
我想使用python库汇编以下文件。
ELF binary
:
a.s
我试图使用两个python库line 1 : .global _start
line 2 : _start:
line 3 : push _STRING1
line 4 : push _STRING2
line 5 : call printf
line 6 : _STRING1:
line 7 : .string "gogo"
line 8 : _STRING2:
line 9 : .string "%s"
和keystone
。
但是,它们仅支持与汇编命令相对应的机器代码字节发射。
(它没有生成由精灵标题,节标题等组成的pwntool
。
此外,它不支持处理外部库信息。 (例如ELF binary
)
line 5
。答案 0 :(得分:3)
我要汇编以下文件
请注意,您的程序是 ill 定义的:
您调用了printf
,但是您不允许初始化C运行时。 (如果要调用任何libc函数,则应让_start
在crt0.o
中定义,并且程序应从main
而不是_start
开始)。 / p>
您没有正确终止程序(不要调用exit
,_exit
或执行SYS_exit
syscall)。您可以从main
返回(libc提供的_start
然后为您执行SYS_exit
),但是您必须不从_start
返回,并且当然,它不会从结尾处落到紧随其后的任何代码或数据上。
回到您的原始问题:可以“手工组装” ELF文件-数据就是数据。
但是,这是一项很多的工作(而且是毫无意义的工作),因此,只需调用外部汇编器和链接器,您就会变得更好。
答案 1 :(得分:0)
我知道一个称为radare2 https://github.com/radare/radare2的强大工具。 它还支持python绑定https://github.com/radare/radare2-bindings。
Radare可用作汇编器https://radare.gitbooks.io/radare2book/content/tools/rasm2/assemble.html。我尚未测试,但我认为它可以帮助您使用elf二进制文件。 但总的来说,您要尝试执行的操作可能需要大量的体力劳动。