Optymalizacja kodu assemblera pod względem rozmiaru

Zapraszam do przeczytania mojego małego artykułu na temat optymalizacji kodu assemblera pod względem wielkości. Kilka przydatnych sztuczek przydaje się przy reversingu aplikacji, gdy trzeba zmieścić kod w ograniczonej przestrzeni lub przy kodowaniu shellcodów.

Artykuł dostępny na:

https://dev.to/pelock/assembly-code-size-optimization-tricks-2abd

PS. Polecam również prezentujący różne ciekawe sztuczki nieosiągalne dla kompilatorów HLL

http://mark.masmcode.com/

Total Commander Odzyskanie Hasła FTP

Narzędzie do odzyskiwania haseł FTP dla popularnego menedżera plików Total Commander pozwala na odszyfrowanie haseł wszystkich kont FTP zapisanych w pliku konfiguracyjnym wcx_ftp.ini.

Dekoder haseł FTP dla menedżera plików Total Commander.

Dekoder haseł dostępny na stronie:

https://www.pelock.com/pl/produkty/total-commander-odzyskanie-hasla-ftp

Dodatkowo znajdziecie tam algorytm dekodowania hasła w assemblerze i przepisany na PHP.

Zablokowane wysyłanie poczty na Gmaila

Od około tygodnia czasu zacząłem dostawać zwrotki z @gmaila:

<[email protected]>: host gmail-smtp-in.l.google.com[2a00:1450:400c:c08::1b]
    said: 550-5.7.1 [2a01:7e00::f03c:91ff:fedb:7cbc      19] Our system has
    detected that 550-5.7.1 this message is likely suspicious due to the very
    low reputation of 550-5.7.1 the sending domain. To best protect our users
    from spam, the message 550-5.7.1 has been blocked. Please visit 550 5.7.1
    https://support.google.com/mail/answer/188131 for more information.
    s11si27746295wrv.40 - gsmtp (in reply to end of DATA command)

Zastanawiałem się co mogło być przyczyną, sprawdzenie domeny i adresu IP czy znajduje się na jakichś czarnych listach nie dało żadnych rezultatów.

http://www.anti-abuse.org/multi-rbl-check-results/

Rejestracja domeny pocztowej w https://postmaster.google.com (wcześniej nawet nie wiedziałem, że coś takiego jest) wykazała, że jakieś maile były zgłaszane jako spam, bez jakichkolwiek szczegółów, jedynie daty.

Zacząłem grzebać w logach serwera i co się okazało? Tona ruskich adresów @mail.ru w logach serwera SMTP postfix ze statusem wysłane, ale zablokowane przez serwer odbiorcy (mimo, że serwer pocztowy nie zezwala na wysyłanie nieautoryzowanym użytkownikom). Skąd?

