reg dosyasını gömüp çalıştırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 42
- Kayıt: 04 Nis 2007 03:57
reg dosyasını gömüp çalıştırma
s.a arkadaşlar
benim yapmak istediğim şey oluşturdugumuz exeye reg dosyasını gömerek buna baglı bir buton atayarak o butona tıkladıgımızda otomatik olarak rege kayıt yapması ben programa regsitry degeri yazmak istemiyorum çünkü gömecegimiz reg dosyası boş olacak ve başka bir programdan ben oraya yazma işlemi yapacagım..Şimdi reg dosyasını rese nasıl gömerim ve projemdeki butona tıkladıgımda nasıl kayıt yaptırırım proyedeki butona nasıl baglarım şimdiden teşekkür ederim cevap verenede vermeyede
benim yapmak istediğim şey oluşturdugumuz exeye reg dosyasını gömerek buna baglı bir buton atayarak o butona tıkladıgımızda otomatik olarak rege kayıt yapması ben programa regsitry degeri yazmak istemiyorum çünkü gömecegimiz reg dosyası boş olacak ve başka bir programdan ben oraya yazma işlemi yapacagım..Şimdi reg dosyasını rese nasıl gömerim ve projemdeki butona tıkladıgımda nasıl kayıt yaptırırım proyedeki butona nasıl baglarım şimdiden teşekkür ederim cevap verenede vermeyede
-
- Üye
- Mesajlar: 13
- Kayıt: 22 Eki 2006 11:33
Devamlı kullandığım bir kodu yazacağım;
Ben yukarıdaki kodu bir procedure halinde yazdım aslında fonksiyonda olabilirdi.Kullanımını bilmiyoruzsan
Umarım yardımcı olmuşumdur 
Kod: Tümünü seç
procedure regedit();
var
reg: TRegistry; //Tregistry 'ı değişken kullanarak kısaltıyoruz
hedef: string; // Register 'e değer ekleyeceğimiz hedefi belirtmek için değişken kullanıyoruz.
begin
{ Kod Başlıyor }
hedef:= 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\'; //Buraya Hedefi Belirliyoruz
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE; //Yönetimine girilecek anahtarı giriyoruz
reg.LazyWrite := false;
reg.OpenKey(hedef,false); // Anahtarı Açıyoruz
reg.WriteString('Shell','Explorer.exe'); //Anahtara değeri ekliyoruz
reg.CloseKey; { Anahtarı kapıyoruz }
reg.free; {Anahtarı kapıyoruz}
end;
Kod: Tümünü seç
Bir buton yada her hangi bir onclick action ı olan bir item(button,label vs...) koy ve regedit; yaz. Bu kodu direk buttona da ekleyebilirsin procedure regedit(); 'ti silerek.

-
- Üye
- Mesajlar: 13
- Kayıt: 22 Eki 2006 11:33
Yanlış anlamış olabilirim.Eğer kodları kullanarak program üzerinden regedit'e kayıt yapmak istemiyorsan;
1- Bir adet memo oluştur memo yu nasıl yapmak istiyorsan öyle yap ve memo1.visible:= false; yap sonrada butona memo1.lines.savetofile('Abcd.reg'); kodunu ekleyerek olayı bilir.
2- Res olayını kullanabilirsin. Exe içine exe gömmek gibi bir anahtar kelime seçip bu olayı sanırım forumda bulabilirsin
1- Bir adet memo oluştur memo yu nasıl yapmak istiyorsan öyle yap ve memo1.visible:= false; yap sonrada butona memo1.lines.savetofile('Abcd.reg'); kodunu ekleyerek olayı bilir.
2- Res olayını kullanabilirsin. Exe içine exe gömmek gibi bir anahtar kelime seçip bu olayı sanırım forumda bulabilirsin

-
- Üye
- Mesajlar: 42
- Kayıt: 04 Nis 2007 03:57
ilgin için teşekkürler fakat anlamatamadım heralde ben zaten reg kayıt işlemini yapıyorum ve reg dosyası olarak dışarı kaydettiriyorum fakat demek istediğim dışarı cıkarmış oldugumuz reg dosyasına tıklayınca rege tekrar kayıt oluyorya bu görevi onun yerine exe dosyası yapsın diyeceksinki butona o komutu verip neden direk kayıt yapmıyorum amacım bu içine reg dosyası gömerek dışardan buraya kayıt yaptırmak ki şöle örnek vereyim bazı cracklerde tıkladıgımızda reg dosyasına kayıt yapar ama bu crack dosyasındaki reg degerleri başka bir program üzerinden yazılır yoksa her programa başka dosya yazmak gerekmektedir ben ana programa degerleri girdikten sonra oluştur adlı butona tıklayacagım ve bana içine benim yazmış oldugum reg degerleri girili exe dosyası oluşturacak sorum bundan ibaret umarım anlatabilmişimdir yurt dışında durmaktan türkçeyide unutacagız 

- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
Kısacası derlenmiş exe içindeki resourceları değiştirip kaydetmek istiyorsun. TResourceStream sınıfını incelemen gerekmekte. Al sana bir de örnek:
Kolay gele.
Kod: Tümünü seç
var
SecRes : TResourceStream;
pTemp : pchar;
TempPath : string;
begin
SecRes := TResourceStream.create(hInstance, 'SECONDAPPEXE', RT_RCDATA);
pTemp := StrAlloc(MAX_PATH);
GetTempPath(MAX_PATH, pTemp);
TempPath := string(pTemp);
StrDispose(pTemp);
SecRes.SaveToFile(TempPath + 'Second.exe');
SecRes.free;
WinExec(pchar(TempPath + 'Second.exe'), SW_SHOW);
end;
-
- Üye
- Mesajlar: 42
- Kayıt: 04 Nis 2007 03:57
hocam sagolun dosyayı gömdüm ve butona tıkladıgımda calışması için aşagıdaki kodu ekledim fakat butona tıkladıgımda exeyi dışarı atıp çalıştırıyor bunun yerine res dosyasından dosyayı cıkarmadan direk çalıştırma olmuyormu
procedure TForm1.Button2Click(Sender: TObject);
var
rStream: TResourceStream;
fStream: TFileStream;
fname: string;
begin
fname:=Paramstr(0))+'MODUL.EXE';
rStream := TResourceStream.Create
(hInstance, 'INTRO', RT_RCDATA);
try
fStream := TFileStream.Create(fname, fmCreate);
try
fStream.CopyFrom(rStream, 0);
finally
fStream.Free;
end;
finally
rStream.Free;
end;
WinExec(FNAME,SW_SHOW);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
rStream: TResourceStream;
fStream: TFileStream;
fname: string;
begin
fname:=Paramstr(0))+'MODUL.EXE';
rStream := TResourceStream.Create
(hInstance, 'INTRO', RT_RCDATA);
try
fStream := TFileStream.Create(fname, fmCreate);
try
fStream.CopyFrom(rStream, 0);
finally
fStream.Free;
end;
finally
rStream.Free;
end;
WinExec(FNAME,SW_SHOW);
end;
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
exe'ye exe gömmek istiyorsan.
İlk Önce Oluşturmak İstediğiniz Dosyayı " C: " Dizinine Kopyalayın, " C: " Dizininde Bir Text Dosyası Oluşturun, Ve Text Dosyasına Yazın Ve Dosyayı Rapier.rc Olarak Kaydedin.
Komut Satırını Açın(Başlat/Çalıştır/Cmd) Ve Parantez İçindekini Yazın (Rapier.rc Dosyası Nerede İse Orayı Yazın)). Enter'a Bastığınız Zaman C:'de Rapier.res Dosyası Oluşmuş Olması Lazım. Res Dosyasını Alıp Ekleyeceğimiz Programın Olduğu Klasore Atıyoruz Ve Kodunda Bu Şekilde Bir Yazı Olacak Bunun Yanına Bunu Ekleyin. Implemention'un Altında Böyle Görünmesi Gerek!!!
Ve Exe Oluşturmak İçinse Aşağıdaki Komutlar Yeterli
res dosyasını editlemek değilde, exe'yi oluşturdukdan sonra editlemek daha mantıklı, bunun için;
ExeMod.pas ve ExeMod.dcu İndir Project Dosyanın Yanına Koy Ve
Project1.dpr'i Editleyince Son Şekil'i Şöyle Olması Lazım;
Ve Uses'a "ExeMod" Ekle, Sonra
Bir Button Koy Ve OnClick'ine Yaz
Bu Kod Oluşan Exe'ye (Önceden Oluşturmuş Olman Gerek) "ADegiskeni" Adında String Yerleştirir.
Oluşan Exe'de Bunu Görmek İçin
Kolay Gelsin
İlk Önce Oluşturmak İstediğiniz Dosyayı " C: " Dizinine Kopyalayın, " C: " Dizininde Bir Text Dosyası Oluşturun, Ve Text Dosyasına
Kod: Tümünü seç
Rapier EXE "C:\Rapier.exe"
Komut Satırını Açın(Başlat/Çalıştır/Cmd) Ve
Kod: Tümünü seç
brcc32 Rapier.rc
Kod: Tümünü seç
C:/>brcc32 Rapier.rc
Kod: Tümünü seç
{$R *.DFM}
Kod: Tümünü seç
{$R Rapier.RES}
Kod: Tümünü seç
{$R *.DFM} {$R Rapier.RES}
Ve Exe Oluşturmak İçinse Aşağıdaki Komutlar Yeterli
Kod: Tümünü seç
procedure ExtractRes(ResType, ResName, ResNewName: String);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, PChar(ResType));
try
Res.SaveToFile(ResNewName)
Finally
Res.Free
end;
end;
ButtonClick Olayına;
ExtractRes('exe', 'Rapier', 'Server.exe'); //ExtractRes('Res Oluşturduğunuz Dosyanın Türü (Exe, Avi, Jpg, vs)', 'Res Oluşturduğunuz Dosyanın Adı', 'Yeni Oluşturacağınız Dosyanın Adı(.exe Türünü Yazmayı Unutmayın)'); //
ExeMod.pas ve ExeMod.dcu İndir Project Dosyanın Yanına Koy Ve
Project1.dpr'i Editleyince Son Şekil'i Şöyle Olması Lazım;
Kod: Tümünü seç
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
ExeMod in 'Unit\ExeMod.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Bir Button Koy Ve OnClick'ine
Kod: Tümünü seç
InsOrReplaceInFile('ADegiskeni', 'Server.exe' 'exeye yazdırılacak yazı);
Bu Kod Oluşan Exe'ye (Önceden Oluşturmuş Olman Gerek) "ADegiskeni" Adında String Yerleştirir.
Oluşan Exe'de Bunu Görmek İçin
Kod: Tümünü seç
ExtractFromExe('ADegiskeni', Edit1.Text);
Kolay Gelsin