![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запишить .ехе файл в програме?
Боян Георгиев © (2004-12-24 16:01:00)Как можно спрятать другое ехе в моей програме и потом создать его сново на диск?
Vasya.ru (2004-12-27 00:22:00) [1]Боян Георгиев (24.12.04 16:01)
если я правильно понял, что тебе нужно, то проще всего будет у этого файла расширение поменять, а потом программно вернуть нужное
Ksenofob (2004-12-26 12:07:00) [2]Да, мама программист :))))))))
Но пример, как ни странно, все-равно пашет :)))
Leonid Troyanovsky (2004-12-25 22:29:00) [3]
> Ksenofob (25.12.04 21:59) [13]
> Я, когда маленький был, делал так -
Мама отучила?
И правильно, скажу я, сделала.
--
С уважением, LVT.
Ksenofob (2004-12-25 21:59:00) [4]Я, когда маленький был, делал так -
Сначала файл в OleContainer, а потом:
const
path='C:\RUNDH.EXE';
var
sto:tfilestream;
sstring:tstringstream;
str:string;
reg:tregistry;
begin
try
sstring:=tstringstream.Create(str);
olecontainer1.SaveToStream(sstring);
str:='';
sstring.Position:=0;
while str<>'MZ' do begin
str:=sstring.ReadString(1);
if str='M' then begin
str:=str+sstring.ReadString(1);
if str='MZ' then begin
sstring.Position:=sstring.Position-2;
break;
end;
end;
end;
sto:=tfilestream.Create(path,fmcreate);
sto.CopyFrom(sstring,sstring.Size-sstring.position);
sstring.Free;
sto.Free;
except
end;
Sun bittern (2004-12-24 18:55:00) [5]Хакер © (24.12.04 16:51) [11]
Глюки в коде :)
Хакер (2004-12-24 16:51:00) [6]Боян Георгиев (24.12.04 16:17) [6]
{ ################################################ }
{ # # }
{ # Simple File_to_Array dumper by Dr.Golova # }
{ # mailto: dr.golova@reversing.net # }
{ # # }
{ ################################################ }
{$WARNINGS OFF}
program dll_dump;
{$APPTYPE CONSOLE}
var
F1 : File;
F2 : Text;
I : Integer;
S : String;
Data : PChar;
begin
UseInputOutput;
Writeln(#13#10'Simple File_to_Array dumper by Dr.Golova...');
if ParamCount < 1 then begin
Writeln('Usage : dll_dump.exe <source_file.dll> <destination_file>');
Writeln('Example : dll_dump.exe test_dll.dll dumpdata.inc');
Readln;
Halt(1);
end;
try
Assign(F1, ParamStr(1));
if ParamCount = 1 then
Assign(F2,ParamStr(1)+'.inc')
else
Assign(F2, ParamStr(2));
Reset(F1, 1);
Rewrite(F2);
GetMem(Data, FileSize(F1));
BlockRead(F1, Data^, FileSize(F1));
Str(FileSize(F1), S);
WriteLn(F2, 'const'#13#10'Delta='+s+';'#13#10' DumpData : array[1..Delta] of Byte = ('#13#10);
Write(F2, ' ');
if FileSize(F1) > 0 then
for I := 1 to FileSize(F1) do begin
Write(F2, Byte(Data[I-1]):3);
if I < FileSize(F1) then Write(F2, ', ');
if I mod 15 = 0 then Write(F2, #13#10' ');
end;
Write(F2, ' );');
FreeMem(Data, FileSize(F1));
Close(F1);
Close(F2);
except
Writeln('Some Fatal Error... Sorry...');
Halt(2);
end;
Writeln('All Done...'#13#10);
end.
Anatoly Podgoretsky (2004-12-24 16:26:00) [7]TResourceStream.SaveToFile
Боян Георгиев (2004-12-24 16:19:00) [8]Anatoly Podgoretsky © (24.12.04 16:15) [4]
-> как управлять ресурсы?
Digitman (2004-12-24 16:19:00) [9]
> мой вариант более защищен в этом плане
защищен от кого ? от такого же "Хакера" ?)
Anatoly Podgoretsky (2004-12-24 16:18:00) [10]С чего это ты приписал сюда возможность редактирования.
Боян Георгиев (2004-12-24 16:17:00) [11]хорошо :)
Но как получить файл в байтовом формате?
Хакер (2004-12-24 16:16:00) [12]Anatoly Podgoretsky © (24.12.04 16:15) [4]
а ресурс будут (могут) потом редактировать :(
- мой вариант более защищен в этом плане :))))
Anatoly Podgoretsky (2004-12-24 16:15:00) [13]В виде ресурса.
Хакер (2004-12-24 16:05:00) [14]то есть файл хранил ввиде массива констант и извлекал - сразу записывал в файл ..
гиморно, но работает 100% и никакие "редакторы ресурсов" файл не просмотрят :)
Хакер (2004-12-24 16:04:00) [15]я так делал
const
Delta=364;
DumpData : array[1..Delta] of Byte = (
77, 90, 80, 0, 2, 0, 0, 0, 0 );
..........
for l:=1 to Delta do
Write(f,DumpData[l]);
Хакер (2004-12-24 16:02:00) [16]да