Показать сообщение отдельно
Старый 27.12.2008, 15:50   #8
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: Защита содержимого JAR файла от распаковки

ViNT - формат исполняемого файла, относиться к java (MIDletPascal), мне тоже интересно - все-ли телефоны обработают измененный архив...

blackman - конечно восстановать можно, достаточно получить блок упакованных данных и к примеру распаковать стандартной windows-библиотекой zlib, вот пример модуля упаковки/распаковки для Delphi:
unit zip;interface Var err:Integer; function compressFile(name,name2:String):Boolean;
function uncompressFile(name,name2:String):Boolean; implementation uses zlib,Classes;
Var inStream, outStream:TMemoryStream;
procedure init;Begin inStream:=TMemoryStream.Create;outStream:=TMemoryStream.Create;End;
procedure done;Begin outStream.Free;inStream.Free;End;
procedure compress; begin err:=0;with TCompressionStream.Create(TCompressionLevel({clNone}clMax),outStream) do
try try CopyFrom(inStream,inStream.Size);except else err:=1; end; finally Free;end;end;
procedure uncompress;Const BufferSize=4096; Var ZStream:TDecompressionStream;Buffer:array[0..BufferSize-1]of Byte;
Count:integer; Begin err:=0;ZStream:=TDecompressionStream.Create(InStream);try try repeat
Count:=ZStream.Read(Buffer, BufferSize);if Count=0 then Break;OutStream.WriteBuffer(Buffer,Count);until false;
except else err:=1;end;finally ZStream.Free;end;End;
function compressFile(name,name2:String):Boolean;Begin Result:=true;try try init;inStream.LoadFromFile(name);compress;
outStream.SaveToFile(name2);finally done;end;except else Result:=false;end;End;
function uncompressFile(name,name2:String):Boolean;Begin Result:=true; try try init;inStream.LoadFromFile(name);
uncompress;outStream.SaveToFile(name2);finally done;end;except else Result:=false;end;End;begin end.
эдесь не добавляется ни какой заголовок, просто упаковываем распаковываем из потока (файла)...
________
нестандартный заголовок - все-же некоторый уровень защиты от посягательств на ресурсы программы..
p.s.: исходники работы с заголовками zip-архивов можно посмотреть здесь: http://www.sources.ru/pascal/archives/index3.htm

Последний раз редактировалось abcdef, 27.12.2008 в 15:55.
(Offline)
 
Ответить с цитированием