Zreverse-engineerowałem polski portal pobierania dobreprogramy.pl i ich instalator, który jest klasycznym bundlerem adware, sprawiającym problemy użytkownikom co najmniej od 2013 roku (co widać na polskich forach). Zamiast zawierać właściwe oprogramowanie, pobiera on dynamiczną konfigurację XML z CloudFront, która zawiera rzeczywisty link do pobrania. Napisałem narzędzie (CLI/GUI), które wyciąga ten URL poprzez zapytania HTTP (bez uruchamiania oryginalnego pliku .exe)
Użytkownicy w Polsce od lat skarżą się na dobreprogramy.pl. Oto prawdziwy wątek z 2013 roku z forum.benchmark.pl:
"Pobrałem program z dobreprogramy.pl. Zamiast programu dostałem ich 'download assistant'. Podczas instalacji opcja zaawansowana była wyszarzona. Asystent zainstalował bez mojej zgody 2 programy spyware i 1 malware: Claro Search, Browser Defender, Delta Search oraz Delta Chrome Toolbar. Te programy integrują się z przeglądarką, instalują własne paski narzędzi i zmieniają domyślną wyszukiwarkę. Nawet po odinstalowaniu fałszywa wyszukiwarka pozostała. To spyware i malware." - użytkownik "makensis", 2013
Inni użytkownicy potwierdzali problem:
* "Musiałem sformatować dysk, żeby pozbyć się Delta Chrome Toolbar." * "Dobreprogramy oferuje teraz usługę 'NetFix', żeby 'naprawić' komputer zdalnie — boję się, co mogą tam instalować w tle." * "Zawsze wybieram instalację zaawansowaną i odznaczam to g---o. Ale czasem opcja zaawansowana jest wyszarzona."
Sytuacja niewiele się poprawiła. Aktualne instalatory z dobreprogramy nadal używają tego samego modelu bundlera
Ich plik wykonywalny to bundler .NET (zaciemniony przy użyciu .NET Reactor), który działa w następujący sposób:
To po prostu prosta ścieżka przekierowań HTTP. Bundler dodatkowo pobiera endpointy /sec i /report, prawdopodobnie w celach analitycznych i do dodatkowych ofert.
Moje narzędzie w Pythonie odtwarza tę logikę, bez uruchamiania oryginalnego pliku .exe.
Uwagi:
* Niektóre linki wygasają — jeśli dostajesz 404, wersja może być nieaktualna albo link został usunięty * Odpowiedź XML zawiera więcej niż tylko URL — są tam też nazwy produktów, logotypy i inne metadane. Może to być użyte do głębszej analizy działania bundlera
Zastrzeżenie:
To narzędzie jest wyłącznie do celów edukacyjnych i badawczych. Nie omija żadnych zabezpieczeń — jedynie wyciąga publicznie dostępne URL-e, które i tak pobiera sam instalator. Zawsze sprawdzaj podpis cyfrowy pobranego pliku przed uruchomieniem. Autor nie ponosi odpowiedzialności za jakiekolwiek niewłaściwe użycie tego narzędzia.
@nazarhk: Dobra, ale trochę niepotrzebna robota, bo akurat dobreprogramy dają linki bezpośrednie po prawej stronie. To by się przydało do gówien pokroju softronic, albo instalki.net.
EDIT: Widzę, że instalki.net też już dają linki bezpośrednie.
@nazarhk: dlatego kiedyś komputer świat zrobił wersję ks+ gdzie, miałeś bezpośrednie linki, na płytach były kody i mogłeś sobie je zarejestrować. fakt niektóre pełne wersję po czasie już byly niedostępne ale ułatwiało to życie, aż do czasu kiedy skasowali wszystko bo zamknęli gazetę czy zmienili profil
GitHub: https://github.com/nazarhktwitch/dobreprogramy-extractor
Użytkownicy w Polsce od lat skarżą się na dobreprogramy.pl. Oto prawdziwy wątek z 2013 roku z forum.benchmark.pl:
"Pobrałem program z dobreprogramy.pl. Zamiast programu dostałem ich 'download assistant'. Podczas instalacji opcja zaawansowana była wyszarzona. Asystent zainstalował bez mojej zgody 2 programy spyware i 1 malware: Claro Search, Browser Defender, Delta Search oraz Delta Chrome Toolbar. Te programy integrują się z przeglądarką, instalują własne paski narzędzi i zmieniają domyślną wyszukiwarkę. Nawet po odinstalowaniu fałszywa wyszukiwarka pozostała. To spyware i malware."
- użytkownik "makensis", 2013
Inni użytkownicy potwierdzali problem:
* "Musiałem sformatować dysk, żeby pozbyć się Delta Chrome Toolbar."
* "Dobreprogramy oferuje teraz usługę 'NetFix', żeby 'naprawić' komputer zdalnie — boję się, co mogą tam instalować w tle."
* "Zawsze wybieram instalację zaawansowaną i odznaczam to g---o. Ale czasem opcja zaawansowana jest wyszarzona."
Sytuacja niewiele się poprawiła. Aktualne instalatory z dobreprogramy nadal używają tego samego modelu bundlera
Ich plik wykonywalny to bundler .NET (zaciemniony przy użyciu .NET Reactor), który działa w następujący sposób:
1. Wyciąga numer wersji z nazwy własnego pliku (np.
v6.57.0.668.104)2. Buduje adres URL:
[https://d1q3xlywojqwqp.cloudfront.net/config/dobreprogramy.pl/{VERSION}](https://d1q3xlywojqwqp.cloudfront.net/config/dobreprogramy.pl/{VERSION})
3. Pobiera odpowiedź XML zawierającą właściwy link do pobrania (np.
[https://unchecky.com/files/upload/unchecky_setup.exe](https://unchecky.com/files/upload/unchecky_setup.exe))4. Pobiera i uruchamia ten instalator, często z dodatkowymi ofertami bundled
Analiza
Otworzyłem plik .exe w dnSpy (po deobfuskacji przy użyciu NETReactorSlayer) i znalazłem:
string text = ConfigParser.GetConfig().GetConfigValue("URLDYNAMICCONFIG", "");
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().MainModule.ModuleName);
string version = VersionFromFileName(fileNameWithoutExtension);
text = text + "/" + ACNM + "/" + version;
Czyli wersja jest parsowana z nazwy pliku przy użyciu regexa
Analiza dynamiczna
Uruchomiłem instalator z Fiddlerem i przechwyciłem:
GET /config/dobreprogramy.pl/v6.57.0.668.104 HTTP/1.1
Host: d1q3xlywojqwqp.cloudfront.net
Odpowiedź (XML):
<root>
<URLPRODUCT>https://unchecky.com/files/upload/unchecky_setup.exe</URL_PRODUCT>
<PRODUCTLOGOURL>https://img.dobreprogramy.pl/.../logo.png</PRODUCT_LOGO_URL>
<PRODUCTTITLE>Unchecky</PRODUCT_TITLE>
</root>
To po prostu prosta ścieżka przekierowań HTTP. Bundler dodatkowo pobiera endpointy
/seci/report, prawdopodobnie w celach analitycznych i do dodatkowych ofert.Moje narzędzie w Pythonie odtwarza tę logikę, bez uruchamiania oryginalnego pliku .exe.
Uwagi:
* Niektóre linki wygasają — jeśli dostajesz 404, wersja może być nieaktualna albo link został usunięty
* Odpowiedź XML zawiera więcej niż tylko URL — są tam też nazwy produktów, logotypy i inne metadane. Może to być użyte do głębszej analizy działania bundlera
Zastrzeżenie:
To narzędzie jest wyłącznie do celów edukacyjnych i badawczych. Nie omija żadnych zabezpieczeń — jedynie wyciąga publicznie dostępne URL-e, które i tak pobiera sam instalator. Zawsze sprawdzaj podpis cyfrowy pobranego pliku przed uruchomieniem. Autor nie ponosi odpowiedzialności za jakiekolwiek niewłaściwe użycie tego narzędzia.
EDIT: Widzę, że instalki.net też już dają linki bezpośrednie.