python列表转字节_如何在Python中反转常量列表的字节顺序?

我一直在寻找一种方法,从C源文件中提取常量,并在一个自动化过程中反转它们的字节顺序(无需手动输入)。到目前为止,我已经成功地利用pycparser为我完成了大部分繁重的工作,并创建了一个脚本,将C文件的所有常量打印到控制台。打印格式如下:

常量:int,0x243F6A88

我的问题是,有没有人知道用Python自动执行这个转换过程的直观方法?我知道如何使用join()反转字节顺序,但我正在努力想一种方法来实现这一点,在这种方法中,我可以最小化手动输入的数量。理想情况下,我的脚本会打印出常量(已经完成),然后使用某种regex(也许?)转换任何以0x开头的常量(有很多随机数是我不想要的)。我希望这有道理,谢谢!

到目前为止我所拥有的:

class ConstantVisitor(c_ast.NodeVisitor):

def __init__(self):

self.values = []

def visit_Constant(self, node):

self.values.append(node.value)

node.show(showcoord=True)

def show_tree(filename):

# Note that cpp is used. Provide a path to your own cpp or

# make sure one exists in PATH.

ast = parse_file(filename, use_cpp=True,cpp_args=['-E', r'-Iutils/fake_libc_include'])

cv = ConstantVisitor()

cv.visit(ast)

if __name__ == "__main__":

if len(sys.argv) > 1:

filename = sys.argv[1]

else:

filename = 'xmrig-master/src/crypto/c_blake256.c'

show_tree(filename)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值