nccgroup / blackboxprotobuf

Blackbox Protobuf is a set of tools for working with encoded Protocol Buffers (protobuf) without the matching protobuf definition.
MIT License
516 stars 86 forks source link

死循环 #17

Closed runningabcd closed 1 year ago

runningabcd commented 1 year ago

中国人用中文

这个文件 length_delim.py 这个function _group_by_number,有个死循环,会触发不可预知的错误,各位谨慎使用

建议author 多测试,坑有点多

this is bug !!!!!

thanks!!!!!

rwinkelmaier-ncc commented 1 year ago

Hi,

I don't think there's any case where that function should loop infinitely. If you have an example, please let me know.

runningabcd commented 1 year ago

Hi,

I don't think there's any case where that function should loop infinitely. If you have an example, please let me know.

content = '''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'''

body = zlib.decompress(base64.b64decode(content.encode())) message, typedef = blackboxprotobuf.protobuf_to_json(body)

hi, you can test, infinite loop

rwinkelmaier-ncc commented 1 year ago

Hi,

Please make sure you are using the bbpb python package from pypi and not blackboxprotobuf. blackboxprotobuf is a fork which has not been updated with the latest changes.

The function you mentioned (_group_by_number) doesn't exist in the fork, but based on my tests, your code runs fine in the bbpb package (latest for this repo) but fails with the older blackboxprotobuf package. Part of the design of _group_by_number is to help mitigate this exact edge case where it get's caught in recursive calls.