CTF中pwn exp编写的一些小技巧

因为是搞底层的,平时也不怎么写脚本,所以并不太熟悉python。之前介绍过zio库何pwntools了,这次就来介绍一下关于读取输入输出的编写方法。

from struct import *

struct对于我们这种跟二进制打交道的人来说是极其有用的。

如何接受输出的明文地址?

比如

output:0x802A308

可以这样来接收

io.read_until(‘output:‘)
get=io.read(9)

字符串转成数字

addr=int(get,16)

如何接受输出的被当成ascii字符的地址?

output:????

可以这样

io.read_until(‘output:‘)
get=io.read(4)
addr=unpack(‘i‘,get[0:4])

把数字作为字符输出

a=hex(addr)
b=str(a)
print b

Python作为脚本语言并没有C中的那些有符号数无符号数什么的,这样就只能借助库去实现转换了。

比如求-1的有符号表示

 struct.pack(‘b‘,-1)
‘\xff‘ 
>>> struct.pack(‘i‘,-65496)
‘(\x00\xff\xff‘
>>> 
时间: 2024-12-14 09:44:56

CTF中pwn exp编写的一些小技巧的相关文章

Win10 UWP开发中的重复性静态UI绘制小技巧 2

小技巧1 地址:http://www.cnblogs.com/ms-uap/p/4641419.html 介绍 我们在上一篇博文中展示了通过Shape.Stroke族属性实现静态重复性UI绘制,使得UWP界面的实现变得稍微灵活一些了. 但这一技巧还是有不少局限的,毕竟折腾StrokeDashArray属性看上去并不是那么直观和适用(还存在用扇形欺骗观众这样的“问题”啦). 这一篇博文我们将为大家介绍一种更为适用,同时也更为灵活和强大的重复性UI绘制技巧. ItemsControl.ItemsSo

UWP开发中的重复性静态UI绘制小技巧 1

介绍 在UWP界面实现的过程中,有时会遇到一些重复性的.静态的界面设计.比如:画许多等距的线条,画一圈时钟型的刻度线,同特别的策略排布元素,等等. 读者可能觉得这些需求十分简单,马上就想到了通过for循环之类来实现.只需要在Loaded事件里添上这些元素就好了. 但这样可能存在一些问题——如果这些UI元素只是静态的,是装饰性的——虽然code-behind不用白不用,但为了这些纯静态元素将代码逻辑变得臃肿似乎略有不妥. 我们将就这些问题为读者们介绍一些重复性的静态界面绘制小技巧. Shape.S

命令提示符(cmd)中的tracert命令详解(小技巧)

tracert也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中使用tracert命令可以用于确定IP数据包访问目标时所选择的路径.本文主要探讨了tracert命令的各个功能. 百度经验:jingyan.baidu.com 工具/原料 计算机一台,要求安装Windows操作系统,本例中采用的是Win7版本. 百度经验:jingyan.baidu.com 方法/步骤 1 进入Windows命令提示符程序.Win7系统直接在开始菜单下方的输入框中输入“cmd”或“命令提示符”就可以进入

Pentaho BI server 中 CCC table Component 的使用小技巧

我使用的版本 Pentaho BI Server 5.3.0.0.213 CDE/CDF/CDA/CCC 15.04.16 stable Q: 如何设置表格中各种提示文字的语言(默认为英语)? CDE -> table Component -> Advanced Properties -> oLanguage,编辑该属性,语法需满足 JavaScript Objective 的语法,可以设置的参数如下: { "sProcessing": "Processin

工作中需要用到的一些小技巧

Lambda表达式是Java8的新功能,所以需要下载JDK8以及设置IDE里项目使用的jdk为jdk8和编译level也设置成1.8 Intellij IDEA选择菜单File–Project Structure–Project中,修改Project language level为8.0的那个选项. nginx启用vhost拓展 编辑nginx配置目录conf下的nginx.conf文件,在http{}包含的代码块里增加一行include vhost/*.conf;就可以引入conf目录下的vh

如何在ubuntu中安装英汉词典——ubuntu 小技巧3

如何在ubuntu中安装英汉词典 对于英语能力欠缺或经常遇见生僻词汇的人而言,在PC上安装一英汉词典是很有必要的,而linux系统中没有有道.金山词霸等经典词典工具可供使用,也没有那么多容易安装的词典可供选择,因此能够安装一个词典并且可以扩充词汇是相当有利于我们工作的!下面简单说一下如何安装词典,并且向其扩充词汇! 操作方面依然使用最简单的方法--ubuntuSoftware Center 下载并且安装StarDict,如下图: 首先, 在search 栏输入 StarDict的部分或全部单词,

Python中使用字典的几个小技巧

1 解包 所谓解包,就是将字典通过 ** 操作符转为 Key=Value 的形式,这种形式可以直接传给函数作为关键字参数. 说说适用的几种情况. 1.1 搜索拼接条件 当应用中使用类似 SQLAlchemy 的 ORM 形式读取数据的时候,不同搜索条件,传入给 ORM 的搜索参数也随之改变. 下面是图书表的部分数据(只展示了部分字段) +----+---------------+-------------------------+-------+ | id | category_name | b

vue vuex开发中遇到的问题及解决小技巧

1.在vue的开发中,如果使用了vuex,数据的组装,修改时在mutations中,页面是建议修改变量值的,如果强制修改,控制台就会出现错误.如下: 这种错误虽然不会影响结果,但是是vuex不提倡的方式,因此,如果想要使其不出现这种错误,可以切断vuex变量与页面变量直接的关联,最简单的方式就是: let a = JSON.parse(JSON.stringify(b)); 当然还有一种正规的方式就是在mutations中修改变量值,也就是写一个mutations方法即可 原文地址:https:

shell编程中一些有意思的命令和小技巧

echo -e:启用反斜线控制字符的转换        -E:关闭反斜线控制字符的转换(预设如此)        -n:取消行末之换行符号(与 -e 选项下的 \c 字符同意 -e参数下的控制参数  \a 发出警告声:     \b 删除前一个字符:            \c 最后不加上换行符号:            \f 换行但光标仍旧停留在原来的位置:            \n 换行且光标移至行首:            \r 光标移至行首,但不换行:            \t 插入