AutoIt Obfuscator v1.1 – Aktualizacja Silnika

AutoIt Obfuscator został zaktualizowany do wersji 1.1, gdzie cały kod parsera AST został przepisany, w efekcie czego wszystko działa w końcu tak jak powinno, czyli szybko.

https://www.pelock.com/obfuscator/

Przyznaję, poprzednia wersja miała problemy wydajnościowe już przy większych skryptach, jednak dzięki migracji na PHP7 i wykorzystaniu nowych elementów języka udało się uzyskać bardzo dobre rezultaty.

AutoIt Obfuscator Kod Po Obfuskacji

Zachęcam do testów, a jeśli macie jakieś sugestie co do strategii obfuskacyjnych to przyślijcie je z przykładowymi kodami źródłowymi, jeśli zostaną wykorzystane otrzymacie darmowe kody aktywacyjne.

Praca Senior Security Researcher

minervaFirma Minerva z Izraela poszukuje kandydatów na stanowisko Senior Security Researchera. Z opisu wynika, że praca jest w Izraelu. Opis ze strony:

Responsibilities

We are looking for an expert security researcher to join our growing team.

The scope of responsibility for this role includes:

  • Research and extend our product vision and implementation
  • Analysis of malware, exploits and vulnerabilities
  • Maintain and improve existing coverage of lab automation and simulation
  • Respond to malware based security events at customers environments.

Requirements

  • BSc in Computer science or relevant army unit or proven industry experience
  • Experience in reverse engineering and malware analysis
  • Experience with C/C++ and Windows API
  • Deep understanding of inner-workings of operating systems
  • Experience with disassembly, debugging tools and unpacking
  • Good understanding of Assembly x86/x64, Intel Architecture and corresponding instruction formats.
  • Development experience in scripting languages such as Python.
  • Knowledge in Security and Anti Malware technologies
  • Knowledge of enterprise level security products and implementation
  • Visionary and creative, strong problem solving, troubleshooting and analysis skills
  • Experience working in fast-paced development environments
  • Advanced written and verbal communication skills.

Send your CV to [email protected] and you’ll be one step closer to being part of our team!of our team!

https://www.minerva-labs.com/careers/senior-security-researcher

AutoIt Obfuscator – Obfuskacja Skryptów AutoIt

Przez ostatni miesiąc pracowałem nad projektem obfuscatora dla języka skryptowego AutoIt i z przyjemnością prezentuję pierwsze wydanie AutoIt Obfuscatora.

AutoIt Obfuscator v1.0

Co to jest AutoIt?

AutoIt to język skryptowy pomocny przy automatyzacji zadań związanych z interfejsem użytkownika w systemie Windows, jest on często wykorzystywany przy tworzeniu skryptów dedykowanych dla Windows, czy całych aplikacji konsolowych lub okienkowych np. botów do gier. Żeby oddać sprawiedliwość, muszę powiedzieć, że jego łatwość użycia i bogactwo oferowanych funkcji również przyczyniła się niestety do tego, że tworzone jest w nim malware, chociaż można tutaj argumentować, że również inne języki programowania są do tego wykorzystywane.

Dekompilacja AutoIt

Wadą AutoIt jest to, że po kompilacji skryptu do formatu EXE, kod skryptu jest zapisany w zasobach pliku EXE w zaszyfrowanej formie, ale dzięki wykorzystaniu odpowiednich narzędzi, możliwe jest jego odtworzenie do pierwotnej formy kodu źródłowego.

Ukryty skrypt AutoIt w zasobach EXE

Obfuskacja kodu AutoIt

AutoIt Obfuscator stosuje zaawansowaną analizę kodu źródłowego AutoIt (AST) i wykorzystując szereg zaawansowanych technik zaciemniania kodu źródłowego potrafi tak zabezpieczyć zmienne, funkcje, stringi, że zrozumienie działania tak zaszyfrowanych elementów w kodzie źródłowym będzie po prostu bardzo trudne.

Przykład przed zastosowaniem obfuscatora:

ConsoleWrite("Hello World!")

Kod po zastosowaniu AutoIt Obfuscatora:

