pwntools p32()관련 질문입니다

파이썬의 pwntools를 통해 문제풀이를 수행하고 있는데 p32()를 사용하는 도중 오류가 나타났습니다

from pwn import *

a = "A" * 40
a += p32(0x809fe4b)

print(a)

위와같은 코드를 실행하면 오류로 다음과 같이 출력이 됩니다

Traceback (most recent call last):
a += p32(0x809fe4b)
TypeError: can only concatenate str (not "bytes") to str

그리고

p32(0x809fe4b)
b'K\xfe\t\x08'

위의 예제와 같이 p32()를 수행하면 리틀엔디언 방식으로 패킹된 문자열이 나와야하는데 bytes형의 알 수 없는 문자열이 나옵니다

위 두개의 문제를 검색을 해 봤지만 답이나오지 않아 이렇게 질문을 올립니다...

파이썬은 3.9.1버전 사용중입니다

작성자 정보
답변 2
avatar
Pocas
워게임 고인물

파이선 3.x 버전을 사용 중 이시라면 문자열을 전송할 때, byte 타입으로 전송해주시면 됩니다.

2021.03.24. 01:52
avatar
Sechack
CTF First Place

python3.x버전 사용시에는 전송하는 모든 데이터를 byte타입으로 바꿔주셔야 합니다. 두번째에 패킹 결과는 정상적으로 나온건데 어디가 잘못되었다는건지... 더 궁금하신점 있으시면 Sechack#1869(디스코드) 여기로 연락주세요.

2021.03.24. 20:53
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기