Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

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

 
Боян Георгиев   (2004-12-24 16:01) [0]

Как можно спрятать другое ехе в моей програме и потом создать его сново на диск?


 
Хакер ©   (2004-12-24 16:02) [1]

да


 
Хакер ©   (2004-12-24 16:04) [2]

я так делал
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:05) [3]

то есть файл  хранил ввиде массива констант и извлекал - сразу записывал в файл ..
гиморно, но работает 100% и никакие "редакторы ресурсов" файл не просмотрят :)


 
Anatoly Podgoretsky ©   (2004-12-24 16:15) [4]

В виде ресурса.


 
Хакер ©   (2004-12-24 16:16) [5]

Anatoly Podgoretsky ©   (24.12.04 16:15) [4]
а ресурс будут (могут) потом редактировать :(
- мой вариант более защищен в этом плане :))))


 
Боян Георгиев   (2004-12-24 16:17) [6]

хорошо :)
Но как получить файл в байтовом формате?


 
Anatoly Podgoretsky ©   (2004-12-24 16:18) [7]

С чего это ты приписал сюда возможность редактирования.


 
Боян Георгиев   (2004-12-24 16:19) [8]

Anatoly Podgoretsky ©   (24.12.04 16:15) [4]
-> как управлять ресурсы?


 
Digitman ©   (2004-12-24 16:19) [9]


> мой вариант более защищен в этом плане


защищен от кого ? от такого же "Хакера" ?)


 
Anatoly Podgoretsky ©   (2004-12-24 16:26) [10]

TResourceStream.SaveToFile


 
Хакер ©   (2004-12-24 16:51) [11]

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


 
Sun bittern ©   (2004-12-24 18:55) [12]

Хакер ©   (24.12.04 16:51) [11]

Глюки в коде :)


 
Ksenofob   (2004-12-25 21:59) [13]

Я, когда маленький был, делал так -
Сначала файл в 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;


 
Leonid Troyanovsky ©   (2004-12-25 22:29) [14]


> Ksenofob   (25.12.04 21:59) [13]
> Я, когда маленький был, делал так -


Мама отучила?
И правильно, скажу я, сделала.

--
С уважением, LVT.


 
Ksenofob   (2004-12-26 12:07) [15]

Да, мама программист :))))))))

Но пример, как ни странно, все-равно пашет :)))


 
Vasya.ru ©   (2004-12-27 00:22) [16]

Боян Георгиев   (24.12.04 16:01)
если я правильно понял, что тебе нужно, то проще всего будет у этого файла расширение поменять, а потом программно вернуть нужное



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.035 c
8-1097262333
Yegorchic
2004-10-08 23:05
2005.01.16
Загрузить юч в Delphi...


9-1095652133
Fynjy1984
2004-09-20 07:48
2005.01.16
OpenGL - координаты


1-1103979366
Russko
2004-12-25 15:56
2005.01.16
Выявление ошибки


1-1104403450
clickmaker
2004-12-30 13:44
2005.01.16
есть ли способ узнать номер колонки в листбоксе,


14-1103810851
inic
2004-12-23 17:07
2005.01.16
Брутальный картридж :))