.netshrink v2.2
.netshrink to kompresor (tzw. exe-packer) aplikacji .NET-owych, wykorzystujący kompresję LZMA, DLL binder pozwalający scalić aplikację oraz jej dodatkowe moduły DLL do jednego pliku EXE, .netshrink pozwala także na ochronę aplikacji na hasło przed uruchomieniem.

W zaktualizowanej wersji poprawione zostało uruchamianie skompresowanych aplikacji ze ścieżek UNC (zasoby sieciowe) z linii komend i zachowywanie oryginalnej architektury CPU dla skompresowanych plików.
Strona domowa:
http://www.pelock.com/products/netshrink
Wersje demonstracyjną można ściągnąć z:
Setup:
http://www.pelock.com/download.php?f=netshrink.exe (701 kB)
Archiwum zip:
http://www.pelock.com/download.php?f=netshrink.exe (415 kB)
DataHASP to system szyfrowania dowolnych plików aplikacji, dzięki któremu oryginalna treść takich zaszyfrowanych plików widoczna jest jedynie dla aplikacji, które zostały zabezpieczone przez Sentinel HASP Envelope (exe-protector HASPa).
HASP pozwala na szyfrowanie pojedynczych plików jak i całych katalogów z danymi aplikacji poprzez dodatkowe narzędzie:

W samym envelope określa się rodzaj plików, które zostały zaszyfrowane:

Zaszyfrowane pliki aplikacji może odczytać jedynie zabezpieczona aplikacja, realizowane jest to poprzez system hooków na funkcje systemu plików na poziomie usera.
Jeśli aplikacja zostanie rozpakowana, dostęp do oryginalnej treści zaszyfrowanych plików będzie niemożliwy (brakuje tych hooków, które w locie deszyfrują dane).
Jak uzyskać zatem dostęp do oryginalnej treści zaszyfrowanych plików?
Należy do działającej i zabezpieczonej aplikacji wstrzyknąć kod, który wykorzysta jej funkcje systemu plików (na które nałożone są hooki HASPa) i po prostu zaemulować czytanie wybranych plików.
Najprościej można to zrealizować poprzez skrypt ODBScript:
; wolna przestrzen po sekcji kodu
mov dump_hasp,008864D5
mov eip,dump_hasp
asmtxt eip,"dumper.asm"
; alokuj 2 bufory na nazwe pliku wyjsciowego i wejsciowego
alloc 512
mov input_file,$RESULT
alloc 512
mov output_file,$RESULT
; zrzuc 1 plik
mov x, "C:\PATH\APP\DATA.DAT"
call dump_file
; zrzuc 2 plik
mov x, "C:\PATH\APP\CONFIG.DAT"
call dump_file
ret
; funkcja do zrzucania zaszyfrowanych plikow
dump_file:
fill input_file, 512, 0
mov [input_file], x
; plik wyjsciowy bedzie posiadal rozszerzenie .x
add x, ".X"
fill output_file, 512, 0
mov [output_file],x
; ESI -> sciezka pliku wejsciowego
; EDI -> sciezka pliku wyjsciowego
mov esi,input_file
mov edi,output_file
; ustaw EIP na adres procedury dumpujacej
mov eip,dump_hasp
; exec ... ende za chiny nie dziala u mnie... inaczej bym tu dal call dump_hasp?
; uruchom kod z biezacego EIP do napotkania instrukcji RET
rtr ;run to return
mov x, ""
ret
Pomocniczy kod w assemblerze dla skryptu:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; odczytaj plik wejsciowy
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; zapamietaj na stosie nazwe pliku wyjsciowego
push edi
; otworz plik wejsciowy
push 0 ; hTemplate
push 0 ; attribs
push 3 ;OPEN_EXISTING ; creation
push 0 ; security
push 1 ; share mode
push 80000000 ;GENERIC_READ
push esi ; lpFileName
call [0800004] ;CreateFileA
mov ebx,eax
push 0
push ebx ; hFile
call [0800008] ;GetFileSize
mov edi,eax
; zaalokuj pamiec do odczytania danych pliku wejsciowego
push 4 ;PAGE_READWRITE
push 3000 ;MEM_RESERVE or MEM_COMMIT
push edi ; size
push 0
call VirtualAlloc
mov esi,eax
; czytaj plik wejsciowy korzystajac z hookowanych API
push 0
mov eax,esp
push 0 ; dwOverlapped
push eax ; &dwRead
push edi ; dwSize
push esi ; lpBuffer
push ebx ; hFile
call [0800024] ;adres funkcji ReadFile w zabezpieczonym pliku
pop edx
; zamknij plik wejsciowy
push ebx
call [0800088] ;CloseHandle
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; zapisz plik wyjsciowy
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; zdejmij ze stosu nazwe pliku wyjsciowego (odszyfrowany)
pop eax
push 0 ; hTemplate
push 0 ; attribs
push 2 ;CREATE_ALWAYS ; creation
push 0 ; security
push 0 ; share mode
push 40000000 ;GENERIC_WRITE
push eax ; lpFileName
call CreateFileA
mov ebx,eax
; zapisz odczytana tresc pliku wejsciowego
push 0
mov eax,esp
push 0 ; overlapped
push eax ; &dwWritten
push edi ; size
push esi ; buffer
push ebx
call WriteFile
pop edx
; zamknij plik wyjsciowy
push ebx
call CloseHandle
; zwolnij pamiec
push 8000 ;MEM_RELEASE
push 0
push esi
call VirtualFree
ret
Przedstawiona technika pozwala z łatwością odczytać wszystkie zaszyfrowane pliki.
.netshrink v2.1
Właśnie ukazała się nowa wersja mojego małego narzędzia do kompresji aplikacji .NET.
.netshrink to kompresor (tzw. exe-packer) aplikacji .NET-owych, wykorzystujący kompresję LZMA.
DLL Binder
W nowej wersji została dodana opcja dołączania bibliotek dynamicznych DLL do aplikacji, dzięki czemu można swoją aplikację i jej pomocnicze biblioteki skompresować do pojedynczego pliku wykonywalnego.