Jun 26 21:27:13 server postfix/smtp[20474]: 4E64DE74167: to=<[email protected]>, relay=mxs.mail.ru[94.100.180.104]:25, delay=13076, delays=13006/69/0.72/0.23, dsn=4.0.0, status=deferred (host mxs.mail.ru[94.100.180.104]

Znalezienie źródła, kto rozpoczął wysyłanie, wymaga wyszukania identyfikatora, w tym wypadku 4E64DE74167 w poprzednio zalogowanych informacjach. I co się okazało? Że wysyła je lokalne konto użytkownika na serwerze, prawdopodobnie przez aplikację PHP…

Okazało się, że na jednym z nieużywanych for postawionych na Invision Power Board – boty tworzyły spamerskie wiadomości – nic nowego, ale boty wiedziały, że forum oferuje opcję wysłania wskazanej wiadomości na wybrany adres email i masowo spamowały nimi tysiące maili…

Nauczka na przyszłość – jak widać spam na forach nie służy jedynie do uprzykrzania życia użytkownikom forum, ale również do masowego spamowania. Teraz już wiem 😉

PS. A tutaj można napisać apelację do Google https://support.google.com/mail/troubleshooter/2696779 jakby ktoś miał podobny problem.

PS2. Mały update – warto wyczyścić kolejkę wiadomości postfixa, bo się okazało, że mi ponad 5000 maili spamerskich wisiało w kolejce i cały czas były próby ich dostarczenia… ehh 😉

PS3. Po około 2 dniach od wykrycia problemu, zgłoszeniu do Google problem został rozwiązany (sam jestem zaskoczony, że tak szybko).

PS4. Problem nie został rozwiązany, tak tylko wyglądało i z tego co czytam obecnie po forach gmaila wielu ludzi ma ten sam problem. Domena dostaje niską ocenę i nie sposób dotrzeć do supportu Gmaila w celu naprawy problemu… Pojedyncze wiadomości do skrzynek Gmaila wysyłam z dedykowanej skrzynki @gmail, a masowe wiadomości dla klientów z domeny .net na innym adresie IP. Jak widać prosta z pozoru rzecz potrafi napsuć krwi.

https://support.google.com/mail/thread/10570288?hl=en

Steganografia Ukrywanie Wiadomości w Obrazkach

Steganografia to sztuka i nauka ukrywania informacji poprzez osadzanie ukrytych informacji w innych, pozornie niewinnych plikach, np. w obrazkach.

Z poniższym kodekiem steganograficznym będziesz w stanie ukryć w obrazku dowolną wiadomość tekstową w bezpiecznych sposób oraz przesłać ją bez wzbudzania jakichkolwiek podejrzeń. Odczytanie wiadomości będzie możliwe jedynie po podaniu hasła deszyfrującego.

https://www.pelock.com/pl/produkty/steganografia-kodek-online

Jak to działa?

W tym przypadku poszczególne bity zaszyfrowanej wiadomości ukryte są jako najmniej znaczące bity w składowych kolorach RGB w pikselach wybranego obrazu. Naniesione zmiany nie są widoczne gołym okiem.

Steganografia sztuka ukrywania informacji w obrazkach

W jaki sposób ukrywane są dane w obrazku?

  1. Wiadomość tekstowa jest kompresowana algorytmem DEFLATE w celu zmniejszenia jej rozmiaru
  2. Generowany jest silny kryptograficzny klucz szyfrujący na podstawie podanego hasła, wykorzystując algorytm PBKDF2 z 20000 iteracjami
  3. Skompresowane dane są szyfrowane poprzednio wygenerowanym kluczem w trybie CBC używając 256 bitowego szyfrowania AES
  4. Zaszyfrowane bity danych są zapisywane na pozycjach najmniej znaczących bitów składowych kolorów RGB poszczególnych pikseli wybranego obrazu

Jakie są praktyczne zastosowania steganografii?

Kilka przykładów:

  • Możesz przechowywać ukryte i zaszyfrowane wiadomości i informacje w obrębie obrazów i przesyłać je do dowolnej osoby za pośrednictwem poczty elektronicznej bez wzbudzania żadnych podejrzeń
  • Whistleblowing i tajne dziennikarstwo
  • Wysyłanie tajnych wiadomości w wysoce monitorowanym lub wrogim środowisku (np. monitorowany przez państwo Internet, strefy działań militarnych)
  • Obrazy z ukrytymi wiadomościami można osadzać na stronach internetowych

Najlepszy font do programowania?

Lata temu, gdy w 4 kilobajtach można było napisać całkiem spory program, korzystałem ze zmodyfikowanego fontu Proggy Clean w swoim edytorze EditPlus do programowania w assemblerze. Postęp technologii, wysokie DPI i coraz większe rozdzielczości wymusiły zmianę na inny programistyczny font i najbardziej spodobał mi się Consolas.

Jednak ostatnio, po długim czasie przerzuciłem się z Consolas w większości edytorów i środowisk IDE na rzecz nowego fontu prosto od Microsoft – Cascadia Code.

Myślałem, że nie przyzwyczaję się do wbudowanych ligatur, czyli łączenia dwóch znaków używanych w programowaniu, takich jak np. „>=” czy „==” w jeden, ładnie wyglądający. Myliłem się. Polecam każdemu spróbować.

Do ściągnięcia z https://github.com/microsoft/cascadia-code

A z jakich fontów wy korzystacie? Piszcie w komentarzach.