2015-08-24 4 views
0

У меня есть модуль в PyKD:Как получить исходное имя файла модуля в PyKD?

>>> print module("rundll32") 
Module: rundll32 
Start: 7f0000 End: 7fe000 Size: e000 
Image: C:\Windows\SysWOW64\rundll32.exe 
Symbols: e:\debug\symbols\rundll32.pdb\EFAE0C870C2846EDB63B9A7274CD50422\rundll32.pdb 
Timestamp: 4a5bc637 
Check Sum: 11cf2 

С этой информацией, предоставленной, как я могу узнать больше о модуле, подобно lm vm <module> команды WinDbg?

start end  module name 
007f0000 007fe000 rundll32 (deferred)    
    Image path: C:\Windows\SysWOW64\rundll32.exe 
    Image name: rundll32.exe 
    Timestamp:  Tue Jul 14 01:41:43 2009 (4A5BC637) 
    CheckSum:   00011CF2 
    ImageSize:  0000E000 
    File version:  6.1.7600.16385 
    Product version: 6.1.7600.16385 
    File flags:  0 (Mask 3F) 
    File OS:   40004 NT Win32 
    File type:  1.0 App 
    File date:  00000000.00000000 
    Translations:  0409.04b0 
    CompanyName:  Microsoft Corporation 
    ProductName:  Microsoft® Windows® Operating System 
    InternalName:  rundll 
    OriginalFilename: RUNDLL32.EXE 
    ProductVersion: 6.1.7600.16385 
    FileVersion:  6.1.7600.16385 (win7_rtm.090713-1255) 
    FileDescription: Windows host process (Rundll32) 
    LegalCopyright: © Microsoft Corporation. All rights reserved. 

В частности, я хотел бы получить «OriginalFilename».

ответ

0

Большая часть этой информации хранится в информации о ресурсах версии модуля. Вы можете получить доступ к ресурсу версии с помощью метода queryVersion(). Для указания ресурса требуется строковый параметр, например.

>>> m = module("rundll32") 
>>> m.queryVersion("LegalCopyright") 
'\xa9 Microsoft Corporation. All rights reserved.' 

Обратите внимание, как параметр не обязательно должен быть номер версии, поэтому имя метода queryVersion() немного вводит в заблуждение.

Параметры:

  • CompanyName
  • InternalName
  • ProductName
  • OriginalFilename
  • ProductVersion
  • FileVersion
  • FileDescription
  • LegalCopyright

Другая информация присутствует в lm vm:

  • Начало: hex(m.begin())
  • Конец: hex(m.end())
  • Имя: m.name()
  • Файловые флаги: m.getFixedFileInfo().FileFlags
  • Контрольная сумма: hex(m.checksum())
  • Отметка: hex(m.timestamp())
  • OS Файл: hex(m.getFixedFileInfo().FileOS)
  • Тип файла: hex(m.getFixedFileInfo().FileType)
  • Дата Файл: "%08X.%08X" % (m.getFixedFileInfo().FileDateLS , m.getFixedFileInfo().FileDateMS)
Смежные вопросы