Narzędzia do reversingu w 2022

Zaktualizowana lista i przegląd narzędzi do reverse engineeringu z poprawionymi linkami oraz nowymi narzędziami.

https://www.pelock.com/pl/artykuly/przeglad-narzedzi-do-reverse-engineeringu

https://www.pelock.com/articles/reverse-engineering-tools-review

Jak na 2022 dodałem najnowsze osiągnięcie techniki, którego być może jeszcze nie znacie…

SoftIce

Java Obfuscator – JObfuscator v1.10

Mój obfuscator dla Javy – JObfuscator zyskał małą aktualizację, jeszcze nie jest idealnie, ale po mału wszystko dąży do perfekcji

Interfejs online do potestowania – https://www.pelock.com/jobfuscator/

v1.10 – 09.08.2022

  • Poprawiono błąd w kolejności deklaracji zmiennych przy wykorzystaniu obfuskacji zmieniającej linearną ścieżkę wykonywania kodu (dziękuję Yi Wu)
  • Automatycznie dodawana adnotacja dla środowiska IntelliJ @SuppressWarnings(InstanceVariableMayNotBeInitialized) przy obfuskacji ścieżki kodu
Java Obfuscator - JObfuscator
JObfuscator w wersji command line

Anti-Spam Form dla Yii2 Framework

Anti-Spam Form jest komponentem zastępującym standardowe formy ActiveForm dla Yii2 Framework z ochroną anty-spamową, które są niewidoczne w kodzie HTML dla botów spamowych i narzędzi do zbierania danych (tzw. harvestery).

Jaka jest idea stojąca za formularzami antyspamowymi?

Koncepcja jest prosta. Boty spamowe w większości przypadków są prostymi narzędziami. Potrafią czytać Twoją stronę, szukać znaczników <form> w kodzie HTML i sztucznie wypełniać pola formularza i wysyłać go.

Zwykły bot spamowy to w 99% przypadków web scraper napisany w Pythonie pobierający zawartość strony HTML bez wykonywania kodu JS.

Ale jedną rzeczą pominiętą w metodach wykrywania spamu jest to, że boty spamowe zwykle nie mogą przetwarzać kodu JavaScript. Jest to czasochłonne i wymaga interpretera JS do wykonania kodu na stronie. Aby to osiągnąć należy już wykorzystać bardziej złożone i wolniejsze silniki, zwykle oparte o Chromium.

Jak pokonać spam boty?

Proste – umieścić formularze HTML z zakodowanymi tagami HTML <form> w formie kodu JavaScript. Nie cały formularz, ale początkowy tag ze wszystkimi jego właściwościami.

Nagle boty spamowe nie są w stanie go znaleźć. Mniej spamu bez zbyt wiele pracy.

Zwykle kod formularza wygląda następująco:

<div class="active-form">
  <!--visible <form> tag -->  
  <form id="contact-form" action="/contact" method="post">
    <input type="hidden" name="_csrf" value="u18o4NxJC5lZEhHhjpMTd-c7p3ZzYzl0wvsXMiefJJ_0HWGpr1pm6x5Qa4vnpVw5o1yXNzEQ7USUlE9HVNlGzQ==">
    <div class="form-group field-contactform-name required">
      <label class="control-label" for="contactform-name">Name</label>
      <input type="text" id="contactform-name" class="form-control" name="ContactForm[name]" aria-required="true">
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-email required">
      <label class="control-label" for="contactform-email">Email</label>
      <input type="email" id="contactform-email" class="form-control" name="ContactForm[email]" aria-required="true">
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-subject required">
      <label class="control-label" for="contactform-subject">Subject</label>
      <input type="text" id="contactform-subject" class="form-control" name="ContactForm[subject]" aria-required="true">
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-body required">
      <label class="control-label" for="contactform-body">Body</label>
      <textarea id="contactform-body" class="form-control" name="ContactForm[body]" rows="6" aria-required="true"></textarea>
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-verifycode">
      <label class="control-label" for="contactform-verifycode">Verification Code</label>
      <div class="row">
        <div class="col-xs-4 col-sm-3 col-md-3">
          <img id="contactform-verifycode-image" src="/site/captcha?v=62cff29d6ebe55.89254929" alt="">
        </div>
        <div class="col-xs-2 col-sm-3 col-md-3">
          <input type="text" id="contactform-verifycode" class="form-control" name="ContactForm[verifyCode]">
        </div>
        <div class="col-xs-6 col-sm-6 col-md-6">
          <button type="submit" class="btn btn-block btn-primary" name="contact-button">Send</button>
        </div>
      </div>
      <p class="help-block help-block-error"></p>
    </div>
  </form>
</div>

Po wykorzystaniu komponentu anty-spamerskiego:

