eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › mój obfuskator - problem projektowy
Ilość wypowiedzi w tym wątku: 66

  • 1. Data: 2022-10-24 15:42:06
    Temat: mój obfuskator - problem projektowy
    Od: Jivanmukta <j...@p...onet.pl>

    Piszę tutaj bo na pl.como.lang.php nie dostałem odpowiedzi.

    Napisałem w C++ obfuskator PHP 5/7/8. Obfuskator umożliwia m.in.
    zaciemnienie projektu wykorzystującego Composera, tzn. katalog vendor.
    Ponieważ obfuskuję samą aplikację a nie frameworki i biblioteki z
    katalogu vendor potrzebuję zrobić żeby identifikatory z vendor nie były
    zastępowane losowymi. W tym celu analizuję kod frameworków i bibliotek z
    katalogu vendor w poszukiwaniu identyfikatorów (zmiennych, funkcji,
    metod, właściwości itd.). Problem w tym że jeśli katalog vendor jest
    duży, tzn. liczy wiele podkatalogów, proces analizy trwa długo, nawet
    kilka godzin. Żeby nie analizować katalogu vendor wielokrotnie (przy
    każdej obfuskacji projektu) zapamiętuje znalezione w vendor
    identyfikatory w cache'u (pliku xml-owym). Modyfikacja katalogu vendor
    (np. dodanie Composerem nowej biblioteki lub update) nie powoduje u mnie
    ponownego parsowania całego vendor bo zapamiętuję w cache'u timestampy
    podkatalogów vendor.

    Czy takie rozwiązanie jest do przyjęcia, tzn. że pierwsza obfuskacja
    może trwać nawet kilka godzin, ale późniejsze już w minutach?
    Jeśli nie, to czy ktoś mógłby mi rzucić pomysł jak rozwiązać ten
    problem? Chcę żeby mój obfuskator był uniwersalny, tzn. potrafił
    zaciemnić projekt wykorzystujący różne frameworki i różne biblioteki.

    Dużo czasu zajmuje przetwarzanie wyrazeniami regularnymi kazdego wiersza
    kazdego pliku duzego katalogu vendor.

    const string remembering_regexps[index_what_num][2] =

    {{"(static|abstract|final)?\\s*(public)?\\s*(static|
    abstract|final)?\\s*(function)\\s+("
    + ::identifier + ")\\s*\\(", ""},

    {"(static|abstract|final)?\\s*(private|protected|pub
    lic)?\\s*(static|abstract|final)?\\s*(function)\\s+(
    "
    + ::identifier + ")\\s*\\(", ""},
    {"\\b(function)\\s+(" + ::identifier + ")\\s*\\(", ""},

    {"(static|private|protected|public)?\\s*(readonly)?\
    \s*([_a-zA-Z0-9]+)?\\s*(\\$("
    + ::identifier + ")\\s*=.*,?\\s*)+", // uproszczenie

    "(static|private|protected|public)?\\s*(readonly)?\\
    s*([_a-zA-Z0-9]+)?\\s*(\\$("
    + ::identifier + ")\\s*,?\\s*)+"}, // uproszczenie

    {"(?!(private|protected|public))\\s*(\\s*|[^:\\-][^:
    >])\\s*(\\\\\\\\)*\\$("
    + ::identifier + ")", ""}}; // pasuje do "instanceof
    $var" a nie pasuje do "self::$prop;" czy "->$prop"

    Ponadto dla każdego pliku wywołuję skrypt PHP robiący tokenizację.


  • 2. Data: 2022-10-24 15:44:18
    Temat: Re: mój obfuskator - problem projektowy
    Od: heby <h...@p...onet.pl>

    On 24/10/2022 15:42, Jivanmukta wrote:
    > Napisałem w C++ obfuskator PHP

    Komu i do czego to jest potrzebne?


  • 3. Data: 2022-10-25 12:46:23
    Temat: Re: mój obfuskator - problem projektowy
    Od: Jivanmukta <j...@p...onet.pl>

    W dniu 24.10.2022 o 15:44, heby pisze:
    > On 24/10/2022 15:42, Jivanmukta wrote:
    >> Napisałem w C++ obfuskator PHP
    >
    > Komu i do czego to jest potrzebne?
    >

    Jesteś prowokatorem czy jesteś niedorozwinięty?


  • 4. Data: 2022-10-25 17:31:14
    Temat: Re: mój obfuskator - problem projektowy
    Od: heby <h...@p...onet.pl>

    On 25/10/2022 12:46, Jivanmukta wrote:
    >>> Napisałem w C++ obfuskator PHP
    >> Komu i do czego to jest potrzebne?
    > Jesteś prowokatorem czy jesteś niedorozwinięty?

    Raczej praktykiem. Skoro coś trwa godzinami, a przeciez poprawki i
    refaktoringo się same nie zrobią, wiec x100, to musi istnieć jakiś
    *NAPRAWDĘ* znakomity powód babrania się w tym gównianym PHP aby było
    widać ale nie było widać. Ciekawośc mnie zżera, jaki to powód.


  • 5. Data: 2022-10-25 20:35:08
    Temat: Re: mój obfuskator - problem projektowy
    Od: J-23 <B...@p...fm>

    W dniu 24.10.2022 o 15:42, Jivanmukta pisze:
    > Piszę tutaj bo na pl.como.lang.php nie dostałem odpowiedzi.
    >
    > Napisałem w C++ obfuskator PHP 5/7/8. Obfuskator umożliwia m.in.
    > zaciemnienie projektu wykorzystującego Composera, tzn. katalog vendor.
    > Ponieważ obfuskuję samą aplikację a nie frameworki i biblioteki z
    > katalogu vendor potrzebuję zrobić żeby identifikatory z vendor nie były
    > zastępowane losowymi. W tym celu analizuję kod frameworków i bibliotek z
    > katalogu vendor w poszukiwaniu identyfikatorów (zmiennych, funkcji,
    > metod, właściwości itd.). Problem w tym że jeśli katalog vendor jest
    > duży, tzn. liczy wiele podkatalogów, proces analizy trwa długo, nawet
    > kilka godzin. Żeby nie analizować katalogu vendor wielokrotnie (przy
    > każdej obfuskacji projektu) zapamiętuje znalezione w vendor
    > identyfikatory w cache'u (pliku xml-owym). Modyfikacja katalogu vendor
    > (np. dodanie Composerem nowej biblioteki lub update) nie powoduje u mnie
    > ponownego parsowania całego vendor bo zapamiętuję w cache'u timestampy
    > podkatalogów vendor.
    >
    > Czy takie rozwiązanie jest do przyjęcia, tzn. że pierwsza obfuskacja
    > może trwać nawet kilka godzin, ale późniejsze już w minutach?

    Wnioskuje po zapytaniu ze próbujesz zrobić narzędzie które będziesz
    sprzedawał/dystrybuował na szerszą skale. Pytanie to nie powinno być na
    grupę a do pierwszej partii klientów którzy ten produkt otrzymają.
    Sposobów przyspieszenia tego jest dużo, ale tez nie będzie to proste w
    implementacji. Musisz przeanalizować sobie gdzie jest dla Ciebie punkt
    który zadowoli Ciebie lub Twoich klientów.

    Pozdrawiam



  • 6. Data: 2022-10-26 03:58:07
    Temat: Re: mój obfuskator - problem projektowy
    Od: Jivanmukta <j...@p...onet.pl>

    W dniu 25.10.2022 o 20:35, J-23 pisze:
    > Sposobów przyspieszenia tego jest dużo, ale tez nie będzie to proste w
    > implementacji.
    Ale czy jakąś optymalizację konkretnie masz na myśli?

    --
    Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie
    antywirusowe AVG.
    www.avg.com


  • 7. Data: 2022-10-26 04:00:28
    Temat: Re: mój obfuskator - problem projektowy
    Od: Jivanmukta <j...@p...onet.pl>

    W dniu 25.10.2022 o 17:31, heby pisze:
    > On 25/10/2022 12:46, Jivanmukta wrote:
    >>>> Napisałem w C++ obfuskator PHP
    >>> Komu i do czego to jest potrzebne?
    >> Jesteś prowokatorem czy jesteś niedorozwinięty?
    >
    > Raczej praktykiem. Skoro coś trwa godzinami, a przeciez poprawki i
    > refaktoringo się same nie zrobią, wiec x100, to musi istnieć jakiś
    > *NAPRAWDĘ* znakomity powód babrania się w tym gównianym PHP aby było
    > widać ale nie było widać. Ciekawośc mnie zżera, jaki to powód.
    >
    Mnie PHP bardzo odpowiada a ostatnie wersje PHP wcale nie uważam za
    gówniane. Lubię C++ i języki do niego podobne.

    --
    Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie
    antywirusowe AVG.
    www.avg.com


  • 8. Data: 2022-10-26 09:18:48
    Temat: Re: mój obfuskator - problem projektowy
    Od: heby <h...@p...onet.pl>

    On 26/10/2022 04:00, Jivanmukta wrote:
    > Mnie PHP bardzo odpowiada a ostatnie wersje PHP wcale nie uważam za
    > gówniane. Lubię C++ i języki do niego podobne.

    Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie
    cechy PHP są podobne do C++ i Ci się spodobały?


  • 9. Data: 2022-10-26 12:00:29
    Temat: Re: mój obfuskator - problem projektowy
    Od: Jivanmukta <j...@p...onet.pl>

    W dniu 26.10.2022 o 09:18, heby pisze:
    > On 26/10/2022 04:00, Jivanmukta wrote:
    >> Mnie PHP bardzo odpowiada a ostatnie wersje PHP wcale nie uważam za
    >> gówniane. Lubię C++ i języki do niego podobne.
    >
    > Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie
    > cechy PHP są podobne do C++ i Ci się spodobały?
    >
    Składnia.


  • 10. Data: 2022-10-26 12:04:32
    Temat: Re: mój obfuskator - problem projektowy
    Od: Jivanmukta <j...@p...onet.pl>

    W dniu 26.10.2022 o 09:18, heby pisze:
    > Interesująca teza o tym podobieństwie do C++. Możesz rozwinąc jakie
    > cechy PHP są podobne do C++ i Ci się spodobały?
    >
    I to że wiele funkcji się tak samo lub podobnie nazywa, dzięki czemu
    łatwo mi było przejść na PHP (C++ miałem na studiach). Poza tym lubię
    paradygmat imperatywny i obiektowość.

strony : [ 1 ] . 2 ... 7


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: