Piszę klasę do obsługi zabezpieczeń w moim pliku wykonywalnym (sprawdzanie seriali, sprawdzanie daty wersji próbnej itp.). Po skompilowaniu pliku wykonywalnego (nawet w wersji Release, z wyłączonym generowaniem debugowania i RTTI), kiedy otwieram go w NotePadzie i przeszukuję nazwę metody w nieprzetworzonych danych, widzę wszystkie nazwy metod, które łączą moją klasę . W bazie nie ma żadnych opublikowanych członków w żadnej klasie.Delphi: Zapobieganie wyświetlaniu nazw metod w plikach wykonywalnych
Jest to szkodliwe dla ochrony. Czy istnieje sposób, aby powiedzieć Delphi, aby nie zapisywał nazw metod w pliku wykonywalnym? Dlaczego magazynuje je w ogóle, jeśli nie ma potrzeby użycia RTTI i eksplozji COM? Czy jest jakaś opcja kompilatora kontrolująca to?
Możliwe, że DOWOLNA metoda DOWOLNEJ klasy w docelowym pliku wykonywalnym jest przechowywana wewnątrz pliku wykonywalnego w formie tekstowej. Podobno jest to spowodowane przez dłuższy RTTI jest domyślnie włączona dla wszystkich klas w Delphi 2010.
@FractalizeR. - nie ma to w niewłaściwy sposób ale jeśli opierasz (część) twoje bezpieczeństwo na zaciemnianiu, podejmiesz niewłaściwe podejście. Nie znam się na bezpieczeństwie, ale wiem, że nie powinieneś próbować urządzenie do własnego "nietłukącego" schematu. Sugeruję, abyś szukał rozwiązania komercyjnego lub open source do obsługi aspektu bezpieczeństwa swojej aplikacji. –
Jeśli chcesz zobaczyć, jakie symbole (np. Procedury i nazwy funkcji) pozostaną w twoim exe, dobrym testem będzie załadowanie exe do Ida (The Interactive Disassembler): http://www.hex-rays.com/idapro/ewaluacja i darmowe wersje są dostępne. – Remko
@Lieven Planuję użyć opiekuna Themida nad moim exe, ale nawet w tym przypadku trzeba wyeliminować wszystkie nadmierne informacje od exe, aby wzmocnić ochronę. –