Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как запишить .ехе файл в програме?


Боян Георгиев ©   (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]

да


Наверх

Титульная страница Поиск, карта сайта Написать письмо