Reverse engineering na IRCu

Reverse engineering

Wszystkich zainteresowanych tematami związanymi z zagadnieniami reverse engineeringu polecamy kanał na IRCu:

#crackscene

Jak to zrobić? Wystarczy:

  • ściągnąć klienta IRC-a, np. mIRC ze strony www.mirc.com
  • połączyć się z serwerem polska.irc.pl
  • wpisać komendę /join #crackscene

Prosimy o:

  • przedstawienie się
  • nie zadawanie pytań „gdzie znajdę cracka do xxx” (autoban)
  • kulturalne zachowanie (w przeciwnym wypadku leci ban)

Zapewniamy:

  • konsultacje z zakresu reverse engineeringu (w miarę możliwości)
  • informacje o narzędziach do RE:
  • dyskusje o nowościach anime
  • porady sercowe 🙂

W razie trybu invite only, należy poprosić o zaproszenie na kanał, wydając komendę /query i poprosić wybranego operatora kanału o zaproszenie, uprzednio przedstawiając się:

  • /query ReWolf
  • /query krzywy_
  • /query ved
  • /query cauchy
  • Przybywajcie 🙂

Keywords v1.5

web-searchNajbardziej oryginalne keywordy z okresu od stycznia do grudnia 2011 roku wpisywane w wyszukiwarki, które doprowadziły do Security News.

  • opserwator w koszęcinie – język polski trudny być
  • agh praca doktorska reverse engineering – któż to się pokusił?
  • badanie w wojsku na waleta – sama radośc
  • dawson crying – ależ proszę bardzo
  • gole babki filmy obejzec teras zadarmo – dzizaz, co za łoś
  • jak nauczyc sie brac kase od znajomych za naprawe pc – tego nie można się nauczyć, trzeba być wrednym sk…
  • jak zainstalowac cracka do eseta instrukcja – na pewno szkoła hakerów już to omawiała
  • kapcie szydelkowe wzory i opisy – nasza specjalizacja!
  • po jakich studiach naprawia sie komputery – po Stanfordzie i Yale
  • chuj dupa keyboard – ?
  • jak odczytać słowo przez kompilator windowsa – hmm debug.com-em!
  • czy po zlozeniu kompa moge juz wgrac windows – nie, musisz wgrać najpierw Androida
  • komputer nagle przestał wolno działać – no fuckin shit men!
  • czy uszkodzony procesor w komputerze można naprawić – no proste, że tak, lutownica w dłoń i jazda
  • nie piszesz nie dzwonisz kończę – proszę nie, daj mi jeszcze jedną szansę!
  • print screen na francuskiej klawiaturze – le print screen?
  • czy morzna naprawić spalono karte grafiki – najlepiej palnikiem
  • czy pan od naprawy komputera mógł mi ukraść karte graficzną – haha
  • jak oszukac hasp – włożyć senselocka do usb
  • pas odchudzajacy z elektrodami – vibro action?
  • jak legalnie zajebac sasiada – polecam książkę „How to murder your neighbour for Dummies”
  • jebana praca programisty – jakis desperat piszący w Visual Basic 5.0?
  • po czym poznac hakera – szkorbut, brele jak denka od jabola i miłość do filozofii GNU
  • www.moj komputer po naprawie chpdzi jak mul co robic.pl – założyć mu chomąto i zaorać nim pole na kartofle
  • zlozylem zamowienie a nie zapłaciłem – a ja je przyjąłem, ale Ci nic nie wysłałem
  • profesjonalny debugger – i lamer…
  • dekompiluje dll c# i mam 3 takie same stringi – olaboga! koniec świata panie!
  • gole babcie zdjencia – daj maila, wyśle Ci fotke swojej zmarłej babci na autopsji
  • jebanie na kombajnie – a zboże to samo się skosi?
  • mateusz jurczyk j00ru miejsce zamieszkania – watch out!
  • na czym polega trial reset – polega na tym, żeby taki idiota jak ty mógł w nieskończoność używać trialowego WinZip-a
  • co nowego u konrada rafalskiego czy ma jeszcze zaklad pogrzebowy – nie mogę, nie, teraz swój pomysł na nekrofilskie zakłady sprzedaje na zasadach franchajsingu
  • komputer działa tylko w pozycji lezącej – bo zmęczony jest, wrzuć mu KitKeta do stacji DVD
  • wkładki doktora lewina – ja Ci polecam opaski na kolana doktora Levina, telemango nie może się mylić!
  • podziekoowanie za after party – after the party is the hotel lobby (R Kelly poleca)
  • zabepieczenie tasp – pozdrowienia dla panów z TeleVox
  • ile to jest 500g margaryny – to jak pół kilograma kartofli
  • konkurs w kajdankach – „Diler Roku”?
  • praca dla osoby znajacej assembler – bad luck 😉
  • skutki rozkręcania komputera – syf w pokoju i kurz w powietrzu
  • perski dywan – tylko u nas za 99.99 EURO!
  • czuczon – taki lamer jeden
  • jebani hipnotyzerzy – kolejna ofiara jebanych hipnotyzerów?
  • nie moge zainstalowac tego jebanego engineera – boś lamer
  • panda security czmeu nie podswietla sie opcja chronienia pena – bo masz pirata
  • powiedział że naprawia komputery – a po 9 miesiącach…
  • programista na dzewie – guru assemblera i medytacji
  • twoja mama musiała byc piekarzem – a twój stary napisał książkę o win16asm

