22 komentarze do “Darmowy kod do JObfuscator”

  1. ło ja, już widzę jak programersi w gniewie przy odejściu obfuskują kodziszcze 🙂 Dobrze, że są systemy kontroli wersji ale widziałem już kilka projektów, umów, gdzie wykonawca miał zostawić kod źródłowy, w sumie zostawi – tyle, że obfuskowany za darmoszkę 🙂

    Odpowiedz
  2. czekam jeszcze na obfuskator do SQL-a (tSql i plSql od oracle czy postgresa) to rozbijesz bank – tyle instytucji ma popisanych procedur składowych, funkcji i nie trzyma tego w git tylko wgrane na serwerze 🙂 Asseco itp może zostałyby Twoimi platynowymi klientami 😉

    Odpowiedz
    • I wiecznie ten złośliwy ton…

      Na szczęście od osób z twoim podejściem i skillem nie możemy na to liczyć, stworzyłeś coś w swoim życiu pod własnym imieniem czy marką czy całe życie zapierdalałeś za miskę ryżu na obczyźnie klepiąc sygnatury dla AV a teraz robisz w ehem „cutting edge Pythonie” reguły dla YARA?

      Nie zastanawiałeś się nigdy, że po 30 latach zapierdalania w korpo jedyne co dostaniesz to zakola, odznakę antywirusowego skauta, krzesiwo, zestaw wlepek hakerskich na laptopa i zgrzewkę Kofoli? Warto? 😀

      Jak widzisz – mam innych platynowych klientów.

      Odpowiedz
  3. A, tu nie było w moim komentarzu złośliwości – tylko szczera prawda i wskazałem Ci na czym mógłbyś zarobić :). Ja takich kompetencji czy czasu nie mam by coś takiego napisać a wiem, że
    to bardzo życiowy problem ze strony dostawcy – jak dostarczyć kod aby go nie do końca dostarczyć – w umowie niby masz go dostarczyć, jak dostarczysz to klient na boku robi własne klienty, procedury i się do nich nie przyznaje, a później się zastanawiasz jak to w ogóle możliwe, że taki wyjątek wystąpił, robisz trace na bazie, proxy z logowaniem wszystkiego, itp, itd by złapać za rękę amatora. Ty utrzymujesz, dewelopujesz, a klient chce inHouse realizować zmiany swoimi ludźmi, które Ty już wyceniłeś, a klient chce je 'samemu’ zrealizować, a jeśli coś nie pyknie to dzwonić na 0700… z tekstem ’- chłopaki, weźcie pomóżcie, bo coś aplikacja nie chce działać….’ ’-a robiliście coś samemu, jakieś updejty, wgrywki kodu?’ ’-nie, no skądże ;-)’

    I serio, nie zrozum mnie źle ale nie wykluczam, że jeśli mnie klient wkurzy to może kiedyś skorzystam z tego darmowego kodu aby na szybciocha zobfuskować i 'wypełnić’ papierowy obowiązek wg klienta ale niezręcznie bym się czuł za darmoszkę (choć nie każdy ma takie opory) i nie zawsze da się kupić taki produkt o 4tej nad ranem w weekend – a tu kod aktywacyjny za darmo :), wersję full kupi się później.

    PS – bezpieczeństwem interesuję się raczej hobbystycznie – jako klient, programista, administrator. Żyję z pisania apek webowych, devOpsa, w zakresie bezpieczeństwa nie chciałem się rozwijać z różnych przyczyn, wolę solo na B2B małym i średnim klientom robić apki webowe, 'biznesIntelligence’, crawlery, porównywarki, … i gdzie tylko ich wyobraźnia poniesie.

    PS2 – jak będę musiał z ramienia kontraktorni dostarczyć kod w java to zapewne poproszę by kupili Twój produkt.

    Także głowa do góry, nie było w tym ani uszczypliwości, ani złośliwości

    Odpowiedz
    • Na obfuskacji SQL :), to nie było złośliwe 😀 ? Myślę nad bardziej życiowymi obfuscatorami dla Pythona, JS czy PS, jak sądzisz, który by się najlepiej sprzedał?

      Odpowiedz
      • Z tym SQL to serio nie było złośliwe – na przykładzie 2-3 systemów:
        – kołchozy typu asseco, oracle, itp narobiły przez lata systemów – często zgodnie z wzorcami projektowymi z lat 90tych, kiedy nie było ORMów, a logika sterowania, przetwarzania, a często i renderowania, prezentacji była zaszyta w bazie danych, w kodzie sql, czy zawartości tabel z bardzo długimi polami wypełnionymi sql-kami. Korzystało się i korzysta z pl/sql – dynamicznego lub zwykłego sql-a. Często robiono tak, ponieważ klientowi się sprzedawało tekst, że systemu się nie dewelopuje po zakupie, a tylko konfiguruje i generalnie system wymaga niskiego stacku technologicznego, jest to proste, wystarczy znać sql-a i system ten jest panaceum na całe zło klienta, to pudełko rozwiąże jego wszystkie problemy, no i klient sam sobie może robić z systemu raporty, zmieniać ui, logikę korzystając jedynie z SQLa, bez potrzeby jawy, c#, js, itp. Systemy kosztowały przysłowiową bańkę dwieście na start. Systemy te ewoluowały przez lata, utrzymały się na rynku, często są uważane przez m.in. gartnera za super (po)twory. Weż np. oracle forms (legacy), ogólnie stack technologiczny oracle gdzie np z poziomu bazy danych możesz definiować kolejki, wstawiać kod w jawa i go używać albo wiele silników BPM, wiodące systemy do zarządzania magazynem, przedsiębiorstwem. Kod PL/SQL-a wygląda mniej więcej tak: https://github.com/ReneNyffenegger/oracle-patterns/blob/master/PL-SQL/forall/compare_time.sql tyle, że dla tych produktów liczba tabel to powiedzmy koło tysiąca do 2, liczba procedur składowych na bazie, pakietów, funkcji koresponduje z liczbą tabel a nawet ją znacznie przewyższa.
        Więc jako klient dostajesz na twarz 2 tysiące tabel i 3 tysiączki procedur składowych, które często liczą po 4-10 stron A4 w pl/sqlu z zagnieżdżeniami. Proceduralność jest często normą, a obiektowość rzadkością.
        Mimo wszystko zdarzają się klienci czy specjaliści którzy rozkminią tą układankę – ku niezadowoleniu sprzedawcy – bo przecież nie sposób wtedy sprzedać dodania okna dialogowego za 60 tys pln + vat. No i tu niektóre firmy porobiły własne 'obfuskatory’ utrudniające trochę życie – widziałem w zasadzie takie oparte o xor, base64 itp, z prawdziwego zdarzenia jeszcze nie widziałem 🙂 Niekiedy trzeba było wpisać hasło by rozszyfrować sql-kę, a hasło było przechowywane w jednej z tabel i wystarczyło uruchomić trace czy profilera aby się dowiedzieć (kosztowało to trochę czasu, acz nie dużo). Nie widziałem natomiast czegoś co by zastępowało nazwy zmiennych, mieszało, itp. itd. Raczej prymitywy.
        No i by pokazać, że takie systemy są dziś bardzo trendi i bardzo dochodowe dla przykładu SAP4HANA, programowanie w ABAP itp. stosie SAPa czy używanie Oracle Enterprise Business Suite, Oracle SOA, etc. sprowadza się w znacznej mierze do tego, że kod jest albo dialektem sql-a albo często sql-em wygenerowanym maszynowo na podstawie gui lub innego języka i składowanym w bazie 🙂 No i dostawca zazwyczaj chciałby aby ten kod był mniej czytelny dla klienta, co by klient miał wybór – wpakowałeś w system w 2 lata 60 baniek, więc teraz za małego CRa zapłacisz nam 60 tys albo drogi kliencie wymień nasz system na inny (podobny, konkurencyjny wg gartnera).
        Z ww. systemów korzystają zazwyczaj firmy z GPW, NASDAQ, banki, korpo – więc ludzie którzy mają kasę. Dewelopują podobni ludzie, podobnie zachłanni 🙂

        Odpowiedz
        • Nie zrozumiałem o czym wcześniej pisałeś, myślałem, że chodzi ci o zapytania SQL, a nie kod SQL i mówię sobie, co on bredzi 🙂

          Brzmi ciekawie i skomplikowanie :), ciekawe czy są jakieś gotowe parsery AST do tego i pytanie, w który dialekt celować?

          Odpowiedz
      • W temacie obfuskacji js to zaobserwowałem, że f5, cloudFlare, forti itp. mają już fajne biblioteki czy rozwiązania do obfuskacji js, bo przy zdrapywaniu witryn mnie czasem irytują ich kolejne permutacje w waf-ach, wstrzykiwane js-y z obfuskacją i kłopotliwą logiką dla pobieracza – jeżeli chce się pobierać bez użycia np. selenium / gui. Więc JSa bym przemyślał czy nie odpuścić ze względu na potencjalnie istniejące już produkty na rynku od m.in. firm jw. Z takiego wyboru chyba wybrałbym pythona – ale to raczej z braku laqu.

        Odpowiedz
        • Tylko czy ludzie obfuskują Pythona? Znam rozwiązania do pseudo-obfuskacji Pythona po przekonwertowaniu do C++ (nutika), ale jak przejrzałem ich kod źródłowy, odnośnie samej obfuskacji, to takie dziadostwo, że szkoda na to pieniędzy, tyle że ludzie płacą w tym wypadku głównie za konwersje do C++. JS ma największy target i potencjał, dlatego nie dziwi mnogość istniejących rozwiązań. PS ma potencjał wiadomo gdzie, co niekoniecznie mnie pociąga, poza tym składnia PS to dla mnie jakieś programistyczne nieporozumienie ;), najbliżej mi do Pythona lub JS jeśli miałbym rozważać kolejny produkt tylko mam wątpliwości czy Python oby tego potrzebuje.

          Odpowiedz
          • Cóż, z perspektywy projektManagera sprawa wygląda tak – masz projekt, czyli coś zrealizować w określonym czasie / przy określonych zasobach – w tym pieniężnych. Często projekt jest 'zagrożony’ lub nie wiadomo czy będzie kontynuowane zlecenie.
            Perspektywa dostawcy:
            – przepaliłem bańkę dwieście i nie ma efektu, a klient może rozważać przekazanie tego inHouse lub innemu softwareHouse, rozmawiamy o kontunuacji ale klient 'umiarkowanie’ zadowolony, w umowie niby mam prawo klienta by dostał kod na życzenie, może chcieć z niego skorzystać, ale klient nie ma personelu który by to ogarnął. Może przekazać jakąś wczesną wersję kodu – np. brancz master albo jakiegoś uata – a później jakoś to będzie, może inny brancz, zyska się na czasie, a później może dostarczy obfuskowany…. no i termin minie i już nie będziemy zobowiązani po 31 danego miesiąca… – Lepsza pozycja negocjacyjna w rozmowach o prolongacie, można zainkasować pieniążki za przekazanie kodu 😉
            Perspektywa klienta:
            – płacę za soft jak za zboże, może trzeba to poturlać inHouse, tj. zatrudnić kogoś za 2 dyszki plus vat może kilku, pół roczku i dalej będę sam utrzymywał, developował sam. ew zlecić jakiemuś konkurencyjnemu softwarehouseowi, ew. bodyLeasingowi.

            Jeśli kod jest obfuskowany w jakikolwiek sposób to utrudnia pracę deweloperom, np reverse engineering zwiększa czas realizacji projektu / zasoby. Mimo, że kod jest wykonalny to nie wiadomo jaką logikę realizuje… zwiększa to zasoby w przypadku typowego dla polskiego 'świadka’ kejsu, tj. janusz zamówił apkę, zapłacił i teraz chce ją sam dalej dewelopować za miskę ryżu.

            Mankamentem całej obfuskacji jest to, że Ty to wiesz, ja to wiem, ale niewielu to wie i brak świadomości pm-ów, czy accountów / sprzedawców co do możliwości takiego pogmerania.

            Mając to na względzie mam wątpliwości czy całe to przedsięwzięcie zw z obfuskacją ma sens o ile nie rozreklamujesz / nie zrobisz szkoleń dla decydentów / PMów w przedmiocie takiej / takich możliwości wykorzystania tej funkcjonalności, takiego gameChangera 😉
            Może warto nad ww. popracować, co byś zarobił parę cebulionów więcej – nie zrozum mnie źle ale jako deweloper od klienta będę psioczył na softwareHouse który obfuskował i na Ciebie (przytulając przy tym więcej pieniędzy na reverseEngineering oczywiście), zaś z perspektywy dostawcy będę zachęcał do obfuskacji, motywował PMa aby dalej odcinać kupony / pobierać jakieś pieniądze za swoją własność intelektualną, aby klient płacił możliwie najdłużej 😉

          • PS2 – perspektywa prawnika wygląda jeszcze ciekawiej, bo poza naszymi informatycznymi bolączkami, poza ekonomią prawo nie zna definicji obfuskacji, a na polskim rynku nie ma w tym przedmiocie w zasadzie żadnej linii orzeczniczek, więc kod obfuskowany vs kod bez tego są kartami do wypełnienia dla polskiej justitii….

          • Heh to takie branie pod ch… 🙂 ale jeśli w umowie słowa o tym nie ma ;), aż się prosi o dopisywanie, że kod nie może być obfuskowany 😀

          • PS3 – minął prawie miesiąc od poprzedniego wpisu 😉 Do dzieła chopie, czytelnicy czekają 😉 Kilka razy na tydzień sprawdzam i nic, na pocieszenie dodam, że u niebezpiecznikó, z3sów, securaków też mało – < każdemu należą się święta? :):):)
            – Żartuję i szanuję. 3m się!

          • PS4 – sorki, że nie piszę ale nie mam czasu, mam juniorkę po rodzinie do wdrożenia na autoTestera albo dewelopera od wordPressów i jest zielona, więc mam pełne ręce roboty. Sorki, ktoś musi poprowadzić wykład od co to jest proces, po hello world, po uruchomienie wordPressa po pierwsze kroki w php, uruchomienie xampa, może także pierwsze dockerCompose no i laravela itp frejmWorki 🙂 Każda drużyna ma murzyna, a ja wprodukuję takiego juniora, co o nim będą pisali annały – mam nadzieję, że nie anegdot – programersi po bootKampach czy udemy – sam właśnie produkuję takiego, tyle, że sam ją uczę – mam nadzieję z korzyścią dla ludzkości. 😉

          • Ciekawy rozrzut ;), WP najprostszy, docker po co tam? Ja mam całą stronę na Yii2, zajebisty framework, Laravelowi brakuje trochę do Yii2, chociaż wszyscy mówią, że na odwrót 🙂

  4. PS poprawiłbyś rejestrację na devStart, bo leci komunikat z g kapcza, że 'Nie można włączyć klucza witryny dla niewidocznego zabezpieczenia captcha.’ no i nie mogę założyć konta, a chciałbym odpowiedzieć juniorkowi w temacie parsowania jsona w pytonie 😉
    PS2 – w ww. kurcze, za każdym wpisaniem literki leci pwd do weryfikacji czy siła jest ok, konstrukcji nie komentuję, bo zawsze dałoby się to zrobić lepiej czy inaczej ale zanim przyjdzie http200 na nie to mija dłuższa chwila, im szybciej piszesz, tym wolniej działa 🙂

    Odpowiedz
  5. PS – zamiast inwestować w wężyka, js, ps zrobiłbyś może obfuskację pod jenkinsa pipelinów w groovy czy basz 🙂 Analogicznie jeśli taka wola do gitLab – nie jestem świadom istnienia takiego produktu na rynku, może za słabo szukałem ale mogłoby być to innowacyjne i trendi, a devOpsy, devSecOpsy, psyOpsy są chyba jeszcze na topie – co o tym myślisz?

    Odpowiedz

Dodaj komentarz