Quantcast
Channel: Python extension for WinDbg
Viewing all articles
Browse latest Browse all 1625

New Post: InternetExplorer: проблемы с получением аргументов из функций при отладке дочерних процессов

$
0
0
Не могу воспроизвести. Скрипт запускал в виде отдельно приложения.

Система: windows win7 x64, IE9
python 2.6 + pykd 0.2.0.29 OK
python 2.7 + pykd 0.3.0.3 OK

Хочу заметить, что в принципе, есть кооректный случая, который даст такой Exception: переоткрытие директории по хендлу. В этом случае в OBJECT_ATTRIBUTES будет задано поле RootDirectory. Если при этом в поле ObjectName будет передана структура { 0, 0, NULL }, т.е пустая строка - для системы это корректное поведение. Выловить ее можноп проверив поле Length.

Попробуйте переписать callback функцию следующим образом:
def NtUseFile(id):
     nt = module("ntdll")
     oa = nt.typedVar( "_OBJECT_ATTRIBUTES",  ptrDWord(reg('esp') + 4 * 3) )
     print loadUnicodeString( oa.ObjectName )
Тут есть промах по производительности: каждый раз будет происходит поиск информации о типе. Этого можно избежать, если заранее инициализировать глобальную переменную
OBJECT_ATTRIBUTES = nt.typeInfo(""_OBJECT_ATTRIBUTES")

def NtUseFile(id):
     oa = typedVar( OBJECT_ATTRIBUTES ,  ptrDWord(reg('esp') + 4 * 3) )
     print loadUnicodeString( oa.ObjectName )

Viewing all articles
Browse latest Browse all 1625

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>