programa dosya gömme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

buyrunuz adamlar normal pc networkü ile 48 biti 2 haftada çözmüşler
As part of a contest to prove the frailty of low-level encryption, a European team based in Switzerland cracked a 48-bit encryption code in less than two weeks.
http://news.com.com/2100-1023-269824.html?legacy=cnet


ya bunun elinde cia nki gibi power pcler olsaydı ne olcaktı.
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
NetZero
Üye
Mesajlar: 136
Kayıt: 14 Ağu 2004 11:12
Konum: Bursa
İletişim:

Mesaj gönderen NetZero »

ben gayet anlasilabilir ve ifade olarak sorunsuz şekilde dusuncelerimi dile getirdim...

Ayrica belirttigim gibi ben olayin tamami icin gereken sureyi verdim..Her hangi bir ek sinirlama ornegin kiril alfabesiyle olusturulduguna emin oldugunuz vakit X harifinin anlamli kelimeler icerisinde ki kullanim sikligi goz onunde bulundurularak gelistirilen algoritmanin bu konuya oncelik vererek daha kisa zamanda sonuca gidilebilmeside bir ihtimaldir ki sureyi kisaltabilir..Nitekim benim verdiğim rakami baz alarak konusacak olursak en son ihtimalde sifrenin bulunabilecegi varsayilirsa zamanlama konusunda bir hataya dusmemis oluruz ama once cikabilecegini de daha yuksek bir ihtimal olarak gorebiliriz.Onun haricinde ben NŞA da sadece maksimum time scope unu vermis oldum..

Ben bunda analitik dusunce disinda bir sey bulamiyorum..Aksine gayet sakinim..ve her zaman dogrudan yanayim..(detay verilmemis olmasi olayin alt kavramlarinin dusunulmedigini ya da iliskilerini ortaya dokecek sekilde tanimlanmadigina isaret etmemeli..)Ayrica ben tez olarak sunmuyorum dediklerimi matematik diliyle anlatilmis evrensel gerçekler...

kınamak mı ? O sizin seciminiz..Benim kalbim bu konuda rahat..

Boyle bir yaklasimda bulundugunuz zaman ben kinama hakkini kendimde gormeden once , yaptigima bakar ve bir kez daha degerlendiririm..Her akilli insanin yapmasi gerektigi gibi..Birakin derdi olan bu ozgur ve Turkiye nin en saygin forumlarindan biri olan http://www.delphiturkiye.com da kendi dusuncesini kendi uslubuyla! saygi kurallari dahilinde gerek sert gerekse kendi belirledigi x dozajinda ifade edebilsin..

"Çalışmanın iyi yönünü keşfedin.."


Ps : @mege aciklamalarini okudum..Tarzini yanlis anladigimi kabul edesim geldi icimden..Samimi olarak soluyorum..Ama ne demek istedigimi anladigina inanmak istiyorum..ve bu arada temenniler in icin tesekkur ederim..Ayrica bir ipucu vereyim su anda beraber calistigim arkadas microsoft Turkiye odullu cok ama cok genc bir yazilimci..Blowfish le yazmisti.Bana da o bulastirdi..Uzerinde calismak icinde esinlendiğimiz kaynaksa sirlari cozuldugunde bizlerin coktan olecegini varsaydigim bir bilgi kaynagi..
c#

:alsana: :boks:
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Veri Tabanı gömmeye ufak bir örnek hazırladım veri tabanı res olarak hazırlandıktan sonra res den veri tabanını oluşturup ve gridde bilgileri alacağız programı kapattıktan sonra da create ettiğimiz veritabanını harddiskten sileceğiz.

Kod: Tümünü seç

implementation

{$R *.dfm}
{$R veri.res} //Res dosyamız

procedure TForm1.Button1Click(Sender: TObject);
var
  rStream:tresourcestream;
  fStream: TFileStream;
  fname: string;
