pwnlibc.asm
————汇编函数
(组装和拆卸代码)
组装:
去组装代码,可以简单地调用asm()组装代码。
>>>asm('mov eax , 0')
asm()也用于组装shellcode(提供的pwntools在shellcraft的模块)
>>> asm(shellcraft.nop())
拆卸
pwnlib.asm.asm(代码,vma=0,提取=True,共享=False,…)→str
运行cpp()在给定shellcode然后组装字节。
架构和操作系统支持,看看 pwnlib.contex.
组装shellcode要求安装GNU汇编为目标架构。看到 安装Binutils为更多的信息。
参数:shellcode (str)——汇编代码组装。
vma(int)——虚拟内存地址开始组装
extract(bool)- - -从装配中提取原始组装字节文件。如果 False返回一个ELF文件的路径,组装嵌入。
shared(bool)- - -创建一个共享对象。
kwargs (dict)——任何属性 context可以设置,e.g.set arch=‘arm’.
例子:
>>> cpp("mov al, SYS_setresuid",arch="i386",os="linux")'mov al, 164\n'>>> cpp("weee SYS_setresuid",arch="arm",os="linux")'weee (0+164)\n'>>> cpp("SYS_setresuid",arch="thumb",os="linux")'(0+164)\n'>>> cpp("SYS_setresuid",os="freebsd")'311\n'