<div class="active-form">
  <!-- <form> tag dynamically generated with the JavaScript code -->    
  <script>
    document.write(atob("PGZvcm0gaWQ9ImNvbnRhY3QtZm9ybSIgYWN0aW9uPSIvY29udGFjdCIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX2NzcmYiIHZhbHVlPSJ1MFczN0JLaDJOQko2Q2lVeTFxc3R3OEp6aC1mcUxxOXRnOEpQem9CUjZfMEJfNmxYX0sxb2c2cVV2NmliT1A1UzI3LVh0M2F6bzNnWUZGS1NVY2xfUT09Ij4="));
  </script>
  <div class="form-group field-contactform-name required">
    <label class="control-label" for="contactform-name">Name</label>
    <input type="text" id="contactform-name" class="form-control" name="ContactForm[name]" aria-required="true">
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-email required">
    <label class="control-label" for="contactform-email">Email</label>
    <input type="email" id="contactform-email" class="form-control" name="ContactForm[email]" aria-required="true">
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-subject required">
    <label class="control-label" for="contactform-subject">Subject</label>
    <input type="text" id="contactform-subject" class="form-control" name="ContactForm[subject]" aria-required="true">
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-body required">
    <label class="control-label" for="contactform-body">Body</label>
    <textarea id="contactform-body" class="form-control" name="ContactForm[body]" rows="6" aria-required="true"></textarea>
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-verifycode">
    <label class="control-label" for="contactform-verifycode">Verification Code</label>
    <div class="row">
      <div class="col-xs-4 col-sm-3 col-md-3">
        <img id="contactform-verifycode-image" src="/site/captcha?v=62cff214a00af2.73036299" alt="">
      </div>
      <div class="col-xs-2 col-sm-3 col-md-3">
        <input type="text" id="contactform-verifycode" class="form-control" name="ContactForm[verifyCode]">
      </div>
      <div class="col-xs-6 col-sm-6 col-md-6">
        <button type="submit" class="btn btn-block btn-primary" name="contact-button">Send</button>
      </div>
    </div>
    <p class="help-block help-block-error"></p>
  </div>
  </form>
</div>

Kody źródłowe https://github.com/PELock/yii2-anti-spam-form

Paczka dla PHP https://packagist.org/packages/pelock/yii2-anti-spam-form

Jak odblokować radio w samochodzie?

Z tego artykułu dowiesz się jak odblokować radio w samochodzie popularnych marek, jak uzyskać numer seryjny radia oraz skąd wziąć kod odblokowujący radioodbiornik w aucie.

Zablokowane radio samochodowe

Po awarii lub odłączeniu akumulatora samochodowego, radio samochodowe często pozostaje zablokowane i żeby ponownie móc z niego skorzystać wymagany jest kod zabezpieczający, aby urządzenie zaczęło działać.

Fiat Stilo i Bravo kod odblokowujący do auta.
Fiat Stilo i Bravo kod odblokowujący do auta.

Jeśli jednak nie możesz znaleźć kodu dla swojego radia, nie panikuj. Ten przewodnik pomoże Ci wygenerować kod radia samochodowego popularnych marek.

Jak odblokować odtwarzacz w aucie?

Do poprawnego wygenerowania kodu odblokowującego radio potrzebne są dwie rzeczy.

  • Numer seryjny radia lub czasami tzw. pre-code (kod wstępny) wyświetlany na wyświetlaczu
  • Numer odblokowujący

Numer seryjny radia

Numer seryjny radia można znaleźć na tabliczce znamionowej radia, ale wymaga to demontażu samego odtwarzacza, nie jest to jakieś problematyczne i na kolejnych podstronach znajdziesz poradniki jak to zrobić dla konkretnych modeli aut.

Pre code dla Renault / Dacia na tabliczce znamionowej z tyłu radia.
Pre code dla Renault / Dacia na tabliczce znamionowej z tyłu radia.

Pre-code

Czasami wymagany jest tzw. pre-code zamiast numeru seryjnego radia, jest on zwykle wyświetlany na wyświetlaczu radioodtwarzacza lub wymagane jest naciśnięcie odpowiedniej sekwencji klawiszy na radioodbiorniku, aby pojawił się na wyświetlaczu.

Pre code (tzw. kod ERC) dla radia w samochodach Toyota
Pre code (tzw. kod ERC) dla radia w samochodach Toyota

Kod odblokowujący

Mając numer seryjny radia należy wygenerować kod odblokowujący tzw. unlock code. Zwyczajowo idzie się z tym do ASO i płaci duże pieniądze (jak to w ASO, kto był raz – ten rozumie).

Można jednak sporo zaoszczędzić generując kod u niezależnych dostawców kodów radiowych, którzy wykorzystując reverse engineering analizują oprogramowanie w radioodbiornikach i potrafią stworzyć kalkulatory kodów radiowych.

Generatory i kalkulatory kodów odblokowujących do radia

Poniżej znajdziesz generatory kodów odblokowujących do popularnych modeli samochodów i radioodtwarzaczy.

W każdym odnośniku znajdziesz dokładne instrukcje, które poprowadzą cię krok po kroku, aby odblokować swoje radio.

Renault i Dacia Kod Do Radia Samochodowego Kalkulator i Generator
Dacia Duster, Sandero
Renault i Dacia Kod Do Radia Samochodowego Kalkulator i Generator
Renault Laguna, Megane
Fiat Stilo i Bravo Kod Do Radia Visteon Kalkulator i Generator
Fiat Stilo i Bravo
Ford Kod Do Radia M Seria Kalkulator i Generator
Ford Focus, Fiesta, Mondeo
Ford Kod Do Radia V Seria Kalkulator i Generator
Ford Transit, Escort, Fusion
Chrysler Panasonic TM9 Kod Do Radia Samochodowego Kalkulator i Generator
Chrysler Panasonic TM9
Toyota ERC Kalkulator i Generator Kodu Do Odblokowania Radia
Toyota ERC Kalkulator
Jeep Cherokee Kod Do Odblokowania Radia Kalkulator i Generator
Jeep Cherokee i Grand Cherokee