Mam pewne zabezpieczenia wbudowane w program po stronie klienta, który pobiera bibliotekę DLL z sieci i wywołuje funkcję wewnątrz tej biblioteki DLL. DLL jest silne nazwie i funkcji w DLL wykorzystuje Assembly.GetCallingAssembly()
do określenia zespół wywołujący tak, że można dokładnie uzyskać ścieżkę do programu, który nazwał go. Następnie wykonujemy sprawdzanie skrótu zespołu i sprawdzamy, czy jest poprawny.Sposób określania prawdziwego wywołującego zestawu
Mamy ludzi, którzy się przywiązali w trybie pełnego zaufania i są w stanie sfałszować wywołanie GetCallingAssembly
, aby wskazać prawdziwy plik wykonywalny, podczas gdy oni uruchamiają zmodyfikowaną wersję tego. Czy istnieje coś innego niż GetCallingAssembly
, którego mogę użyć, aby uzyskać prawdziwego dzwoniącego? Niektóre callstack lub coś, co może zapewnić rzeczywistą wykonywalny od GetCallingAssembly
wydaje się być łatwo sfałszowane.
Wypróbuj metodę GetEntryAssembly' zamiast ' – hazzik
Pamiętaj, że jeśli pozwolisz na pełne zaufanie, mogą one również załatać GetEntryAssembly. Jeśli zezwolisz na pełne zaufanie, mogą one również załatać pobraną bibliotekę DLL i wyłączyć sprawdzanie skrótu. –