begin
  fname:='VERI.MDB'; //Burası oluşacak veritabanı ismi farklı isim ve uzantı kullanabiliriz. Farklı şekilde kullanırsak veritabanın farkedilmesini biraz daha önlemiş olabiliriz.
  rStream:=tresourcestream.Create(hinstance,'INTRO',RT_rcDATA); //Res in tarzını oluşturuyoruz ve tanıştırıyoruz :P
  rStream.Size; //Res in size na bakıyorum
  ShowMessage(IntToStr(rStream.Size));
  fStream := TFileStream.Create(fname, fmCreate); //Database imizi Create ediyoruz.
  fStream.CopyFrom(rStream, 0); //Datamız artık hdd de canlanıyor :)
  rStream.Free;
  fstream.Free;

  AdoConnection1.ConnectionString := FNAME;
  AdoConnection1.Connected := True;
  AdoDataSet1.Close;
  AdoDataSet1.CommandText := 'Select * From Tablo1';
  AdoDataSet1.Open;

end;
procedure TForm1.Button2Click(Sender: TObject);
begin
     AdoConnection1.Connected := False;
     AdoDataset1.Close;
     DELETEFILE('husonet.mdb'); // Artık programımızı kapatacaz datamızla işimşiz kalmadı ;) Silelim :D
     Close;
end;

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
NetZero
Üye
Mesajlar: 136
Kayıt: 14 Ağu 2004 11:12
Konum: Bursa
İletişim:

Mesaj gönderen NetZero »

S.a
Bu arada @Mege cim tam 3500 bilgisayarlık bir ağda çözmüşler..E bole bir ağda pek karşılası bir hacimde ağ olmadığından kıyısındanda olsa süpercik gibi davranabilir :)

ama sıkı algoritma geliştirmişler..Durum onu gösteriyor..

Saygılar & Sevgiler...
c#

:alsana: :boks:
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

Benzetmem biraz hoşunuza gitmeyecek ama crackerlar PATCHleri exe olarak yine bir exenin içine gömüyor ve extract edebiliyorlar... Bunu nasıl yapabilirim - tabii patch amaçlı... kötü maksatla diil :-)
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

başka bir exeye patch dosyasını kaydedip daha sonra çıkartıp çalıştıran bir yöntem görmedim ama inlinepatch denilen bir yöntem var.

genelde programların sonlarına doğru hiçbir işe yaramayan bölümler bulunur. Bu boş olan yerlere istediğiniz kodları yazdıktan sonra
programın entry pointi bulunup, programı bu yazmış olduğunuz yere zıplatırsınız ve işiniz bittiği zamanda tekrar orjinal yerine zıplatarak programın kaldığı yerden çalışmaya devam etmesini sağlamış olursunuz.

bu boş olan kısıma boyut elverdiği sürece her türlü şeyi yazmak mümkündür.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

@saadettinpolat cevabın için çok teşekkürler ancak ben hiçbişey anlamadım
ya da anlatamadım - anlamamış olduğumu varsayarak bir daha basitçe sormak istiyorum - bu dediğimi yani bir tuşa basarak exe içindeki ikinci exeyi istenilen dizine kopyalabilmek delphi içinde çok zor olmayan kodlarla mümkün mü - yok eğer değilse yapcak zati bişiy yok - eğer elinizde varsa denemek için biraz bilgi veya kod istirham edeceğim - zor bişiy diilse çok kullanışlı olabilir de... KOLAY GELSİN
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@webaytek merhaba...

@webaytek yazdı:- bu dediğimi yani bir tuşa basarak exe içindeki ikinci exeyi istenilen dizine kopyalabilmek delphi içinde çok zor olmayan kodlarla mümkün mü -


- Programın kendi EXE'si içinden okuma yapmak istiyorsan basit bir Binary okuma işini görecektir. Aşağıdaki örnek, programın kendi exe dosyasını hedef.exe adıyla aynı klasöre kopyalamayı örnekliyor...

- Kendi EXE dosyasının belli bir kısmını kopyalamak istersen SEEK komutu ile istediğin offset'e gider ve oradan istediğin kadarını alabilirsin...

Kod: Tümünü seç

Var
  Dosya,
  HedefDosya : File;
  Okunan     : Array [0..1023] of Byte;
  OkunanSize : dWord;
