Archiwum

Archive for the ‘Poradniki’ Category

Złośliwa paczka z FB: IMG_0018.jar

Maj 28, 2014 Dodaj komentarz

Dostałem ostatnio wraz z wiadomością prosty, złośliwy programem. Dotarł on do mnie jako załącznik w poniższej postaci.

fb1

W zipie znajdował się pojedynczy plik jar o słodko brzmiącej nazwie IMG_0018, a w nim jedna klasa  i meta-dane. Prawda, że wygląda niewinnie? 🙂

fb2

Działanie programu
Z ciekawości sprawdziłem co robił program, poniżej zapisane jest jego zachowanie. Jak łatwo zauważyć paczka miała za zadanie ściągać z dropboxa i po cichu rejestrować w systemie złośliwe dllki.

create new dir "C:\Temp\"
create new file "C:\Temp\TIWIWSLN.ADZ"

if file „C:\Temp\TIWIWSLN.ADZ” exists
–> 15x run: regsvr32 /s C:\Temp\TIWIWSLN.ADZ

if file „C:\Temp\TIWIWSLN.ADZ” not exist
–> connect to URL: [dropbox]/s/xnf57eni8dpd547/folder.zip?dl=1
–> if connect response code == 200
—-> copy file from [dropbox]/s/xnf57eni8dpd547/folder.zip?dl=1 to C:\Temp\TIWIWSLN.ADZ
—-> 15x run: regsvr32 /s C:\Temp\TIWIWSLN.ADZ
–> repeat for: nwju1443do0kkyw, q7qn5enz2han406, jklutosvow2sa28, nl51ieactma87q0, mxflfforve2ju65, pf5yxvq1wmjcun2, …

Pliki z dropboxa nie są już dostępne, więc nie jestem w stanie stwierdzić co dokładnie zawierały, ale nie spodziewałbym się niczego dobrego.

Uruchomiłem program, co teraz?
Jeśli ktoś przypadkiem ściągnął i uruchomił program radzę wylogować z Facebooka, przez którego najwyraźniej rozprzestrzenia się paczka. Kolejnym krokiem powinno być usunięcie niepożądanych dll-ek.

START -> cmd
regsvr32 /u C:\Temp\TIWIWSLN.ADZ

Jeśli powyższa komenda nie zadziała spróbujcie skorzystać z dowolnego programu do usuwania niepożądanego oprogramowania (np. AdwCleaner). Na końcu należy oczywiście usunąć folder C:\Temp\TIWIWSLN.ADZ wraz z zawartością.

Trudno powiedzieć czy to wystarczy, dlatego polecam przeskanowanie całego systemu programem antywirusowym i antymalware-owym.

PS
Jeśli macie jakieś dodatkowe informacje o tym programie piszcie śmiało, a uzupełnię instrukcję.

Aktualizacje
Okazało się, że nowe linki z dropboxa, są generowane dynamicznie. Dorwałem się więc w końcu do tej nieszczęsnej dllki i nawet udało mi się ją zdeasemblować (PE-Explorer), ale na przeglądanie tak niskopoziomowego kodu nie mam czasu. Jakby ktoś był ciekaw to mogę podesłać.

O problemie pisze już niebezpiecznik: „Hahaha wirus na Facebooku — nie otwierajcie załączników ZIP z wiadomości od znajomych”

Sprawmy by to zadziałało: mpich2 + Windows 7 + Visual Studio 2008/2010 C++

Listopad 4, 2012 Dodaj komentarz

Zmuszenie mpich2 do działania na Windows 7 nie zawsze jest proste. Przygotowałem zestaw kroków, które przy odrobinie szczęścia pozwolą przejść bezboleśnie przez proces konfiguracji.

Instalacja
Ściągamy plik instalacyjny ze strony www.mcs.anl.gov. Koniecznie wybieramy wersję, która odpowiada naszemu systemowi (x64 lub x86). Instalujemy.

Zmienne środowiskowe
Wchodzimy w Panel sterowania\System i zabezpieczenia\System\Zaawansowane ustawienia systemu\Zmienne środowiskowe i modyfikujemy zmienną path. Dodajemy ścieżkę do folderu bin w miejscu, gdzie zainstalowaliśmy mpich (domyślnie będzie to C:\Program Files\MPICH2\bin dla wersji x64 i C:\Program Files (x86)\MPICH2\bin dla wersji x86). Pamiętamy o oddzieleniu nowej ścieżki od pozostałych średnikiem.

