当前位置: 首页 > article >正文

pwntools:类型转换

byte和str

首先一定要注意,byte和str在python里面有明确的区分,尤其是在做pwn的题目时,一定要注意这个问题。

参考链接:https://www.cnblogs.com/mlgjb/p/7899534.html

在这里插入图片描述

hex

hex(x)x --  10进制整数返回16进制数,以字符串形式表示。

p32、p64

p32(x)x--  一个整型数据返回byte型。

u32、u64

u32(x)x--  byte型返回整型。

int类型转换

int(a,base=x)a-- 可以是byte也可以是str型x是a本身的的进制。返回10进制数,整型。

你可能有疑惑了,为什么byte型str型不是整数,却还有进制?

举个例子:

a='100'
c=int(a,8)
print(c)

结果:c=64

什么意思?

100作为一个八进制数,转化成十进制数,就是64

再看一个:

a='aaa'
c=int(a,8)
print(c)

结果?

没有结果,因为这是错误的。

Traceback (most recent call last):File "%p.py", line 25, in <module>c=int(a,8)
ValueError: invalid literal for int() with base 8: 'aaa'

8进制里面,怎么可以出现大于7的字符呢?

再看一个:

a='z'
c=int(a,35)
print(c)

报错:

Traceback (most recent call last):File "%p.py", line 25, in <module>c=int(a,35)
ValueError: invalid literal for int() with base 35: 'z'

你可以借鉴16进制,

A表示10,B–1,C–12,D–13,E–14,F–15

那z呢?

在36进制内,z表示35。

所以35进制内不存在z。

把进制换成36就好了,结果是35.

我想,你应该明白了。

send、sendline、recv

在pwn中,recv和send、sendline都是使用的byte型。

也就是说,我们在接收时,收到的是byte型,发送时,发送的是byte型。

例子
好了,我们开始自己的尝试,一点一点去理解这个东西。

from pwn import *
a='0x80489632'
print(type(a))#stra1=int(a,16)
print(a1)
print(type(a1))#intprint(hex(a1))
print(type(hex(a1)))#strprint(p32(a1))
print(type(p32(a1)))#byte
'''
a2=u32(a)
print(a2)
print(type(a2))#int
'''b=b'0x8048000'
print(type(b))#byteb1=int(b,16)
print(b1)
print(type(b1))#intprint(hex(b1))
print(type(hex(b1)))#strprint(p32(b1))
print(type(p32(b1)))#byteb=b'\xb0\x9a\t\x86\xe8\x7f\x00\x00'
'''
鉴于能够执行u32、u64的byte型数据是有要求的,我上面写的那个byte型数据b不符合要求,所以我换了一个b,只要能明白这些东西的类型转换就行,不要太纠结
'''
b2=u64(b)
print(b2)
print(type(b2))#int

结果:

<class 'str'>
2152240690
<class 'int'>
0x80489632
<class 'str'>
b'2\x96H\x80'
<class 'bytes'>
<class 'bytes'>
134512640
<class 'int'>
0x8048000
<class 'str'>
b'\x00\x80\x04\x08'
<class 'bytes'>
140636657916592
<class 'int'>

我的一些想法是,p32、p64所做的是,将一个整形数据进行hex转换后,将这个进行转换成byte型,并进行小段输入

个人理解,还请见谅。

http://www.lryc.cn/news/2414252.html

相关文章:

  • mysql distinct和group by以及having用法
  • 信号频谱、幅度、功率和能量
  • 基于深度学习方法的图像分割
  • Windows+C语言 共享内存与互斥量
  • C#之读取数据:DataReader对象
  • 找资源网站
  • [QQAI机器人]-接入腾讯AI接口
  • 转让对战平台~~
  • Windows 11中无法使用小键盘的问题及其解决方法
  • kinect 1 for windows
  • 云远程调试工具V1.0.0
  • VC——线程同步
  • 智能音乐推荐系统(开题+源码)
  • 入门级 如何编写第一个网页
  • 【实验学习】思科模拟器学习
  • Windows系统shdocvw.dll文件丢失导致功能异常问题
  • 在线辞源辞海
  • 潇洒郎:用cxfreeze打包py文件为exe文件全过程——呕心吐血经验——安装、调试、解决KeyError: 'TCL_LIBRARY'问题、最终成功、打包方便技巧
  • 【Google论文】The Google File System 译文
  • 推荐一款国内好用的Java CMS内容管理软件,功能强大,灵活好用(附源码)
  • 爬虫有用的数据网站
  • MySql触发器介绍及应用
  • 【NLP】语义分析
  • 【算法合集】学习算法第二天(二分与排序篇)
  • SSM宠物店管理系统-计算机毕业设计源码93755
  • 解决Windows提示d3dx9_36.dll找不到
  • Mathcad使用数学表达式
  • 2022年茶艺师(高级)考题及答案
  • C语言项目-学生信息管理系统
  • windows编程------TextOut与TextOutw与TextOutA,基于vs2010