Na pochmurne, leniwe dni, polecamy keygenme autorstwa tamarotha:
Do ściągnięcia ze strony:
http://tamaroth.eu/index.php/2012/02/09/keygenme-2/
Na pochmurne, leniwe dni, polecamy keygenme autorstwa tamarotha:
Do ściągnięcia ze strony:
http://tamaroth.eu/index.php/2012/02/09/keygenme-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:
https://www.pelock.com/products/netshrink
Wersje demonstracyjną można ściągnąć z:
Setup:
https://www.pelock.com/download/netshrink.exe (701 kB)
Archiwum zip:
https://www.pelock.com/download/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.
Software Press – chce mnie pozwać za ten artykuł!
Miałem tego nie pisać, bo już dawno o nich pisałem, ale ci idioci tak mnie denerwują ciągle nadsyłanymi mailami z prośbą o artykuł (nie rozumieją słowa NIE), że piszę ten tekst na ich własne życzenie.
Hakin9 wydawany jest przez Software Press, dawniej Software Wydawnictwo, które prawdopodobnie zmieniło nazwę (jak się dowiedziałem z nadesłanej groźby od ich radcy prawnego jednak nie zmieniło nazwy) po fali negatywnych komentarzy od autorów artykułów, których regularnie robili w bambuko zwlekając po pół roku z wypłatami.
Jakiś genialny mózg w tym wydawnictwie wpadł na pomysł, że zamiast wydawać pismo na papierze i tracić setki tysięcy złotych na drukarnie, łatwiej będzie wydawać magazyn w formie PDF, oszczędzając na kosztach przy czym zarabiać pieniądze na reklamach.
Zapewne ten sam geniusz marketingowy po jakimś polskim harvardzie biznesowym ala sieć studiów WSB, które sam miałem nieprzyjemność kończyć wpadł na pomysł, żeby jeszcze zaoszczędzić i NIC NIE PŁACIĆ AUTOROM.
O ich nowym modelu biznesowym napisał tonid, były redaktor naczelny pisma na reddicie:
W związku z taką polityką, większość autorów odwróciła się od tego wydawnictwa, bo skoro oni zarabiają, a autor dostaje jedynie „możliwość autopromocji” to każdy szanujący się człowiek wystawi na takie coś środkowy palec.
W związku z wypięciem się większość autorów, kolejni redaktorzy tegoż „szacownego” magazynu zaczęli masowo spamować wszystkie grupy informaytczne na GoldenLine oraz innych portalach informatycznych w poszukiwaniu naiwnych młodych, którzy za możliwość autopromocji mogą łaskawie napisać dla nich artykuł. Trwa to regularnie i kolejni redaktorzy są regularnie banowani z tych portali, ot taka masówka 🙂
Dostałem maila parę dni temu, w którym po angielsku, kolejna edytorka (mimo, że pisałem do nich, żeby mojego maila wykreślili ze swoich list!!!) zaoferowała mi (i kilku moim znajomym) napisanie artykułu, cytuję:
Dear Editor,
I work for Hakin9 magazine and I’ve decided to make You an offer. I would like to propose You to write an article for our magazine. Our issue is entitled: Mobile Platforms Security. I think that you can contribute relevant materials for our magazine.
Hakin9 is a weekly magazine completly focused to IT security. It has 4 different editions every month.
Here are some details concern our cooperation: for your article composed of 3500 with graphics, pictures we offer You:
– An advertisement in our magazine
– Free access to the edition containing your article
– Possibility of self-promotion through Hakin9
– An opportunity to reach out 100 000 IT security professionals,
who are our readers– Plus if you write more than 1 article we give You an annual
magazine subscriptionWe cooperate with many important partners , specialists from all over the world, who are advertising on our website. We can offer You the same interesting options for Your own promotion, like large banners, posts on our website or full page advertisement.
We are a famous magazine with 60 000avg.impressions per month. For more details please visit our website: www.hakin9.org and let me know if You are interested in contributing. We will discuss more details.
We need Your article to be written within 2 weeks.
Best regards,
Ewa Sladkowska
Same opportunity i zero zysków :), czyż można się temu oprzeć! Jednak zaciekawiło mnie coś innego, otóż fakt, że oferują darmową reklamę, mmm pomyślałem sobie, że taka reklama na całą stronę byłaby fajną formą zapłaty, w związku z czym odpisałem pani Ewie, czy w zamian za artykuł otrzymam reklamę na całą stronę, oto co mi odpisała:
Hello, here is the list what we can provide you:
– Large banner on the hakin9 website (in rotation with Security University) space will be available since end of March 2012 (size of the banner is 213×303 milimeters)
– dedicated e-mail blast to our mailing base (in our mailing base now is around 100,000 people. be advice that those are not some random people. Our mailing base is build only from high skilled IT security specialists and IT security enthusiasts)
– post in our newsletter (post with the logo of the company will be send in our regular newsletter which is being send every two weeks, to the same mailing base as e-mail blasts)
– posts on our website regarding your offer. at this time we are placing such post in notice board but if you require we can create job offer section where we will place your offer.
– full page advertisements in our magazines (at December 7th we will become weekly magazine)
Normal prices for those services are:
– large banner in rotation $750 per month
– dedicated e-mail blast $1000 (per one blast, you pay 1 cent per on record from our base)
– post in regular newsletter $750
– post on H9 website $500 per month
– full page $1600 per four adverts. (1 in every issue, 4 per month)
If you decide to purchase the campaign I will give you a discount for every service. If you decide for one year campaign, it will cost 3000$.
So please provide me detailed info about in how many months you are interested, and the number of e-mail blast and newsletter post you are looking for.
I hope we will work out the deal that will please both parties.
W zamian za artykul otrzymsz baner o wielkosci 120x60pixels, umieszczony w zakladce „Partners”. Czy jestes nadal zainteresowany nasza oferta?
Wow! Gratuluję pomysłów i polityki, dzięki którym zraziliście do siebie większość polskich utalentowanych autorów, którzy stanowili o jakości tego typu magazynów, a którzy dla was nie napiszą już nawet słowa, chyba że kondolencji po waszym upadku, czego ja sam nie mogę się doczekać.
PS. Nie piszcie do mnie więcej o artykuł!
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.
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.
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.
.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:
Strona domowa:
https://www.pelock.com/products/netshrink
Wersje demonstracyjną można ściągnąć z:
Setup:
https://www.pelock.com/download/netshrink.exe (692 kB)
Archiwum zip:
https://www.pelock.com/download/netshrink.exe (405 kB)
Czekałem na koniec świata, ale jakoś go nie było, tymczasem mała klasa w C# do patchowania plików z paroma przydatnymi opcjami jak np. patchowanie stringow Delphi.
using System;
////////////////////////////////////////////////////////////////////////////////
//
// Simple C# Patcher Class for Windows (Complex)
//
// You can patch:
//
// - byte arrays
// - single bytes
// - integers
// - strings
// - delphi strings
//
// Language : C#
// Author : Bartosz Wójcik
// Website : https://www.pelock.com
//
////////////////////////////////////////////////////////////////////////////////
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
namespace NetPatcher
{
class Patcher
{
public FileStream inputFile;
public Patcher()
{
}
~Patcher()
{
CloseFile();
}
public bool OpenFile(string filePath)
{
try
{
inputFile = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite);
return inputFile == null ? false : true;
}
catch (Exception e)
{
return false;
}
return false;
}
public void CloseFile()
{
if (inputFile != null)
{
inputFile.Close();
}
inputFile = null;
}
public long PatchArray(long fileOffset, byte[] patchBytes)
{
inputFile.Seek(fileOffset, SeekOrigin.Begin);
inputFile.Write(patchBytes, 0, patchBytes.Length);
return inputFile.Position;
}
public long PatchByte(long fileOffset, byte patchByte)
{
inputFile.Seek(fileOffset, SeekOrigin.Begin);
inputFile.WriteByte(patchByte);
return inputFile.Position;
}
public long PatchString(long fileOffset, string patchString)
{
System.Text.Encoding asciiEncoding = System.Text.Encoding.ASCII;
byte[] encodedPatchString = asciiEncoding.GetBytes(patchString);
return PatchArray(fileOffset, encodedPatchString);
}
public long PatchDelphiString(long fileOffset, string patchString)
{
System.Text.Encoding asciiEncoding = System.Text.Encoding.GetEncoding(1250);
byte[] encodedPatchString = asciiEncoding.GetBytes(patchString);
PatchByte(fileOffset, (byte)encodedPatchString.Length);
PatchArray(fileOffset + 1, encodedPatchString);
return inputFile.Position;
}
public long PatchInt32(long fileOffset, Int32 patchInt32)
{
byte[] encodedInt32 = BitConverter.GetBytes(patchInt32);
PatchArray(fileOffset, encodedInt32);
return inputFile.Position;
}
public long PatchFill(long fileOffset, long Length, byte patchByteFill)
{
while (Length-- != 0)
{
PatchByte(fileOffset++, patchByteFill);
}
return inputFile.Position;
}
}
}
Źródła dostępne także na https://github.com/PELock/Simple-DotNet-Patcher-Class