本文主要是介绍result = e.symbols[symb] KeyError: b‘system‘ 解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题
Traceback (most recent call last):File "ot.py", line 16, in <module>sys_addr=d.lookup('system','libc')File "/usr/local/lib/python3.8/dist-packages/pwnlib/dynelf.py", line 582, in lookupresult = e.symbols[symb]
KeyError: b'system'
这是一个python3对DynELF模块不兼容的问题, python3和python2的最大区别(pwn中), 是bytes和str类型不共通了, 所以原本python2能跑的脚本, 在python3得考虑类型转换问题, DynELF中报错也是因为这个
解决
vim /usr/local/lib/python3.8/dist-packages/pwnlib/dynelf.py
找到dynelf.py文件, 找到报错行修改源码
result = e.symbols[symb]
为
result = e.symbols[symb.decode()]
修好了
这篇关于result = e.symbols[symb] KeyError: b‘system‘ 解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!