pykd

Форк
0
/
critlist.py 
34 строки · 849.0 Байт
1
from pykd import *
2

3
def main():
4
    pass
5

6
def listCritSections():
7

8
    ntdll = module("ntdll")
9

10
    dbglst = ntdll.typedVarList( ntdll.RtlCriticalSectionList, "_RTL_CRITICAL_SECTION_DEBUG", "ProcessLocksList" )
11
    
12
    crtlst = [ ntdll.typedVar( "_RTL_CRITICAL_SECTION", x.CriticalSection ) for x in dbglst ]
13
    
14
    for crtsec in crtlst:
15
        dprintln("")
16
        dprintln( "CRITICAL SECTION  address = %#x ( %s ) " % ( crtsec, findSymbol( crtsec ) ) )
17
        dprintln( "  Owning thread = %x" % crtsec.OwningThread )
18
        dprintln( "  Lock count = %d" % crtsec.LockCount )
19
        
20

21
def run():
22

23
    while True:
24

25
        if isKernelDebugging():
26
            dprintln( "not a user debugging" )
27
            break 
28
        
29
        listCritSections()        
30

31
        break
32

33
if __name__ == "__main__":
34
    run()

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.