begin
  AssignFile(Dosya, Application.ExeName);
  FileMode := 0; // Sadece Okuma
  Reset(Dosya, 1);

  AssignFile(HedefDosya, ExtractFilepath(Application.ExeName)+'Hedef.EXE');
  FileMode := 1; // Sadece Yazma
  ReWrite(HedefDosya, 1);

  Repeat
    BlockRead(Dosya, Okunan, SizeOf(Okunan), OkunanSize);
    BlockWrite(HedefDosya, Okunan, OkunanSize);
  Until OkunanSize < 1024;
  CloseFile(Dosya);
  CloseFile(HedefDosya);
  ShowMessage('Bitti');
end;
Resim
Resim ....Resim
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

çok özür dileyerek sorumu tekrarlamak zorunda hissediyorum kendimi...
Crack sitelerinden indirdiğiniz patchler varya hani onlarda durum nasıl bir tuşa basıyorsunuz cracklenmiş exe veya dll dosyası hooopp istenilen dizine kopyalanıyor yani exe içinden BAŞKA bir exe dosyası kopyalanıyor. İşte ben bu exe gömme işini nasıl yapacağımı soruyorum. Yani kod basitse istirham edeceğim - yok diilse hiç gerek yok... fikir edinmiş olurum - Yanıtlarınız İçin Çok Teşekkür Ederim @mrmcop & @sadettinpolat
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Senin sorun şimdi bir exe dosya nasıl kırılır'a kadar gidecek gibi, buradan sonra aksi bir soru sorarsan severek cevap yazılır yoksa susmak gerekiyor... :)

- Çünkü EXE'deki etkisiz alan nasıl bulunur diye sorucan biz de EXE başında header denen yerde tanımlı boyut içerisindeki JUNK alanlardan bahsedicez

- Bu JUNK alan nasıl genişletilir diye sorucan,

- Sonra bu genişlemiş alana nasıl dosya gömülür diye sorucan,

- Virus programları heuristik (yanlış yazmışımdır kesin) tarama yapınca virus olabilir diye uyarıyor diycen, bunu ExePack protokolüne dönüştürmeyi sorucan .... vs.vs.vs..

- Şekildeki exe'leri dosya gömme ile başladın, gömülen ikinci EXE'ye nasıl JUMP ettiriceğini soracan vs.vs. Bunun sonu crack yazmak. :!:
Resim
Resim ....Resim
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

aşağıdaki program HelloWorld.exe adlı dosyayı Extractor.exe adlı dosyanın sonuna ekler....

AppendExe.dpr

Kod: Tümünü seç