Windows Defender
Dodajemy wyjątki w osłonie dla …\MPICH2\bin\mpiexec.exe oraz …\MPICH2\bin\smpd.exe.

Kontrola użytkownika
Radzę również wyłączyć kontrolę użytkownika (UAC) przynajmniej na czas konfiguracji. Możemy to zrobić w Panel sterowania\System i zabezpieczenia\Zmień ustawienia funkcji kontrola użytkownika ustawiając suwak na minimum.

Rejestracja
Uruchamiamy …\MPICH2\bin\wmpiregister.exe (najlepiej jako administrator), podajemy nazwę konta, na którym jesteśmy zalogowani oraz hasło, a następnie klikamy na Register. Wychodzimy wciskając OK. Uwaga: Nie ma możliwości zarejestrowania pustego hasła jednak nie testowałem tego problemu. Możecie napisać do mnie co zrobić w takim wypadku.

Konfiguracja
Uruchamiamy …\MPICH2\bin\wmpiconfig.exe (najlepiej jako administrator, może otwierać się kilka sekund), wybieramy port na szczycie listy (jeśli chcemy korzystać z innego portu niż domyślny wpisujemy go), następnie zatwierdzamy nasz wybór i zamykamy okno. Uwaga: wybrany port musi być otwarty i wolny.

Nowy projekt w Visual Studio
Powinniśmy teraz przetestować naszą konfigurację. Tworzymy nowy, pusty projekt C++ typu Win32 Console Application. Nazwę wybieramy dowolną (np. MPITest).

VC++ Directories
Otwieramy właściwości projektu w Visual Studio 2010, a następnie wchodzimy w Configuration Properties\VC++ Directories. Jeśli korzystamy z wersji 2008, te same ustawienia znajdziemy w Tools\Options\Projects and Solutions\Visual C++ Directories.

Dodajemy odpowiednio …\MPICH2\include do include directories oraz …\MPICH2\lib do library directories. Pamiętamy też, aby zmienić platformę na 64-bitową jeśli korzystamy z takiej wersji systemu (robimy w Configuration Manager, który znajduje się w tym samym oknie).

Hello world
Dodajemy wszystkie pliki z folderu …\MPICH2\lib o rozszerzeniem lib do folderu Resource Files oraz tworzymy plik main.cpp zawierający poniższy kod.

#include <stdio.h>
#include <mpi.h>

int main(int argc, char* argv[]) {
MPI_Init(&argc,&argv);
printf("Hello world!\n");
MPI_Finalize();
return 0;
}

Jeśli wszystko zrobiliśmy dobrze, możemy „zbudować rozwiązanie”. Klikam na Build\Build Solution i czekamy, aż na dole wyświetli się komunikat Build succeeded.

Uruchomienie programu
Tak skompilowany program możemy uruchomić na kilka sposobów, pozwolę sobie przedstawić najłatwiejszy. Uruchamiamy …\MPICH2\bin\wmpiexec.exe, wybieramy nasz MPITest.exe, określamy liczbę procesorów w zależności od liczby dostępnych i klikamy w Execute. Jeśli każdy procesor przywitał się ze światem wszystko zrobiliśmy dobrze. Gratulację. 😉

Java Killers – cz. 1

Październik 19, 2012 Dodaj komentarz

Pierwsze zestawienie zagadek dotykających różnych zawiłości językowych. Na dobry początek przedstawiam dziesięć klasycznych zagadnień wyjętych z książki „Java Puzzlers: Traps, Pitfalls, and Corner Cases”:

java-puzzlers-sampler.pdf

Własne CodeFolds w Eclipse/NetBeans IDE (czyli #region z C# w Javie)

Październik 5, 2012 Dodaj komentarz

Organizowanie kodu w regiony znane z C# od razu mi się spodobało. Zwijania fragmentów kodu w opisane bloki jest bardzo naturalne i wygodne. Oczywiście nie zgadzam się z teorią, że regiony służą do ukrywania bałaganu w programie, dla mnie jest to forma zwiększenia przejrzystości i ułatwienia dostępu do właściwej logiki.

Mniejsza jednak o motywację 😉 Ostatnio z różnych względów piszę więcej w Javie niż w C# i trochę zatęskniłem za regionami. Oto co znalazłem w potrzebie:

NetBeans
Użytkownicy NetBeans IDE są niejako uprzywilejowani, ponieważ twórcy tego narzędzia wcześniej przewidzieli zapotrzebowanie na „regiony”. Ich użycie jest bardo proste, odsyłam więc do wiki (FaqCustomCodeFolds). Plusem jest, że po zaznaczeniu fragmentu kodu pojawia się możliwość zwinięcia go w opatrzony komentarzem blok, wystarczy wybrać odpowiednią opcję z podpowiedzi umieszczanych pomiędzy numerami wiersz.

Eclipse
Pluginy, pluginy, pluginy. Taka jest już specyfika Eclipsa. Wybrałem coffee-bytes, który dobrze spełnia swoją rolę. O instalacji i sposobie korzystania przeczytacie tutaj.

IntelliJ
Nie napisałem nic o IntelliJ IDEA, ponieważ nigdy nie używałem tego IDE (wciąż pozostaję wierny Eclipsowi :)). Jednak zapewne spróbuję przekonać się do czegoś nowego i wtedy uzupełnię ten wpis o rozwiązania tam stosowane.

