Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Dosya İçeriğinden Uzantı Tespiti
#1
Merhaba değerli üyeler , 
Belirtilen bir dosyanın içeriğinden yola çıkarak EXE ya da DLL olup olmadığını anlamak istiyorum.
Bir dosya sunucum var ve uzantısı değiştirilmiş olsa dahi EXE ya da DLL dosya doğrudan kabul etmek istemiyorum, sıkıştırılmış olarak eklenebilir.
Benim için sadece bu iki dosya türünü anlıyor olabilmem yeterli.
Desteğiniz rica eder iyi çalışmalar dilerim.
Cevapla
#2
Üstad PE ya da PE+ dosya formatının açıklamalarını internet üzerinden bulabilirsin. Aradığın bilgi burada ;-)
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
(18-04-2017, Saat: 12:32)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlÜstad PE ya da PE+ dosya formatının açıklamalarını internet üzerinden bulabilirsin. Aradığın bilgi burada ;-)

Tam sizlik bir konu Big Grin
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#4
dosya başındaki 2 yada 3 byte alandan genel dosya tiplerini öğrenebilirsin hocam, yalnız programı yazan benim gibi bi kullanıcı ise yandın demektir Smile altta bi linke attım, birçok sitede açıklamaları vardır.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#5
(18-04-2017, Saat: 15:24)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Oldosya başındaki 2 yada 3 byte alandan genel dosya tiplerini öğrenebilirsin hocam, yalnız programı yazan benim gibi bi kullanıcı ise yandın demektir Smile altta bi linke attım, birçok sitede açıklamaları vardır.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Bunu bende deneyeceğim, Tuğrul hocamın derslerini tekrar gözden geçirmem lazım Smile
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#6
Tuğrul abi ve @esistem yol gösterici açıklamalarınız için teşekkürler.
Takılırsam yeniden kapınızı çalacağım.
Cevapla
#7
Belki işini görür.

function GetExeTypes(const FileName: string): TExeType;
{ func to return the type of executable or dll (DOS, 16-bit, 32-bit). }
(**************************************************************
Usage:
 with OpenDialog1 do
   if Execute then
     begin
       Label1.Caption := FileName;
       Label2.Caption := ExeStrings[GetExetype(FileName)];
     end;

 - or -

 case GetExeType(OpenDialog1.FileName) of
   etUnknown: Label3.Caption := 'Unknown file type';
   etDOS    : Label3.Caption := 'DOS executable';
   etWinNE  : {16-bit} Label3.Caption := 'Windows 16-bit executable';
   etWinPE  : {32-bit} Label3.Caption := 'Windows 32-bit executable';
 end;
***************************************************************)
var
 Signature,
 WinHdrOffset: Word;
 fexe: TFileStream;
begin
 Result := etUnknown;
 try
   fexe := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
   try
     fexe.ReadBuffer(Signature, SizeOf(Signature));
     if Signature = $5A4D { 'MZ' } then
       begin
         Result := etDOS;
         fexe.Seek($18, soFromBeginning);
         fexe.ReadBuffer(WinHdrOffset, SizeOf(WinHdrOffset));
         if WinHdrOffset >= $40 then
           begin
             fexe.Seek($3C, soFromBeginning);
             fexe.ReadBuffer(WinHdrOffset, SizeOf(WinHdrOffset));
             fexe.Seek(WinHdrOffset, soFrombeginning);
             fexe.ReadBuffer(Signature, SizeOf(Signature));
             if Signature = $454E { 'NE' } then
               Result := etWinNE
             else
               if Signature = $4550 { 'PE' } then
                 Result := etWinPE;
           end;
       end;
   finally
     fexe.Free;
   end;
 except
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
   case GetExeTypes(OpenDialog1.FileName) of
     etUnknown: Label1.Caption := 'Unknown file type';
     etDOS    : Label1.Caption := 'DOS executable';
     etWinNE  : Label1.Caption := 'Windows 16-bit executable';
     etWinPE  : Label1.Caption := 'Windows 32-bit executable';
   end;
end;
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla
#8
Çalıştırılabilir dosyaların başındaki MZ harfleri MS-DOS'un geliştiricilerinden Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol'in isminden geliyormuş Smile
Bu vesileyle bu çok değerli bilgiyi de öğrenmiş olduk  Big Grin Big Grin
There's no place like 127.0.0.1
WWW
Cevapla
#9
PE Header'ı okumakla ilgili Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol bir örnek var. Belki birilerinin işine yarayabilir.
There's no place like 127.0.0.1
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Dosya veya klasorlere en son erisim zamanını ogrenme klavye 11 263 14-03-2018, Saat: 15:11
Son Yorum: klavye
  Dosya Taşıma dkadir 2 141 13-02-2018, Saat: 10:07
Son Yorum: Cyber
  Dosya İndirme yhackup 3 177 06-02-2018, Saat: 10:04
Son Yorum: yhackup
  DXF dosya çalışması boreas 1 241 25-07-2017, Saat: 10:02
Son Yorum: barutali
  Windows api index hzılı dosya arama veya MFT Master File Table Dosya Arama carsoft 3 394 08-07-2017, Saat: 10:09
Son Yorum: carsoft



Konuyu Okuyanlar: 1 Ziyaretçi