Global $var_382 = 225
Global $VWUKTOPAG = 10
#OnAutoItStartRegister "func_1675"
Global $FBWUYAT_OSPPKEBV = Asc("l")
Global $WnCx4HPC0ea312__qu_T_3[2][16] = [[1540386418, 74, 52187, 23787, 15150, 224, 789929744, 10864, 46, 57292, 240, 36153703,  _
225, 225, 71, 201],  _
[1182170127, 61672, 15345, 37, 43206, 93, 67, 60, 56413, 133, 48731, 50442, 85, 40037,  _
15258, 13131]]
Global $var_2697 = Asc("C")
Global $var_502[15] = [776861442, 50520, 914414646, 60003, 153, 152, 57581, 41, 252554063, 1178542709, 1790,  _
1503905662, 10736, 118, 43596]
#OnAutoItStartRegister "IdybyqbmmzEwhkdbwcylFunc"
Global $dQtfnuoLbawdebyaWhfqizr = Lekpwpih
Global $dMokwkydCxvjc = BitAND
Global $nWhzikjjrw = NabjqvtehhFunc
Global $_TJYsFyGFpg_A_2oUnB = uBG_WvHge_KoF_kUIKRuBDkE_
Global $var_3477 = RryazhTnrreatVrstjczn
Global $3_JqevgUiOsgQ6AIN3YX_F7X_ = StringReverse
Global $mIdavvqh = BitXOR
Global $tQcjmm = ConsoleWrite
Global $var_1580 = func_3695
Global $var_3104 = _ArrayToString
Global $8PV9OzZiO__Uv_5i = func_182
Global $var_2267 = BitNOT
Global $var_1232 = AprrvxelFdkqnecwUytafbsij
Global $IYHEMOSVL_NIVAI = ChrW
Global $var_1660 = StringTrimRight
Global $ZJLLAEEQ = JwctaHcLcuhgwH_lpM_Siu_
#include <Array.au3>
$tQcjmm($3_JqevgUiOsgQ6AIN3YX_F7X_($var_1580(($_wAv_m9f__FXOFTwxBqwX79 < $WRFGDNBJCT_XUFOVVGTR ? 151 : $var_3477()), $var_502[8],  _
($var_2697 >= $WnCx4HPC0ea312__qu_T_3[1][2] ? $var_382 : 107), $FBWUYAT_OSPPKEBV)) & $var_1660($_TJYsFyGFpg_A_2oUnB(($VWUKTOPAG >= $var_3477() ? $FBWUYAT_OSPPKEBV : 216), $var_382),  _
$var_2267(-($FBWUYAT_OSPPKEBV < $8PV9OzZiO__Uv_5i() ? 7 : $WRFGDNBJCT_XUFOVVGTR))) & $3_JqevgUiOsgQ6AIN3YX_F7X_($var_1232($dQtfnuoLbawdebyaWhfqizr(), $_wAv_m9f__FXOFTwxBqwX79, 1798366573)) & $var_1660($ZJLLAEEQ($dQtfnuoLbawdebyaWhfqizr(), $WRFGDNBJCT_XUFOVVGTR, ($WnCx4HPC0ea312__qu_T_3[1][6] > $var_502[7] ? 198565640 : $var_3477())),  _
$mIdavvqh(968160980, $WRFGDNBJCT_XUFOVVGTR)))
Func AprrvxelFdkqnecwUytafbsij($PYLAO_EDFNQKEVTT_GBNZEGWVBB, $IAHTBPINLF_LZPPI_IKLEMVZXAS, $eLnhiqmiOhxcsbkjcKnhua)
    Local $TISRVTYMCY_UTCRMXDAQU_CRHFBPEL[($VWUKTOPAG >= $var_382 ? $var_502[2] : 1)] = [($WnCx4HPC0ea312__qu_T_3[0][0] <= $var_382 ? $var_382 : 0xC3F2)]
    For $eNfcgzp = 0 To 0
        $var_3853 = $TISRVTYMCY_UTCRMXDAQU_CRHFBPEL[$eNfcgzp]
        $var_3853 -= $eNfcgzp
        $var_3853 = $mIdavvqh($var_3853, ($VWUKTOPAG >= $nWhzikjjrw() ? $var_502[6] : 0xEF06))
        $var_3853 += ($var_382 >= $WRFGDNBJCT_XUFOVVGTR ? $_wAv_m9f__FXOFTwxBqwX79 : 0xD378)
        $var_3853 = $dMokwkydCxvjc($var_3853, ($8PV9OzZiO__Uv_5i() >= $WRFGDNBJCT_XUFOVVGTR ? $FBWUYAT_OSPPKEBV : 65535))
        $TISRVTYMCY_UTCRMXDAQU_CRHFBPEL[$eNfcgzp] = $IYHEMOSVL_NIVAI($var_3853)
    Next
    Local $var_2915 = $var_3104($TISRVTYMCY_UTCRMXDAQU_CRHFBPEL, "")
    Return $var_2915