(* This program demonstrates how to append a file to an executable.
   Written by Marko Peric (lonewolf@tig.com.au) on the afternoon of 27//11/98 *)

program AppendExe;

uses
  Windows, Classes;

const
  ExeName = 'Extractor.exe';     // the base extractor executable
  FileToAdd = 'HelloWorld.exe';  // the file which we will append to the above

var
  MyFile : TFileStream;
  MyAppend : TMemoryStream;

begin
  (* Create a filestream object for the extractor executable *)
  MyFile := TFileStream.Create(ExeName, $0002{fmOpenReadWrite});
  try
  (* Create a memorystream object for the HelloWorld exe *)
    MyAppend := TMemoryStream.Create;
    try
  (* Fill the memory stream with the HelloWorld exe *)
      MyAppend.LoadFromFile(FileToAdd);
  (* Move the stream pointer to the end of the stream *)
      MyFile.Seek(0, soFromEnd);
  (* Append the HelloWorld exe to the extractor exe *)
      MyFile.CopyFrom(MyAppend, 0);
  (* Indicate success and give further instructions *)
      MessageBox(0, 'Congratulations! The ''Hello, World!'' program was successfully appended.' +
                  #13#10 + 'Now move the Extractor program to a seperate sub-directory, and run it.',
                  'File appended',
                  MB_OK + MB_ICONINFORMATION);
    finally
  (* Free the memorystream *)
      MyAppend.Free;
    end;
  finally
  (* Free the filestream *)
    MyFile.Free;
  end;
end.


bu programda kendi içerisinde bulunan helloworld.exe dosyasını dışarı çıkartır.

Extractor.dpr

Kod: Tümünü seç

program Extractor;

uses
  Windows, Classes, ShellAPI;

const
  FileSize = 60416;           // You may have to change to this number to the size
                              // of the compiled Extractor executable - minus the
                              // appended executable of course
var
  MyExtract : TFileStream;
  MyFile : TMemoryStream;
  FileExe : String;
  Buffer : array[0..260] of Char;

begin
  (* Create the memory stream which will hold a copy of this executable in memory *)
  MyFile := TMemoryStream.Create;
  try
  (* What is the name of this executable? *)
    SetString(FileExe, Buffer, GetModuleFileName(0, Buffer, SizeOf(Buffer)));
  (* Load a copy of the executable into memory *)
    MyFile.LoadFromFile(FileExe);
  (* A filestream which will eventually create the HelloWorld program *)
    MyExtract := TFileStream.Create('HelloWorld.exe', fmCreate);
    try
  (* Move the stream pointer to the start of the appended executable *)
      MyFile.Seek(FileSize, 0);
  (* Copy the appended data to our filestream buffer - this creates the file *)
      MyExtract.CopyFrom(MyFile, MyFile.Size - FileSize);
    finally
  (* Free the filestream object *)
      MyExtract.Free;
    end;
  (* Tell the user that extraction went well and ask if s/he wants to run HelloWorld *)
    if MessageBox(0, 'The ''Hello, World!'' program was successfully extracted.' +
                  #13#10 + 'Would you like to run it now?',
                  'Extraction successful!',
                  MB_YESNO + MB_ICONQUESTION) = IDYES then
  (* Run the extracted executable, HelloWorld.exe *)
      ShellExecute(0, 'open', 'HelloWorld.exe', '', '', SW_SHOW);
  finally
  (* Free the memoerystream object *)
    MyFile.Free;
  end;
end.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

@mrmcop biz seninle nasıl anlaşacağız bilmem ki :roll:
1 program nasıl cracklenir diye sormayacağım çünkü adamlar bizim için yapıyor - saolasın :oops:
2 evet bir programcı değilim o yüzden bunları sorarım - Adminim biz bööle konuşunca hemen uyarıyordu - hatta BÜYÜK HARFLERLE sinirleniyordu... Yorum sizin :?
3 benim sorum anlaşılır şekilde yazıyor - eğer basitse kod istedim yok değilse saolun dedim - (3kere) :shock:
4 ben de forumlarla içli dışlıyım - cevap vermek zor geliyorsa - ki tecrübeli olduğunuzu zannediyorum - hiç uğraşmayın (Bu arada halen sakinim :( )
5 lütfen soruma kısa ya da uzun bir cevap istirham ediyorum :)
6 saygılar
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

ben yazarkene cevap gelmiş @sadettinpolat teşekkür ederim yazdıklarını deneyeceğim :) SAOLASIN
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba...

- Aslında cevap verdiğimin farkına varamamışsın :)

- Kibarca sana nasıl yapılacağını ve sonraki aşamada ne ile karşılaşacağını bildirdim.. :idea: :idea: :idea:

- Hazır kodla başlarsan yolda kalırsın şeklinde bir değerlendirme yapıcam bu her zaman sabittir... Her proje etüd ve araştırma gerektirir sen biliyorsun... 8) Etüd için de sorunlar ve çözümler için senaryolar oluşturur bu senaryolara karşı gardını alırsın... Projelerin temeli budur.

- Herkesi olduğu gibi benim vaktim de çok değerlidir. Boş yere hiçbir başlık altına cevap yazmam... Yazarsam da kısadan kestirip atmam... :wink:

- Ben de sinirli değilim zaten mimikler yeterince açık.. :lol:
Resim
Resim ....Resim
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

tartışmak için diil yapılmasını istemediğim çifte standarttan bahsetmek için ADMIN'imi ortaya sürdüm ancak kusuruma bakmayın - dediğiniz gibi adımları anladım - dediğim gibi programcı diilim projeden falan da anlamam - siz programcısınız tabii ki hazır kodlarla diil sizin geliştirdiğiniz kodlarla iş yapmanız gerekir. yeniden söölüyorum. ben programcı diilim ve olmayacağım da ancak kendime özgü abuk subuk programlar yazıyorum - zamanınızı boşa harcadıysam özür dilerim amacım tartışmak değil tersine (4.kez :D ) biraz sizlerden bişiyler kapmak :-) TEŞEKKÜR EDERİM (kızmadan :) )
Cevapla