Хранение тела .exe одного файла в другом

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Snake Plissken, 30 Jan 2010.

  1. Snake Plissken

    Snake Plissken New Member

    Joined:
    7 Jul 2008
    Messages:
    21
    Likes Received:
    0
    Reputations:
    0
    Коротко говоря, мне нужно чтобы кодес одного экзешника хранился каким-то образом в другом. В нужный момент код хранимого ехе сбрасывать в файл и выполнять. Пишу на c+winapi в VS2008. Если возможности реализовать такой трюк нет, то какие можно использовать альтернативные методы?
     
  2. DiffiT

    DiffiT Member

    Joined:
    15 Dec 2009
    Messages:
    195
    Likes Received:
    12
    Reputations:
    3
    линкуй как ресурс :)
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    тупо засовывай файл в ресурс своего exe
    примерно так доставай:
    FindResource->CreateFile->LoadResource->LockResource->WriteFile->CloseHandle

    пример на делфи
    Code:
    var
      Info : dword;
      h : dword;
      wb : dword;
    begin
      Info := FindResource(hinstance, pchar(101), 'LOADER');
      if (Info <> 0) then
      begin
        h := CreateFile('loader.exe', GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
        if (h <> INVALID_HANDLE_VALUE) then
        begin
          WriteFile(h, LockResource(LoadResource(0, Info))^, SizeOfResource(0, Info), wb, nil);
          CloseHandle(h);
        end;
      end;
    end;
    
     
  4. Snake Plissken

    Snake Plissken New Member

    Joined:
    7 Jul 2008
    Messages:
    21
    Likes Received:
    0
    Reputations:
    0
    спасибо, парни