EndFunc
Func JwctaHcLcuhgwH_lpM_Siu_($aAlahprKxwdhaoc, $var_601, $sCfjwvLtiqdrLgegpggt)
    Local $JFANFJDYFI[($var_382 = $var_382 ? 5 : $_wAv_m9f__FXOFTwxBqwX79)] = [($var_2697 <= $VWUKTOPAG ? $VWUKTOPAG : 0x7A2E), 0x7A6D, ($var_382 = $var_382 ? 0x7A2F : $FBWUYAT_OSPPKEBV),  _
($_wAv_m9f__FXOFTwxBqwX79 > $dQtfnuoLbawdebyaWhfqizr() ? 0x7A3A : $_wAv_m9f__FXOFTwxBqwX79),  _
($var_3477() <> $var_3477() ? $VWUKTOPAG : 0x7A01)]
    For $_drmRe331_tm6xDMY5_Q_ninv = ($WRFGDNBJCT_XUFOVVGTR <= $var_502[12] ? $FBWUYAT_OSPPKEBV : 0) To ($WRFGDNBJCT_XUFOVVGTR > $dQtfnuoLbawdebyaWhfqizr() ? 4 : $FBWUYAT_OSPPKEBV)
        $var_3763 = $JFANFJDYFI[$_drmRe331_tm6xDMY5_Q_ninv]
        $var_3763 = $mIdavvqh($var_3763, ($8PV9OzZiO__Uv_5i() >= $_wAv_m9f__FXOFTwxBqwX79 ? $var_3477() : 0x7A4D))
        $var_3763 = $var_3763 + ($dQtfnuoLbawdebyaWhfqizr() <= $FBWUYAT_OSPPKEBV ? $nWhzikjjrw() : 1)
        $var_3763 = $dMokwkydCxvjc($var_3763, 65535)
        $JFANFJDYFI[$_drmRe331_tm6xDMY5_Q_ninv] = $IYHEMOSVL_NIVAI($var_3763)
    Next
    $JFANFJDYFI = $var_3104($JFANFJDYFI, "")
    Return $JFANFJDYFI
EndFunc
Func uBG_WvHge_KoF_kUIKRuBDkE_($YGWXMAHO_KBAAGVPNLL, $var_2579)
    Local $EIIZXLE_KVDXFPWV_PSBJOYZ[($FBWUYAT_OSPPKEBV > $var_2697 ? 13 : $var_3477())] = [0xFF93, 0xFF93, ($var_502[4] >= $nWhzikjjrw() ? $var_502[8] : 0xFF90), ($var_3477() < $8PV9OzZiO__Uv_5i() ? 0xFFDF : $nWhzikjjrw()),  _
($var_502[1] > $FBWUYAT_OSPPKEBV ? 0xFFA8 : $_wAv_m9f__FXOFTwxBqwX79), ($dQtfnuoLbawdebyaWhfqizr() < $var_382 ? 0xFF90 : $FBWUYAT_OSPPKEBV),  _
($var_502[13] <= $var_2697 ? $var_2697 : 0xFF8D), ($_wAv_m9f__FXOFTwxBqwX79 <> $_wAv_m9f__FXOFTwxBqwX79 ? $8PV9OzZiO__Uv_5i() : 0xFFA7),  _
($WRFGDNBJCT_XUFOVVGTR <= $FBWUYAT_OSPPKEBV ? $WnCx4HPC0ea312__qu_T_3[0][1] : 0xFFAE),  _
($var_2697 < $8PV9OzZiO__Uv_5i() ? 0xFFAF : $dQtfnuoLbawdebyaWhfqizr()), ($8PV9OzZiO__Uv_5i() < $_wAv_m9f__FXOFTwxBqwX79 ? 0xFFB5 : $var_382),  _
($WRFGDNBJCT_XUFOVVGTR <= $WnCx4HPC0ea312__qu_T_3[1][13] ? $var_2697 : 0xFFBA), ($WnCx4HPC0ea312__qu_T_3[0][10] <= $var_382 ? $dQtfnuoLbawdebyaWhfqizr() : 0xFFA7)]
    For $eDqcuhsgcxvBmwgohz = 0 To ($WRFGDNBJCT_XUFOVVGTR > $var_2697 ? 12 : $dQtfnuoLbawdebyaWhfqizr())
        $DNMEK_IEDXUB_ZZOIANETRA = $EIIZXLE_KVDXFPWV_PSBJOYZ[$eDqcuhsgcxvBmwgohz]
        $DNMEK_IEDXUB_ZZOIANETRA = $var_2267($DNMEK_IEDXUB_ZZOIANETRA)
        $DNMEK_IEDXUB_ZZOIANETRA = $dMokwkydCxvjc($DNMEK_IEDXUB_ZZOIANETRA, ($8PV9OzZiO__Uv_5i() <= $var_3477() ? $var_3477() : 0xFFFF))
        $EIIZXLE_KVDXFPWV_PSBJOYZ[$eDqcuhsgcxvBmwgohz] = $IYHEMOSVL_NIVAI($DNMEK_IEDXUB_ZZOIANETRA)
    Next
    Local $CWHGTCKSN = $var_3104($EIIZXLE_KVDXFPWV_PSBJOYZ, "")
    Return $CWHGTCKSN
