Ukrywanie kodu przed Reflectorem...

0

Witam.
Tak jak w temacie.
Jak skutecznie ukryć kod przed dekompilacją?
Spakować plik exe i uruchamiać aplikację z drugiego exe, który to rozpakuje i uruchomi?
Dzięki za podpowiedzi.

0

Dowiaduję się, czym spakowałeś, przejeżdżam unpackerem => leżysz.
Kod ląduje w pamięci, ja sobie go odczytuję => leżysz.

0

To faktycznie pomogłeś [rotfl]
To i ja wiem.
Myślałem o o jakimś zaszyfrowanym spakowaniu. + ewentualnie dodatkowo po rozpakowaniu podmianie paru bajtów danych właściwymi wartościami.
Ale może tworzę sobie niepotrzebne historie, a jest jakiś sposób aby to sprawnie zrobić?
Jak jest np. z dużymi projektami, pisanymi w Visualu (nie tylko...), przecież chyba firmy nie udostępniają kodu na talerzu?

0

Są różne obfuscatory zaciemniające kod

0

Jeżeli ktoś będzie chciał i miał wystarczająco dużo motywacji to tak czy tak dobierze się do twojego programu. Możesz mu co najwyżej trochę utrudnić życie poprzez:

  • obfuskację kodu
  • 'tricki' wywalające reflectora

Oczywiście wszystko da się obejść, ale na niedzielnych 'programistów' chcących zobaczyć co tam też twoja aplikacja zawiera powinno podziałać.

0

dzięki Paweł, właśnie czegoś takiego szukam.
A znasz jakieś właśnie tricki do wywalania Reflectora?

0

Jednym ze sposobów jest stworzenie podwójnego returna z funkcji. Oczywiście takich rzeczy nie osiągniesz z poziomu VS i będziesz musiał bawić się IL'em ewentualnie Reflector + dodatki. Pomiędzy oba returny wstawiasz np. niepoprawny token. W ten sposób podczas próby interpretacji do danego języka dostaniesz wyjątek. IL nadal będzie poprawnie wyświetlał twój kod.

Jest też dalej występujący błąd w ILASM i ILDASM, który można wykorzystać, ale nie udało mi się go w sposób sensowny użyć w kodzie.

Opisany jest tu: http://www.owasp.org/index.php/Buffer_OverFlow_in_ILASM_and_ILDASM

0

Ale DILE'a wywalic trudniej.

Komercyjnych programow sie tak nie zabezpiecza, bo szkoda na to budzetu. Rzecz w tym, ze ich wartoscia nie jest to, jak je ktos napisal, ale ze juz to zrobil. Jak potrzeba zabezpieczyc bardziej, czesc szyfrowana nie jest w kodzie zarzadzanym.

0

Zapewnie trudniej, ale pewnie by się jakiś sposób znalazł. Co do sposobu zabezpieczania to kod niezarządzalny także można podejrzeć i jak ktoś jest sprawny to czytanie asm'a nie jest dużo trudniejsze niż IL'a.

0

Ale do zabezpieczania "klasycznych" binarek(moze nie jest to poprawne wyrazenie, ale wiecie o co mi chodzi) jest wiecej narzedzi i mysle, ze sa one znacznie lepsze od obfuscatorow zabazpieczajacych przed reflectorem. Moze napisz w kodzie niezarzadzanym dllke z kluczowymui funkcjami, potraktuj ja dobrym protektorem i importuj z niej funkcje? Pare tematow o protektorach/packerach i zabezpieczaniu binarek juz bylo, wiec bez problemu znajdziesz troche informacji na ten temat.

1 użytkowników online, w tym zalogowanych: 0, gości: 1