对pwnlibc的学习一

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'

你可能感兴趣的:(对pwnlibc的学习一)