Program içine gömülü exeyi çalıştırmak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Program içine gömülü exeyi çalıştırmak.

Mesaj gönderen Jire »

Merhaba DT üyeleri.Program içine gömülü bir exeyi onu çıkarmadan nasıl çalıştırabilirim.Öncelikle ne yapmam gerekir.Birileri adım adım anlatabilirmi?Şimdiden teşekkürler.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Şahsen windows'un geçici (TEMP) klasörüne resource'dan açıp çalıştırıp işi bittiğinde de silerek kullanıyorum. Bugüne kadar direkt memorye açma ihtiyacım olmadı.

- Çıkarmadan çalıştırma imkanını zorlayacak türden bir projen olup olmadığına karar vererek işe başlayabilirsin. Çünkü kolay olduğunu sanmıyorum. Aklıma hemen EXECUTABLE File Compressor dediğimiz EXE dosyasını sıkıştıran ancak çalıştırıldığında kendi kendisini RAM'a açıp çalışan türden yazılımlar geldiğinden açık kaynak kodlu bir tanesi olan UPX'in adresini vereyim.

http://upx.sourceforge.net/

- İnceleyerek bunun nasıl mümkün olduğunu öğrenebileceğini değerlendiriyorum. Uygun bir zamanda sonucu burada yine bizlerle paylaşırsan da seviniriz. Bizlerin de işine yarayabilecek bir konu olabilir.
Resim
Resim ....Resim
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Mesaj gönderen Jire »

Eğer exe templik olsaydı yapardım ama değil.
Bu arada UPX e birazcık baktım ve pek anladığım söylenemez.

Şuan yukarda gördüğüm konuda ki ExeMod u yükledim ve onla birleştirdim prosedürü ama bu sefer klasöre temp yaratıyor.

#############
var
rStream: TResourceStream;
fStream: TMemoryStream;
begin
rStream := TResourceStream.Create(hInstance, 'GIRIS', 'EXE') ;
try
fStream := TMemoryStream.Create;
try
fStream.CopyFrom(rStream, 0) ;
finally
Stream2Exe(fStream);
ReadExe;
fStream.Free;
end;
finally
rStream.Free;
close;
end;
end;
#############
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

EXEMod içindeki fonksiyon şu şekilde..

Kod: Tümünü seç

procedure Stream2Exe(TempStream: TMemoryStream);
begin
 SetCurrentDir(ExtractFilePath(Application.ExeName));
 TempStream.SaveToFile('temp0a0.exe');
 ShellExecute(0, 'open', PChar('temp0a0.exe'),
   PChar(ExtractFilename(Application.ExeName)), nil, SW_SHOW);
 Application.Terminate;
//beep;
end;
- Yani proje dizinine temp0a0.exe isminde bir dosya create ediyor. Daha önce bildirdiğim teknik yani. Bu sana istediğin şekilde hizmet etmez.

- UPX'i biraz önce kabaca inceledim. Linker.CPP dosyasını inceleybilirsin. Yanılıyor olabilirim yüzeysel baktım sadece. Sizi de yanıltmış olmayım. Lütfen konu hakkında bilgisi olan arkadaşlar teyid mekanizmasını çalıştırsınlar... Sanırım UPX programı, EXE dosyasının sıkıştırabilmek için küçük çaplı bir reverse engine yapıp kısmi kaynak halinde LZH ile paketliyor. Sonra da çalışırken bunu açıp bizzat kendisi link ederek çalıştırıyor. Sanki bir programlama dili compiler'ı gibi çalışıyor şeklinde bir izlenim edindim.
Resim
Resim ....Resim
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Mesaj gönderen Jire »

mrmarman yazdı:EXEMod içindeki fonksiyon şu şekilde..

Kod: Tümünü seç

procedure Stream2Exe(TempStream: TMemoryStream);
begin
 SetCurrentDir(ExtractFilePath(Application.ExeName));
 TempStream.SaveToFile('temp0a0.exe');
 ShellExecute(0, 'open', PChar('temp0a0.exe'),
   PChar(ExtractFilename(Application.ExeName)), nil, SW_SHOW);
 Application.Terminate;
//beep;
end;
- Yani proje dizinine temp0a0.exe isminde bir dosya create ediyor. Daha önce bildirdiğim teknik yani. Bu sana istediğin şekilde hizmet etmez.

- UPX'i biraz önce kabaca inceledim. Linker.CPP dosyasını inceleybilirsin. Yanılıyor olabilirim yüzeysel baktım sadece. Sizi de yanıltmış olmayım. Lütfen konu hakkında bilgisi olan arkadaşlar teyid mekanizmasını çalıştırsınlar... Sanırım UPX programı, EXE dosyasının sıkıştırabilmek için küçük çaplı bir reverse engine yapıp kısmi kaynak halinde LZH ile paketliyor. Sonra da çalışırken bunu açıp bizzat kendisi link ederek çalıştırıyor. Sanki bir programlama dili compiler'ı gibi çalışıyor şeklinde bir izlenim edindim.
Evet temp0a0.exe diye oluşturuyor.

Lütfen arkadaşlar eğer az da olsa bu işlem ile ilgili bir bilginiz varsa lütfen buraya yazın.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Nasıl bir uygulamada kullanılacak? Yani burada amaç nedir :?: Merak ettim de :roll:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Mesaj gönderen Jire »

Oyun için kullanacağım.Oyuncular hile yapmasın ve exe üzerinde oynama yapmasınlar diye.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Merhaba

Bence boşuna kasıyorsun... Şöyle diyeyim. Askerde bir arkadaşım vardı. Armadillo için ram gögesinden exeyi bulup çalıyordu. olay şu;

Armadillo bier exeyi sarmalayıp önce gerekli kontrolleri yapan ve hafızadaki debugger vs leri etkisizleştiren bir takım önlemleri peşinen içeren bir koruma programı.

Ancak tüm EXE PROGRAMLARI çalışmak için RAM e yüklenmek zorundadır. dolayısıyla sen exeyi açmadan çalıştırsan bile aslında açıp hafızaya yüklemişsindir. işini bilende zaten ordan alır
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Mesaj gönderen Jire »

ikutluay yazdı:Merhaba

Bence boşuna kasıyorsun... Şöyle diyeyim. Askerde bir arkadaşım vardı. Armadillo için ram gögesinden exeyi bulup çalıyordu. olay şu;

Armadillo bier exeyi sarmalayıp önce gerekli kontrolleri yapan ve hafızadaki debugger vs leri etkisizleştiren bir takım önlemleri peşinen içeren bir koruma programı.

Ancak tüm EXE PROGRAMLARI çalışmak için RAM e yüklenmek zorundadır. dolayısıyla sen exeyi açmadan çalıştırsan bile aslında açıp hafızaya yüklemişsindir. işini bilende zaten ordan alır
Tamam bende diyorum çıkarmadan ram'e yükleyip nasıl çalıştırırız?Hem ben istemesem bile elbet bir gün benim gibi ihtiyacı olan birisİ çıkacktır. :wink:
tasarimyazilim
Üye
Mesajlar: 1
Kayıt: 24 Kas 2018 09:31

Re: Program içine gömülü exeyi çalıştırmak.

Mesaj gönderen tasarimyazilim »

Merhaba ustalar. Benim bir dosyaya , bir exe yi çalışır halde gömmem lazım. Yani exenin dosyada devamlı açık olması yeter.

jpege gömerek de yapabilirsiniz. bi yol bulun bişi yapın. bir ücret verebilirim.

tasarim33@mail.com
Cevapla