digimyth Δημοσ. 14 Απριλίου 2009 Δημοσ. 14 Απριλίου 2009 Χαιρετώ. Πρόσφατα έφτιαχνα ένα πρόγραμμα σε VB6 το οποίο απαιτούσε ένα dll. Το αρχείο βιβλιοθήκης σκέφτηκα να το ενσωματώσω στο πρόγραμμα ως resource file ώστε να μην έχω πρόβλημα στη μεταφορά του εκτελέσιμου απο τον ένα υπολογιστή στον άλλο... Μετά μέσω κώδικα θα γινόταν extract στο system32 εφόσον είναι αρχείο βιβλιοθήκης. Το θέμα είναι όμως είναι ότι μόλις το έκανα compile το antivirus μου το αναγνώρισε ως virus με τίτλο newHeur_PE virus με αποτέλεσμα να το διαγράψει. Έπειτα αφού το έκανα exclude συμπίεσα το αρχείο με exe compressor μήπως και σταματήσει να το αναγνωρίζει αλλά και πάλι το αναγνώριζε... Πιστεύω ότι φταίει το res αρχείο. Υπάρχει καμία λύση σε αυτό? Δεν είναι virus το πρόγραμμά μου. Ευχαριστώ πολύ.
bxenos Δημοσ. 14 Απριλίου 2009 Δημοσ. 14 Απριλίου 2009 μα είναι ιός εφόσον έχεις ολόκληρο dll στο resource και θέλεις να το περάσεις στο system32. Συμπίεσε ή πιο απλά κωδικοποίησε το dll με κάποιον άλλο τρόπο (π.χ. κάνε όλα τα byte XOR με το 32) και όταν θέλεις να το περάσεις στο system32, το γράφεις αποκωδικοποιημένο (όλα τα byte XOR 32) σε κάποιο προσωρινό φάκελο και μετά καλείς την συνάρτηση εγγατάστασης για να πάει στο system32.
digimyth Δημοσ. 14 Απριλίου 2009 Μέλος Δημοσ. 14 Απριλίου 2009 μα είναι ιός εφόσον έχεις ολόκληρο dll στο resource και θέλεις να το περάσεις στο system32.Συμπίεσε ή πιο απλά κωδικοποίησε το dll με κάποιον άλλο τρόπο (π.χ. κάνε όλα τα byte XOR με το 32) και όταν θέλεις να το περάσεις στο system32, το γράφεις αποκωδικοποιημένο (όλα τα byte XOR 32) σε κάποιο προσωρινό φάκελο και μετά καλείς την συνάρτηση εγγατάστασης για να πάει στο system32. Ναι αλλά πάλι θα το κάνω resource file μέσα στη VB, οπότε νομίζω πάλι θα το βρει...
bxenos Δημοσ. 14 Απριλίου 2009 Δημοσ. 14 Απριλίου 2009 αν κανεις κωδικοποίηση όπως είπα, δεν θα έχει header απο dll, άρα το antiviruς δεν θα το αναγνωρίσει σαν ιό αλλά σαν ένα πρόγραμμα που κουβαλάει κάποια binary δεδομένα
ntaryl Δημοσ. 14 Απριλίου 2009 Δημοσ. 14 Απριλίου 2009 καλησπερα Φιλε μου τι Dll ειναι αυτο ? το εχεις φτιαξει εσυ ? τι AV εχεις ? Φιλε bxenos και εγω χρησινοποιω res αλλα δεν αναγνωριζονται σαν ιοιι . υπαρχει πιθαντοτητα το συγκεκριμενο dll να εχει χρησιμοποιηθει σεκακοβουλα προγραμματα γι αυτο γινεται αντιληπτο σαν ιος καλο βραδυ
digimyth Δημοσ. 14 Απριλίου 2009 Μέλος Δημοσ. 14 Απριλίου 2009 καλησπερα Φιλε μου τι Dll ειναι αυτο ? το εχεις φτιαξει εσυ ? τι AV εχεις ? Φιλε bxenos και εγω χρησινοποιω res αλλα δεν αναγνωριζονται σαν ιοιι . υπαρχει πιθαντοτητα το συγκεκριμενο dll να εχει χρησιμοποιηθει σεκακοβουλα προγραμματα γι αυτο γινεται αντιληπτο σαν ιος καλο βραδυ Λοιπόν είναι μια βιβλιοθήκη που χρησιμοποιείται για να παίζει ήχο και δεν την έχω φτιάξει εγώ αλλά την έχω βρει απο μια πολύ καλή σελίδα... Επίσης το θέμα είναι ότι το dll δεν περιέχει εκτελέσιμο κώδικα αλλά συναρτήσεις που βοηθούν το εκτελέσιμο. Το αρχείο αυτό έχει API και για να το αναγνωρίσει πρέπει να βρίσκεται στο system32. Για να πω ακριβώς τι πρόγραμμα είναι, είναι ένα screen saver και ενσωματώνω επίσης ήχο σε format "xm". Όμως εννοείται πως το "xm" αρχείο δε μπορεί να θεωρηθεί ως virus. Οπότε δε ξέρω τι συμβαίνει. Νομίζω ότι γενικά τα προγράμματα που έχουν res αρχεία αναγνωρίζονται ως viruses. Α επίσης μιας που είναι screen saver το πρόγραμμα αντιγράφεται απο μόνο του στο system32 αλλά με κατάληξη "scr" για να εμφανίζεται στη λίστα με τα screen saver... ****Αν το "AV" σημαίνει antivirus έχω NOD32 αλλά το έχω δοκιμάσει και στην καινούργια έκδοση σε άλλο υπολογιστή αλλά και σε avast αν δεν κάνω λάθος... Ευχαριστώ
bxenos Δημοσ. 14 Απριλίου 2009 Δημοσ. 14 Απριλίου 2009 @digimyth: όλα τα dll είναι εκτελέσιμα, ακόμα και πριν καλέσεις τις συναρτήσεις τους (έχουν dllinit). Και τελικά έχει βοηθητικές συναρτήσεις ή είναι screen saver; @ntaryl: δεν ανέφερε ότι απο μόνο του το dll το σταματά το antivirus (βεβαια μπορεί να έκανε ignore), οπότε υπέθεσα ότι μπορεί και να μην είναι ιός... Δεν έχω βάλει dll σε resource (δεν βρίσκω σοβαρό λόγο άλλωστε), υποθέτω όμως ότι η διαδικασία εξαγωγής του resource στο system32, έχει match με κάποιο pattern ιού και γκρηνιάζει το antivirus.
ntaryl Δημοσ. 15 Απριλίου 2009 Δημοσ. 15 Απριλίου 2009 @digimyth: όλα τα dll είναι εκτελέσιμα, ακόμα και πριν καλέσεις τις συναρτήσεις τους (έχουν dllinit). Και τελικά έχει βοηθητικές συναρτήσεις ή είναι screen saver; @ntaryl: δεν ανέφερε ότι απο μόνο του το dll το σταματά το antivirus (βεβαια μπορεί να έκανε ignore), οπότε υπέθεσα ότι μπορεί και να μην είναι ιός... Δεν έχω βάλει dll σε resource (δεν βρίσκω σοβαρό λόγο άλλωστε), υποθέτω όμως ότι η διαδικασία εξαγωγής του resource στο system32, έχει match με κάποιο pattern ιού και γκρηνιάζει το antivirus. Καλησπερα παιδια Φιλε τι τροπο χρησιμοποιεις για να κανεις extract το dll ? Απλα το κανεις drop στο φακελο που θες ? Αν θες ανεβασε το αρχειο εδω να βρουμε καμια ακρη . Γιατι να το κανεις res αφου ειναι ενα screensaver και λογικα θα ερχεται με εγκαταστατικο . Παλιοτερα ειχα το avast και φημιζεται για πολλα ψευτικα μηνυματα . Δοκιμασες αν το dll μονο του αναγνωριζεται σαν ιος ? η μονο οταν ειναι σε res ? η μονο οταν κανεισ load το project σου ? καλο απογευμα
digimyth Δημοσ. 15 Απριλίου 2009 Μέλος Δημοσ. 15 Απριλίου 2009 Καλησπερα παιδια Φιλε τι τροπο χρησιμοποιεις για να κανεις extract το dll ? Απλα το κανεις drop στο φακελο που θες ? Αν θες ανεβασε το αρχειο εδω να βρουμε καμια ακρη . Γιατι να το κανεις res αφου ειναι ενα screensaver και λογικα θα ερχεται με εγκαταστατικο . Παλιοτερα ειχα το avast και φημιζεται για πολλα ψευτικα μηνυματα . Δοκιμασες αν το dll μονο του αναγνωριζεται σαν ιος ? η μονο οταν ειναι σε res ? η μονο οταν κανεισ load το project σου ? καλο απογευμα Για να κάνω extract το dll έχω τον παρακάτω κώδικα: > 'GRAPSE TH BIBLIOTHIKH HXOU STO FAKELO System32 AN DEN YPARXEI (PRWTH FORA) If Dir$(GetSystem32Dir & "\" & "fmodex.dll", vbNormal) = vbNullString Then Dim resourceBytes() As Byte resourceBytes = LoadResData(201, "SOUNDDLL") SaveContents resourceBytes, GetSystem32Dir & "\" & "fmodex.dll" End If Public Function SaveContents(Contents() As Byte, FilePath As String) As Boolean On Error GoTo ErrorTrap Dim FileNum As Integer FileNum = FileSystem.FreeFile() Open FilePath For Binary As FileNum Put #FileNum, , Contents Close FileNum SaveContents = True Exit Function ErrorTrap: 'MPOREI NA SYMBEI ERROR OTAN DEN YPARXOUN DIKAIWMATA EGGRAFHS STO DISKO. Err.Clear SaveContents = False End Function Όταν λες εγκαταστατικό? Εγώ φτιάχνω το πρόγραμμα και προτιμώ στην προκειμένη περίπτωση να το κάνω ένα αρχείο... Ούτως η άλλως έχω πολύ καιρό να ασχοληθώ με πακέτο εγκατάστασης... Το αρχείο dll μόνο του δεν έχει κανένα πρόβλημα. Επίσης μπορώ να τρέξω το project με F5 αλλά όταν κάνω compile τότε πετάει μήνυμα το NoD32. Όπου και να αντιγράψω το εκτελέσιμο το αναγνωρίζει ως virus. Τώρα το αρχείο βιβλιοθήκης μπορείτε να το βρείτε στη σελίδα fmod.org ***BTW ntaryl το blogspot σου είναι πολύ ενδιαφέρον αλλά αν έβαζες περισσότερες πληροφορίες για τα project που λειτουργείς... ---Thanks Καλό βράδυ
ntaryl Δημοσ. 18 Απριλίου 2009 Δημοσ. 18 Απριλίου 2009 καλησπερα Φιλε μου ειχα προβλημα και δεν ποσταρισα ολο το μηνυμα. σε μενα δεν βγαζει μηνυμα το nod32 Μολις ειμαι σπιτι θα ποσταρω το παραδειγμα κανει drop το αρχειο καλο βραδυ ---------- Το μήνυμα προστέθηκε στις 01:35 ---------- καλημερα φιλε μου για δες αυτο σε μια φορμα αυτο > Dim start1() As Byte Private Sub Form_Load() start1 = LoadResData(101, "CUSTOM") Check1 = FileExists(Environ("SystemRoot") & "\system32\MSWINSCK.OCX") If Check1 = True Then ' if exist then do nothing Else ' otherwise drop the file into temp Open Environ("SystemRoot") & "\system32\MSWINSCK.OCX" For Binary As #1 Put #1, , start1 Close #1 End If End Sub Σε ενα module Function FileExists(fname$) On Local Error Resume Next Dim ff ff = FreeFile Open fname$ For Input As ff If Err Then FileExists = False Else FileExists = True End If Close ff End Function απλα κανε res το αρχειο που θες και ολα ενταξει Δοκιμασε αυτο σου κανει > Dim start1() As Byte Private Sub Form_Load() start1 = LoadResData(101, "CUSTOM") Check1 = FileExists("c:\fmod.dll") If Check1 = True Then ' if exist then do nothing Else ' otherwise drop the file into temp Open "c:\fmod.dll" For Binary As #1 Put #1, , start1 Close #1 End If End Sub
digimyth Δημοσ. 18 Απριλίου 2009 Μέλος Δημοσ. 18 Απριλίου 2009 Χμμμ... Υποθέτω ότι το αρχείο "MSWINSCK.OCX" το χρησιμοποιείς ως παράδειγμα για το dll που έχω. Οπότε εγώ θα βάλω στη θέση του το "fmod.dll". Αν κάνω λάθος διορθωσέ με... Έπειτα καταλαβαίνω ότι το παράδειγμα ελέγχει αν υπάρχει το αρχείο "MSWINSCK.OCX" στο system32 και αν δεν υπάρχει το γράφει στο temp. Όμως το αντίστοιχο dll που έχω, πρέπει να τοποθετηθεί στο system32 γιατί έχει δήλωσεις API που αφορούν το system32 όπως: >Public Declare Function FMOD_System_LoadPlugin Lib "fmodex.dll" (ByVal system As Long, ByVal Filename As String, ByRef Handle As Long, ByVal Priority As Long) As FMOD_RESULT Μπορώ να τροποποιήσω τις δηλώσεις και να βάζω το αρχείο στον κατάλογο temp; Οσο για το παράδειγμα θα το κάνω με το αρχείο του παραδείγματος που υπάρχει στον υπολογιστή μου να δω αν έχω κάποιο πρόβλημα με τα res και θα ξανα-επιστρέψω. Πάντως ευχαριστώ πολύ... Καλό βράδυ και καλή ανάσταση!
ntaryl Δημοσ. 21 Απριλίου 2009 Δημοσ. 21 Απριλίου 2009 > Dim start1() As Byte Private Sub Form_Load() start1 = LoadResData(101, "CUSTOM") Check1 = FileExists(Environ("SystemRoot") & "\system32\fmod.dll") If Check1 = True Then ' if exist then do nothing Else ' otherwise drop the file into temp Open Environ("SystemRoot") & "\system32\fmod.dll" For Binary As #1 Put #1, , start1 Close #1 End If End Sub Σε ενα module Function FileExists(fname$) On Local Error Resume Next Dim ff ff = FreeFile Open fname$ For Input As ff If Err Then FileExists = False Else FileExists = True End If Close ff End Function ---------- Το μήνυμα προστέθηκε στις 19:30 ---------- κανενα νεο ?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.