EndFunc
Func func_3695($M2ia21BGv__6rm2rQE1f, $RWXBFJW_ZCPPAAUO, $DWVTV, $_heJ1_iJlHN_09pGG)
    Local $nPgfsdlQdrweuxmt[($FBWUYAT_OSPPKEBV >= $WRFGDNBJCT_XUFOVVGTR ? $var_502[6] : 2)] = [($var_382 > $_wAv_m9f__FXOFTwxBqwX79 ? 0x13EA : $dQtfnuoLbawdebyaWhfqizr()), ($WRFGDNBJCT_XUFOVVGTR > $var_2697 ? 0x13C6 : $8PV9OzZiO__Uv_5i())]
    For $QDLGH = ($var_502[9] > $VWUKTOPAG ? 0 : $dQtfnuoLbawdebyaWhfqizr()) To ($dQtfnuoLbawdebyaWhfqizr() >= $var_502[11] ? $var_3477() : 1)
        $var_2664 = $nPgfsdlQdrweuxmt[$QDLGH]
        $var_2664 = $mIdavvqh($var_2664, ($var_382 > $dQtfnuoLbawdebyaWhfqizr() ? 0x138F : $FBWUYAT_OSPPKEBV))
        $var_2664 -= $QDLGH
        $nPgfsdlQdrweuxmt[$QDLGH] = $IYHEMOSVL_NIVAI($dMokwkydCxvjc($var_2664, ($VWUKTOPAG < $WnCx4HPC0ea312__qu_T_3[0][4] ? 65535 : $var_2697)))
    Next
    $nPgfsdlQdrweuxmt = $var_3104($nPgfsdlQdrweuxmt, "")
    Return $nPgfsdlQdrweuxmt
EndFunc
Func IdybyqbmmzEwhkdbwcylFunc()
    Global $WRFGDNBJCT_XUFOVVGTR = 968160983
EndFunc
Func NabjqvtehhFunc()
    return 609141471
EndFunc
Func func_1675()
    Global $_wAv_m9f__FXOFTwxBqwX79 = 185
EndFunc
Func Lekpwpih()
    return 134
EndFunc
Func func_182()
    return 169
EndFunc
Func RryazhTnrreatVrstjczn()
    return 158
EndFunc

Wersja online, okienkowa, konsolowa i Web API

AutoIt Obfuscator dostępny jest jako usługa online z interfejsem na stronie:

https://www.pelock.com/pl/autoit-obfuscator/

Jako wersja okienkowa i konsolowa dla systemów Windows (.NET) oraz Linux (Mono):

https://www.pelock.com/pl/produkty/autoit-obfuscator/pobierz

AutoIt Obfuscator wersja konsolowa

Dostępny jest również interfejs Web API z przykładami użycia dla PHP:

https://www.pelock.com/pl/produkty/autoit-obfuscator/api

Komercyjny spyware Thief

Dzisiaj tak grzebałem po dysku i odkryłem sporo ciekawych programów, które były całkiem dobrze rozwinięte, jednak nie zostały nigdy wydane.

Jednym z nich jest projekt „Thief”, czyli narzędzie dzięki któremu można było wstrzyknąć do dowolnej aplikacji kod wykradający dowolne pliki z maszyny ofiary z obsługą wgrywania wykradzionych plików na FTP lub wskazany email.

thief

Projekt, mimo, że w pełni funkcjonalny, nigdy nie został wydany, nie pamiętam dokładnie dlaczego, dzisiaj można by go było sklasyfikować jako komercyjny „hacking tool”.

Jestem ciekaw co o tym sądzicie i czy tego typu oprogramowanie znalazłoby klientów?

Licencjonowanie i zabezpieczenie oprogramowania

Upubliczniłem na GitHubie repozytorium z SDK dla swojego systemu ochrony i licencjonowania oprogramowania PELock v2.0.

Zaawansowane ustawienia ochrony aplikacji w PELock v2.0

SDK i setki przykładów użycia są dostępne w wersji dla C/C++, D, Delphi/Pascal, PureBasic, PowerBASIC oraz MASM.

Podgląd okienka z identyfikatorem sprzętowym - blokada na sprzętowy identyfikator w PELock v2.0

Jeśli interesujesz się metodami ochrony oprogramowania przed złamaniem być może znajdziesz także coś dla siebie, ponieważ PELock v2.0 oferuje wiele nowych, niespotykanych metod pozwalających zabezpieczyć oprogramowanie przed crackingiem i reverse engineeringiem.

https://github.com/PELock/PELock-Software-Protection-and-Licensing-SDK