Pod .net jest wiele narzędzi do dekompilacji: dnspy, Reflector, ILSpy itd
Możesz bezpośrednio debugować skompilowany program .exe, przeglądać wartości w pamięci, a nawet modyfikować kod źródłowy.
Jak więc nasz program wykrywa, że jest debugowany lub dekompilowany?
Podczas normalnego uruchamiania aplikacji użytkownik zwykle dwukrotnie klika aplikację, aby ją uruchomić, a jej proces nadrzędny to "explorer", wystarczy sprawdzić, czy proces nadrzędny jest poprawny.
Różne wartości uzyskane przez podwójne kliknięcie to run, cmd start i dotnet start są przedstawione na poniższym rysunku:
Jeśli nazwa procesu nadrzędnego nie jest eksploratorem, program kończy się programem.
.NET Core musi zainstalować następujący pakiet, a polecenie brzmi następująco:
Kod jest następujący:
|