Hex Workshop ehh

Ja się pytam, do czego edytorowi Hex Workshop potrzebny jest restart po instalacji!

Głupota ludzka chyba osiągnęła apogeum (nigdy bym takich skomplikowanych słów nie używał, ale ręce mi opadają)…

Nie byłbym sobą jakbym tego nie sprawdził — zainstalował sobie menu kontekstowe dla shella, no dobra ale nie żyjemy w czasach Windows 3.11 i takie operacje nie wymagają restartu,  przypomnij sobie kiedy restartowałeś komputer po instalacji np. WinRara, który również wrzuca menu kontekstowe — nigdy!

Wykrywanie VMware w C#

Jak wykryć VMware

VMware jest często wykorzystywane w celu uruchamiania złamanego oprogramowania lub aby ominąć zabezpieczenia autora oprogramowania.

Często to wygląda tak, że kupujący po zakupie oprogramowania otrzymuje licencję zablokowaną na sprzętowy identyfikator jednego komputera, który okazuje się być obrazem VMware i tak później oprogramowanie jest dystrybuowane (czytaj sprzedawane) dalej.

Wersji natywnych, wykorzystujących systemowe różnice w działaniu na wykrywanie VMware są dziesiątki, chciałem przedstawić krótki snippet w C# do wykrywania może nie samego VMware, ale narzędzi VMware Tools, które instaluje się na wirtualnej maszynie, aby zapewnić komfortową pracę między wirtualną maszyną, a maszyną użytkownika (np. zapewnić funkcje drag&drop plików etc.), jest to zwykle jedna z pierwszych czynności jakie robi się po zainstalowaniu systemu na wirtualnej maszynie.

using System;
using System.Runtime.InteropServices;

// potrzebne importy
[DllImport("KERNEL32.dll", SetLastError=true)]
static extern IntPtr OpenEvent(uint dwDesiredAccess, bool bInheritHandle, string lpName);

[DllImport("KERNEL32.dll", SetLastError=true)]
static extern IntPtr CreateMutex(IntPtr lpMutexAttributes, bool bInitialOwner, string lpName);

[DllImport("KERNEL32.dll")]
private extern static Boolean CloseHandle(IntPtr handle);

public const int ERROR_ALREADY_EXISTS = 183;

/// 
/// wykrywanie obecności VMWare po zainstalowanych narzędziach VMWare Tools
/// na wirtualnej maszynie
/// 
/// true jeśli wykryto zainstalowane narzędzia VMWare Tools
public static bool IsVMWare()
{
    // otwórz obiekt "VMwareDnDManagerEvent"
    IntPtr eventHandle = OpenEvent(0x001F0003, false, "VMwareDnDManagerEvent");

    // jeśli udało się otworzyć event, to znaczy, że obecne są narzędzia VMWare Tools
    if (eventHandle != IntPtr.Zero)
    {
        CloseHandle(eventHandle);
        return true;
    }

    // utwórz mutex o nazwie wykorzystywanej przez VMWare Tools
    IntPtr mutexHandle = CreateMutex(IntPtr.Zero, false, "VMwareGuestDnDDataMutex");

    // zamknij uchwyt mutexa
    if (mutexHandle != IntPtr.Zero)
    {
        CloseHandle(mutexHandle);
    }

    // jeśli mutex o tej nazwie istnieje, to znaczy, że są obecne narzędzia VMware Tools
    if (Marshal.GetLastWin32Error() == ERROR_ALREADY_EXISTS)
    {
        return true;
    }

    return false;
}