Wykrywanie narzędzi do łamania aplikacji
Zaktualizowana wersja pozwala również skompresowanym aplikacjom na wykrywanie popularnych narzędzi do łamania i rozpakowywania oprogramowania poprzez stałe monitorowanie systemu na ich obecność, w razie ich wykrycia, skompresowana aplikacja zostanie zamknięta.
Ochrona na hasło
.netshrink pozwala także na zaszyfrowanie aplikacji hasłem, bez poprawnego hasła nie można uruchomić skompresowanej aplikacji. Zabezpieczenie na hasło wykorzystuje weryfikację bazującą na funkcji skrótu SHA256 i szyfrowanie danych algorytmem AES / Rijndael z kluczem 256 bitowym bazującym na wartości hash z hasła.

Nowości obejmują także:
- tworzenie kopii zapasowej kompresowanych aplikacji
- tworzenie skryptu wsadowego .BAT pozwalającego na szybkie przywrócenie oryginalnego pliku z kopii zapasowej
- zachowywanie oryginalnych atrybutów kompresowanego assembly (nazwa aplikacji, dane firmy etc.)
Strona domowa:
http://www.pelock.com/products/netshrink
Wersje demonstracyjną można ściągnąć z:
Setup:
http://www.pelock.com/download.php?f=netshrink.exe (692 kB)
Archiwum zip:
http://www.pelock.com/download.php?f=netshrink.exe (405 kB)
Napisał bartek w kategorii
Narzędzia,
Reversing hexedytor, hiewHIEW
Ukazała się nowa wersja hexedytora HIEW, doszło parę fixów w obsłudze uszkodzonych plików PE oraz poprawki w disassemblingu, jednak warte odnotowania jest dodanie przeglądania zasobów plików PE, co dostępne jest poprzez F8 -> F12

Wersja demonstracyjna dostępna na:
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

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!