Program içine gömülü exeyi çalıştırmak.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Program içine gömülü exeyi çalıştırmak.
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.
- Ş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.
- Çı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.
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;
#############
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;
#############
EXEMod içindeki fonksiyon şu şekilde..
- 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.
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;
- 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.mrmarman yazdı:EXEMod içindeki fonksiyon şu şekilde..
- Yani proje dizinine temp0a0.exe isminde bir dosya create ediyor. Daha önce bildirdiğim teknik yani. Bu sana istediğin şekilde hizmet etmez.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;
- 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.
Lütfen arkadaşlar eğer az da olsa bu işlem ile ilgili bir bilginiz varsa lütfen buraya yazın.
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
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
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
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.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

-
- Üye
- Mesajlar: 1
- Kayıt: 24 Kas 2018 09:31
Re: Program içine gömülü exeyi çalıştırmak.
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
jpege gömerek de yapabilirsiniz. bi yol bulun bişi yapın. bir ücret verebilirim.
tasarim33@mail.com