Wykrywanie dotyczy VMware w wersji 7, w wersji 8 należy już zastosować inne nazwy obiektów ze względu na zaktualizowane VMware Tools, jeśli ktoś jest zainteresowany wykrywaniem VMware w najnowszych wersjach (i nie tylko tego środowiska, np. VirtualBox etc.), proszę o kontakt.

Sprzętowy identyfikator w C#

Sprzętowy identyfikator komputera

Krótki snippet w C# dla .NET 4 (jak skorygowali mnie koledzy, zadziała także od .NET 2) pobierający sprzętowy identyfikator maszyny, wykorzystując interfejs WMI, podobne algorytmy stosowane są w aplikacjach, których klucze licencyjne przypisywane są do jednego komputera

using System.Management;
using System.Security.Cryptography;

/// 
/// pobiera sprzętowy identyfikator maszyny korzystając z interfejsu WMI
/// 
/// identyfikator sprzętowy w formie hasha SHA1
public static String hardwareId()
{
    // tymczasowy string
    String tempString = "";

    // "baza danych", z której pobieramy informacje o systemie
    String wmiScope = @"root\CIMV2";

    // tabela zapytań WMI i pobieranych elementów
    String[,] wmiQueries = new String[,]
    {
        { "SELECT ProcessorId FROM Win32_Processor", "ProcessorId" },
        { "SELECT Caption FROM Win32_Processor", "Caption" },
        { "SELECT Manufacturer FROM Win32_Processor", "Manufacturer" },
        { "SELECT Caption FROM Win32_BIOS", "Caption" }
    };

    // wywołujemy kolejne zapytania WMI
    for (int i = 0; i < wmiQueries.GetLength(0); i++)
    {
        try
        {
            // wykonaj zapytanie WMI
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiScope, wmiQueries[i, 0]);

            // zbuduj string z kolejnymi elementami odpowiedzi po zapytaniach WMI
            foreach (ManagementObject obj in searcher.Get())
            {
                tempString += obj[wmiQueries[i, 1]].ToString();
            }
        }
        catch (ManagementException exception)
        {
            // loguj błąd odczytu danych z WMI
        }
    }

    // generuj hash SHA1 ze wszystkich zebranych danych WMI
    SHA1 hash = SHA1CryptoServiceProvider.Create();

    // ciąg znaków zamień na tablicę bajtów
    byte[] plainTextBytes = Encoding.ASCII.GetBytes(tempString);

    // oblicz hash SHA1
    byte[] hashBytes = hash.ComputeHash(plainTextBytes);

    // konwertuj hash SHA1 na postać tekstową (i usuń zbędne znaki "-")
    tempString = BitConverter.ToString(hashBytes).Replace("-", "");

    return tempString;
}

Więcej o WMI na CodeProject:
http://www.codeproject.com/KB/system/WQLByExample.aspx

Praca w ArcaBit

ArcaBit to polski producent oprogramowania antywirusowego ArcaVir, wywodzący się z MksVir-a. Całą smutną historię rozdzielenia się części pracowników i utworzenia ArcaVir oraz o późniejszych wielu sporach moża przeczytać na forach obu firm oraz na portalu DobreProgramy.pl.

Dzisiaj ciekawe opinie o pracy w tej firmie znalazłem na forum 4programmers, a docelowo znajdują się na portalu o pracy GoWork, jeden z ciekawszych cytatów:

Właściciele mają samochody za kilkaset tysięcy [każdy] a w biurze nie ma nawet sprzątaczki.
Jest biuro na parterze i tam ludzie mają grafik, kto i kiedy sprząta [myje podłogi, odkurza i czyści kible – tak kible]. Biuro na piętrze jest sprzątane przez Panią W. [odkurzanie, mucie naczyń, kurze i kible]. Warto nadmienić że Pani W. jest szefową biura a mimo wszystko w godzinach pracy w elegandzkim stroju – sprząta.
Najlepsza było przyjęcie wigilijne – było owszem ciasto i Cola i ….. no niestety nic więcej nie było.
Okropne dziadostwo

Oryginalny wpis:

http://www.gowork.pl/opinie_czytaj2,33733,0,0

PS.
Dzisiaj wyszedł news o upadłości firmy MKS, R.I.P gorszego dziadostwa antywirusowego nie widziałem, jeszcze w czasach wersji DOS-owej skasował mi połowę exeków z dysku, a w czasach Windowsa nie chcieli ze mną nawet rozmawiać o false-positivach w moich pierwszych exe-pakerach.