![]() |
Anzeige:
|
|
|||||||
| Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Hallo alle zusammen! Mal zwei Fragen...
1.) Gibt es eine einfache Möglichkeit festzustellen, ob eine beliebiege Datei ausführbar - also ein Treiber, eine EXE oder eine DLL ... - ist? 2.) Besteht Interesse an einer einfachen Möglichkeit, dies mit Profan zu testen - also an einer PCU?
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Ich würde sagen, ein einfaches LoadLibrary() genügt für so eine Erkennung schon fast.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Schon mal ausprobiert? Was passiert zum Beispiel, wenn man versucht eine Textdatei mittels LoadLibrary zu laden?
Code:
IF FileExists($Progdir+"Include"+"\"+"Windows.ph") UseDLL($Progdir+"Include"+"\"+"Windows.ph") endif WaitKey Code:
Declare File$
File$=$Progdir+"Include"+"\"+"Windows.ph"
IF FileExists(File$)
Print External("Kernel32","LoadLibraryExA",addr(File$),0,$1)
endif
WaitKey
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT Geändert von AHT (29.11.2009 um 23:42 Uhr) |
|
|
|
|
|
#4 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Das funktioniert mal für exe und nicht ausführbare Dateien, nur dll's werden nicht als solche erkannt.
External("Kernel32.dll","GetBinaryTypeA",addr(file$),flag#)
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#5 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
|
#6 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Hab's grad gefunden: Es wird aber nur 0 zurückgeben, wenn man LoadLibraryEx mit dem Flag LOAD_LIBRARY_AS_DATAFILE benutzt, ansonsten gibt es eine Messagebox (siehe Quelltexte weiter oben).
Für meine Zwecke wollte ich die "DLL" nicht gerne laden - ich habe da nach einer anderen Möglichkeit gesucht. Wie Bangkok schon berichtet hat, geht GetBinaryType nicht, denn das liefert keine DLLs. SHGetFileInfo liefert zwar einen String bezüglich der Datei zurück, es ist aber etwas schwierig den vernünftig auszuwerten. Ich habe mir also was gebaut, das die Info ob es nun eine DLL ist oder nicht direkt aus dem "Header" der Datei holt. Es lohnt sich jetzt für mich nicht, aufs geratewohl daraus eine PCU zu bauen. Sollte jemand das aber für seine Anwendung brauchen, kann ich das noch nachholen.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT Geändert von AHT (30.11.2009 um 11:19 Uhr) |
|
|
|
|
|
#7 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#8 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Bei mir kommt keine Meldung.
Ich glaub auch, dass sich eine Unit kaum lohnen wird. Liesst du nur die beiden ersten Bytes aus? MZ.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#9 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Nein, natürlich nicht.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#10 (Direktlink) |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Diese Dateien sollten doch alle einen PE-Header haben. Wie wäre es wenn Du den ausliesst ?
Code:
Declare File#
set("Filemode",0)
CLS
Var FName$ = $SysPath+"\\Kernel32.dll"
Var Size& = Filesize(FName$)
Dim File#,Size&
Assign #1, FName$
OpenRW #1
BlockRead(#1, File#,0,Size&)
Close #1
If MemPos(File#,0,"PE") > 0
Print "ausführbar"
Else
Print "nicht ausführbar"
Endif
Dispose File#
Waitinput
end
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
|
#11 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
Ich kontrolliere zuerst e_magic des IMAGE_DOS_HEADER auf "MZ", dann hohle ich mir e_lfanew aus IMAGE_DOS_HEADER und Springe zum IMAGE_NT_HEADERS. Dort kontrolliere ich auf "PE" und rutsche dann zum IMAGE_OPTIONAL_HEADER herunter, wo ich auf IMAGE_NT_OPTIONAL_HDR32_MAGIC bzw. IMAGE_NT_OPTIONAL_HDR64_MAGIC kontrollierre. Das ist schon recht sicher.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| unnötige SW erkennen?! | frage | Software - Allgemein | 1 | 02.06.2006 22:32 |
| CPU erkennen??? | Syck | Hardware - Kaufempfehlungen | 9 | 20.03.2006 22:53 |
| Erkennen des 2.ten Monitors | darkstar04 | Windows XP | 13 | 03.05.2005 09:11 |
| laufwerke erkennen? | Kwäik | Hardware - Problemlösungen | 3 | 23.02.2005 15:49 |
| CPU-Kern erkennen! | Sandro | Hardware - Problemlösungen | 1 | 07.02.2005 16:39 |