如何找到任何PE文件的公钥?

时间:2013-12-17 02:53:34

标签: java android portable-executable

我想验证Java中任何PE文件(exe,dll)的数字签名。所以,我想找到这些文件的公钥和签名。你能帮帮我吗?!

1 个答案:

答案 0 :(得分:1)

有一个很好的讨论here,如果你有PE文件格式的背景(有一个很好的介绍here),这将更容易理解,但总结一下:

  • 文件头中的偏移量为24的指针指向PE头
  • PE标头长116字节,紧接着是数据目录
  • 在数据目录偏移32处有一个指针指向安全数据的开头
  • 安全数据是一组资源对象,每个资源对象都包含一个ASN.1编码的证书
  • 资源对象包括长度字段(4个字节),版本号(2个字节),证书类型字段(2个字节),然后是证书的原始数据