Instalacja LateX-a pod Windows 7

Maj 31, 2012 11 komentarzy

Jeśli chcecie szybko oraz wygodnie składać profesjonalnie wyglądające dokumentacje, sprawozdania i inne teksty zawierające wzory matematyczne, kody źródłowe i liczne odnośniki, powinniście zainteresować się LateX-em. Narzędzie to wydaje się początkowo nieco nieprzystępne, jednak po pewnej praktyce rekompensuje cały włożony w naukę czas. Aby ułatwić start niezdecydowanym zamieszczam poniżej instrukcję instalacji i konfiguracji LaTeX-a wraz z przykładowym edytorem.

MiKTeX

Wchodzimy na stronę miktex.org, otwieramy dział Download, a następnie wybieramy MiKTeX 2.9 (lub nowszy).

Ściągamy Basic MiKTeX 2.9 Installer wybierając źródło z rozwijanej listy i klikając Download (jeśli polskie źródło nie działa, należy wybrać inne). Pobrany plik instalujemy (wszystkie opcje domyślne), trwa to dosyć długo.

TexMaker

Wchodzimy na stronę www.xm1math.net/texmaker. Pobieramy najnowszą wersję programu przeznaczoną dla naszego systemu texmakerwin32_install.exe. Pobrany program instalujemy.

Konfiguracja słownika

Pobieramy polski (lub inny wybrany) słownik ze strony Open Office’a pl.openoffice.org/pliki/pl_PL.zip i wypakowujemy w folderze, w którym zainstalowaliśmy program TexMaker. Jeśli system wyświetla ostrzeżenie dostępu wybieramy opcję Kontynuuj.

Otwieramy TexMaker’a (skrót powinien być już na pulpicie) i wchodzimy w Preferencje i dalej w Konfiguracja TexMakera. W zakładce Edytor sprawdzamy pola Kodowanie znaków (powinno być UTF-8) oraz słownik ortograficzny (powinien być wybrany polski słownik pl_PL.dic wypakowany wcześniej w folderze aplikacji).

Konfiguracja podglądu

Już prawie jesteśmy gotowi do tworzenia dokumentów. Otwieramy jeszcze raz konfigurację i w zakładce Polecenia, Przeglądarka PDF zaznaczamy opcję Osadź jeśli chcemy mieć dostęp do dynamicznego podglądu PDF-ów w tym samym oknie (zmiany pojawiać się będą po każdorazowej kompilacji dokumentu przyciskiem F1).

Rozpoczęcie pracy

Uruchamiamy ponownie komputer. W tym momencie możemy przejść do kursu wprowadzającego do LateX-a, radzę jednak wcześniej skompilować plik testowy dołączony do tego wprowadzania. Zawiera podstawowe biblioteki, które TexMarket automatycznie ściągnie i zainstaluje (w zależności od ustawienia w systemie może być konieczne akceptowanie instalacji każdej z nich). Proces ten jest dość żmudny, ale pozwoli zaoszczędzić czas później (szczególnie jeśli nie będziemy mieli dostępu do Internetu). Kompilacja powinna zając ok. 5 minut.

Co dalej?

Od strony technicznej wszystko jest już przygotowane, natomiast z materiałów na start zapoznanie się z jednym z wprowadzeń do LateX-a:

Poza tym w internecie jest wiele opracowań, podręczników i poradników, z których można i należy korzystać. 😉

PS To się nazywa wyjście naprzeciw potrzebie. Post, który właśnie przeczytaliście generuje ok. 90% ruchu na tym blogu. Mam nadzieje, że okazał się pomocny. Pozdrawiam. 🙂