DetectHypervisor

Тема в разделе "WASM.SOURCES & 2LZ", создана пользователем Ahimov, 3 май 2025.

  1. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    253
    galenkane,

    Поведение зависит от адреса процедуры. Почему так хз, нужны ещё тесты что бы выяснить.
     
  2. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    372
    ок
     
  3. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    253
    galenkane,

    Я хотел в динамике определить, но это так просто не работает:

    Код (Text):
    1. ; 1st thread.
    2. ;P:
    3. ;    mov eax,12345678
    4. ;    mov edx,87654321
    5.  
    6. ; 2st thread.
    7. ;    mov eax,33BA8765h
    8. ;    xchg D[P][3],eax
    9. ;        -->
    10. ;    mov eax,87655678
    11. ;    mov edx,87654333
    12.  
    13. PIPE_MAX    equ 61+64    ; Pipeline max(61)
    14. SHED_MAX    equ 16    ; Quant's
    15.  
    16. Pp:    ; mb align 64
    17.     dw PIPE_MAX dup (0C031h)    ; inc eax
    18. Pipeline proc C
    19. P::
    20.     mov eax,12345678h
    21.     mov edx,87654321h
    22.  
    23.     .if ((Eax == 12345678h) && (Edx != 87654321h)) || ((Eax == 87655678h) && (Edx != 87654333h))
    24.         int 3
    25.         not edi
    26.         lea eax,[edi][PIPE_MAX][1]
    27.         jmp Exit
    28.     .endif
    29.  
    30. ; Wait for end-of-quantum.
    31.     mov ax,fs
    32.     .if Ax == 53h        ; WOW
    33.         xor eax,eax
    34.         mov fs,ax
    35.         .repeat
    36.             mov ax,fs
    37.         .until Ax
    38.     .else            ; Native
    39.         fwait
    40.         .repeat
    41.             smsw ax
    42.             test ax,1000B
    43.         .until !Zero?
    44.     .endif
    45.  
    46. ;    push offset Pp
    47. ;    retn
    48.     dec esi
    49.     jnz Sjmp
    50.     mov esi,SHED_MAX    ; Quant's
    51.     dec ebx        ; P
    52.     dec ebx        ; P
    53.     dec edi        ; Length
    54.     jnz Sjmp
    55.     xor eax,eax
    56. Exit:
    57.     mov Psize,eax
    58.     popad
    59.     ret 4        ; ~Arg
    60. Pent::
    61.     lea ebx,P
    62.     mov esi,SHED_MAX
    63.     mov edi,PIPE_MAX
    64. Sent:
    65.     pushad
    66. Sjmp:
    67.     jmp Ebx
    68. Pipeline endp
    --- Сообщение объединено, 6 май 2025 ---
    Pp:
    dw PIPE_MAX dup (0C031h)
    Pipeline proc C
    - останов.

    nop
    Pp:
    - останов.

    nop
    nop
    Pp:
    - останов.

    nop
    nop
    nop
    Pp:
    - бесконечный цикл.
    --- Сообщение объединено, 6 май 2025 ---
    И ещё не понятное. Этот семпл выше не корректный, но при отладке он работает, хотя не должен так. Происходит ожидание окончания поточного кванта, затем должен быть цикл на переменных. Но, без такого цикла в течении ~5 квантов происходит останов. Как это такое может быть опять же хз.
     
    Последнее редактирование: 6 май 2025