Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Βοήθεια με δημιουργία exe kαι EOF

Îåêßíçóå áðü ôï ìÝëïò teDeV. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 20-04-2010, 20:47. Υπάρχουν 24 απαντήσεις.
Σελίδα 1 από 2 (25 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  22-01-2010, 17:34 56602

    Βοήθεια με δημιουργία exe kαι EOF

    Καλησπέρα,

    έχω κοιτάξει παντού και μια λύση στο πρόβλημά μου για vb.net δεν έχω βρεί.
    θέλω να κάνω το εξής.....


    θέλω ενα πρόγραμμα το οποίο διαβάζει ένα άλλο exe, βάζει τα binary σε ένα byte array, μετά δημιουργεί ένα νέο αρχείο, στο οποίο γράφει μέσα τα binary ξανά (με λίγα λόγια κάνει copy paste to exe) αλλά!!! στο τέλος του θέλω να βάλω απο 1 έως N γραμμές String.


    έχω φτιάξει το πρόγραμμα, το διαβάζω, το δημιουργώ, γράφω και το string μου στο τέλος... αλλά όταν πάω να ανοίξω το νέο exe με το string μου στο τέλος

    παίρνω το εξής μήνυμα...

    Unable to read beyond the end of stream.

    -------------------------------------------------------------

    αυτό που σκέφτηκα λοιπόν είναι ότι όπως παλιά το αρχείο έχει κάποιο χαρακτήρα EOF, και επειδή εγώ μάλλον πάω και σώζω μετά το EOF, γίνεται ότι γίνεται.

    το κοίταξα, το άνοιξα και σε hex, τίποτα. EOF δεν βλέπω και δεν υπάρχει ούτε -1 (που σε κάποιες περιπτώσεις συμβολίζει το EOF).

    είδα σχεδόν όλα τα πιθανά site στο Internet και απάντηση δεν βρήκα.


    ορίστε ο κώδικας που έχω γράψει μέχρι στιγμής.....

     Dim authorizationStr As String = "Done"

            Dim fileIn As FileStream = New FileStream(TextBox1.Text, FileMode.Open, FileAccess.Read)
            Dim br As BinaryReader = New BinaryReader(fileIn)
            Dim bin() As Byte = br.ReadBytes(Convert.ToInt32(fileIn.Length))

            Dim myArray As Array = StrToByteArray(authorizationStr)

            Dim binFinal(bin.Length + myArray.Length - 1) As Byte

            Dim i As Integer = 0
            For i = 0 To bin.Length - 1
                binFinal(i) = bin(i)
            Next

            For i = 0 To myArray.Length - 1
                binFinal((bin.Length) + i) = myArray(i)
            Next

            Dim fileOut As FileStream = New FileStream("C:\test\out.exe", FileMode.Create, FileAccess.Write)
            '        MsgBox(fileOut.Position)
            fileOut.Write(binFinal, 0, binFinal.Length)
            '       MsgBox(fileOut.Position)
            '      MsgBox(bin.Length & " " & binFinal.Length)

            fileOut.Close()
            fileIn.Close()
            br.Close()

    '===================================

    αν ξέρετε κάτι θα με βοηθούσατε


    To 2007 tha ta poume stin agora :)
  •  22-01-2010, 17:50 56603 σε απάντηση της 56602

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Αν το πρόβλημα εμφανίζεται όταν προσπαθείς να ανοίξεις το αρχείο, θα πρέπει να κοιτάξεις και να μας δώσεις τον κώδικα που ανοίγει το αρχείο, όχι αυτόν που το γράφει. Πως δοκιμάζεις να το διαβάσεις?
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  22-01-2010, 18:19 56605 σε απάντηση της 56603

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    παναγιώτη, δεν υπάρχει κώδικας για να το ανοίξεις.

    ο κώδικας μου τελειώνει στο .close()

    αν πας στο φάκελο μετά που διάλεξες το exe, τότε θα δείς ότι υπάρχει ένα νέο exe με το όνομα out.

    κάνεις διπλό κλικ επάνω του και το τρέχεις κανονικά.


    να σημειώσω ότι, αν ανοίξεις το νέο exe με hex editor, και σβήσεις το String απο το τέλος, και μετά τρέξεις κανονικά (διπλό κλικ) το exe ανοίγει κανονικά!!!

    To 2007 tha ta poume stin agora :)
  •  22-01-2010, 22:03 56607 σε απάντηση της 56605

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Αν καταλαβαίνω καλά θέλεις να προσθέσεις ένα string στο τέλος ενός exe αρχείου και μετά αυτό το αρχείο να συνεχίσει να είναι εκτελέσιμο κανονικά; Δεν γίνεται αυτό!


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  22-01-2010, 23:02 56608 σε απάντηση της 56607

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Dimitris Papadimitriou:

    Αν καταλαβαίνω καλά θέλεις να προσθέσεις ένα string στο τέλος ενός exe αρχείου και μετά αυτό το αρχείο να συνεχίσει να είναι εκτελέσιμο κανονικά; Δεν γίνεται αυτό!



    γίνεται, το έχω δεί. μην το ψάχνεις. κλασσικά γίνεται και στα trojans αυτό.

    όταν λες ότι δεν γίνεται να αναφέρεις και το γιατί.

    To 2007 tha ta poume stin agora :)
  •  22-01-2010, 23:52 56609 σε απάντηση της 56608

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    teDeV:
    Dimitris Papadimitriou:

    Αν καταλαβαίνω καλά θέλεις να προσθέσεις ένα string στο τέλος ενός exe αρχείου και μετά αυτό το αρχείο να συνεχίσει να είναι εκτελέσιμο κανονικά; Δεν γίνεται αυτό!



    γίνεται, το έχω δεί. μην το ψάχνεις. κλασσικά γίνεται και στα trojans αυτό.

    όταν λες ότι δεν γίνεται να αναφέρεις και το γιατί.

    Θα μου επιτρέψεις να λέω αυτό που θέλω, όπως θέλω και εσύ μπορείς να το αξιολογήσεις. Σε ευχαριστώ.

    (ή τουλάχιστον, σε παρακαλώ πολύ, αν γίνεται να αποφεύγεις αυτού του είδους την προστακτική)


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  23-01-2010, 00:25 56610 σε απάντηση της 56609

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    ο σκοπός μου δεν είναι να αρχίσω διαμάχες.

    δεν δέχομαι ένα ξερό "δεν γίνεται" όταν μιλάμε για προγραμματισμό.

    ορίστε λοιπόν παραδείγματα που έφτιαξα μόλις τώρα, για να σου αποδείξω ότι γίνεται.


    σου στέλνω καταρχήν ένα rar το οποίο! περιέχει 2 exe απο το γνωστό Calculator της microsoft.

    αν ανοίξεις τα αρχεία με ένα hex editor (HEX WORKSHOP) , τότε στο αρχείο με το

    1) calcMeString - Στο τέλος θα δείς ότι πήγα και έβαλα την λέξη "HELLO". Αν το τρέξεις τότε θα δείς ότι ξεκινάει κανονικά!!!
    2) calc - Αυτό το αρχείο είναι το αρχείο χωρίς να το πειράξω καθόλου.

    http://rapidshare.com/files/339519575/CalcHex.rar.html

    και τα 2 αυτά αρχεία δουλεύουν κανονικότατα!

    τώρα τι λές? γίνεται ή όχι?

    πιο κάτω τώρα σου στέλνω μια φωτογραφία απο το δικό μου exe, στο οποίο έχω προσθέσει την λέξη "Done".

    αυτό το exe τώρα δεν τρέχει γιατί βγάζει το μήνυμα που βλέπεις στην εικόνα. Αν το βγάλω τότε αμέσως θα παίξει.


    θα το εκτιμούσα τώρα αν εσύ μπορείς να μου πεις γιατι " Δεν γίνεται αυτό!"

    ευχαριστώ
    Θοδωρής

    To 2007 tha ta poume stin agora :)
  •  23-01-2010, 09:31 56613 σε απάντηση της 56610

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Αλήθεια, γιατί θέλεις ντε και καλά να κολλήσεις κάτι στο τέλος του exe? Και όσο για το αν γίνεται ή δεν γίνεται, γίνεται αν ΔΕΝ παραβείς το format ενός exe. Αλλιώς παίρνεις το μήνυμα που πήρες και νωρίτερα. Για παράδειγμα, αν το μέγεθος πρεπει να είναι πολλαπλάσσιο των xxx bytes και εσύ προσθέτεις λιγότερα ή περισσότερα, θα έχεις πρόβλημα. Επίσης, οι ιοί (όχι τα trojans) προσθέτουν εκτελέσιμο κώδικα, όχι strings. Γιατί δεν κοιτάς το specification του exe για να δεις τί συμβαίνει? Έτσι στην ψύχρα πάντως είδες και εσύ ότι δεν γίνεται.

    Τέλος, υπάρχουν απείρως απλούστεροι τρόποι να προσθέσεις στοιχεία σε ένα exe. Είτε τα προσθέτεις ως resources κατά το compile είτε τα προσθέτεις ως properties στο τελικό αρχείο exe. Επίσης μπορείς να χρησιμοποιήσεις alternate streams για να αποθηκεύσεις όσα στοιχεία θέλεις μαζί με το αρχείο του exe.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-01-2010, 12:36 56615 σε απάντηση της 56610

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Καταρχήν μεταφέρω το topic σε άλλο μέρος γιατί προφανώς δεν πρόκεται για "Πρώτα βήματα - Desktop applications". Με μπέρδεψε αρχικά αυτό καθώς θεωρούσα ότι ξεκινάς το developmet έτσι! Θα συμφωνήσω ότι όλα είναι δυνατά. Αυτό όμως δεν σημαίνει ότι πρέπει και να τα κάνουμε. Τον Φράνγκεσταϊν τον θυμάσαι;

    Anyway, ούτε εγώ θα αρχίσω διαμάχες. Δεν το έχω κάνει ποτέ στο dnz. Cool λοιπόν! :)

    Θα είχε ενδιαφέρον να μας πεις γιατί ακριβώς θέλεις να το κάνεις αυτό. Αν δεν σε βγάζω εκτός θέματος, μια που εσύ θέλεις να μάθεις το πως.


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  23-01-2010, 12:38 56616 σε απάντηση της 56613

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Οι λόγοι που μπορεί σου πέτυχε στο ένα κι όχι στο άλλο, είναι παρα μα πάρα πολλοί.

    Το πιο απλό είναι ότι στον calculator έγραψες σε σημείο που δεν τον ενδιαφέρει γιαυτό και δεν πήρες μήνυμα λάθους. Διάβασε λίγο βασική δομή απο αρχεία .exe και απο τι αυτά αποτελούνται κλπ και θα καταλάβεις γιατί.

    Το άλλο τώρα που δεν σου παίζει, το σημείο που γράφεις τον ενδιαφέρει οπότε και σκάει. Επίσης μπορεί πολύ απλά να έχει self-check για tampering και να σκάει κι γιαυτό τον λόγο. Ακόμη μπορεί το αρχείο να είναι packed και εσύ να χαλάς το πακέτο και να σκάει κι γιαυτό τον λόγο. Γενικά, το σενάριο "γράφω ένα String στο τέλος κάποιου .exe" κατα κανόνα ΔΕΝ λειτουργεί.

    Τα trojan αυτό που κάνουν είναι να γράψουν assembly (συνήθως) κώδικα τον οποίο καλούν και κάνουν Inject Κάθε φορά που φορτώνει το .exe αφού έχουν κάνει infect και τον PE Header ώστε να αναγκάζουν το λειτουργικό να έχει entry point εκεί (και κάποιες φορές και το ΙΑΤ table), κι όχι στο κανονικό που είχε πριν μολυνθεί. Καποιες φορές δεν κάνουν κάν αυτό. Απλά πειράζουν το IAT table ώστε να φορτώνει ΚΑΙ το δικό του "dll" και μετά κάνουν το Injections In memory. Κι αυτά είναι κάποιες απο τις απλές καταστάσεις καθώς πλέον χρησιμοποιούν συνδιασμούς και πολύ πιο advanced τεχνικές.

    Τέλος, όταν απαντάς, λίγη ευγένια δεν βλάπτει.


    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  23-01-2010, 13:36 56618 σε απάντηση της 56616

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Καλημέρα,

    το θέμα ευγένιας δεν ξέρω αν το λές σε μένα η όχι, θέλω να πιστεύω ότι ξεκίνησα με τις πιο ευγενικές προθέσεις.
    δεν θέλω να ανοίξω κάποιο "θέμα" με το δημήτρη, δεν είμαι εδώ για "χαζομάρες" αλλά για βοήθεια. (αυτό με το... "δεν πρέπει να τα κάνουμε όλα" ήταν κάπως.......)


    ευχαριστώ για τις απαντήσεις σας μέχρι τώρα.

    θέλετε να μάθετε γιατί θέλω να το κάνω? σίγουρα όχι για κάποιο ιό ή κάτι παρόμοιο.

    θέλω να μπορεί κάποιος να πάρει ενα exe το οποίο είναι καθαρό, χωρίς string δηλαδή στο τέλος.
    αφού το πάρει, θέλω να μπορεί ο χρήστης να το κάνει register ότι αυτό το exe ανήκει στον χρήστη "Gianni" για παράδειγμα.

    δεν θέλω και ούτε μου κάνει να το βάλω στα resources, όπως αναφέρθηκε.

    για τον παναγιώτη καναβός....

    1)Για παράδειγμα, αν το μέγεθος πρεπει να είναι πολλαπλάσσιο των xxx bytes και εσύ προσθέτεις λιγότερα ή περισσότερα, θα έχεις πρόβλημα.
    - Μπορείς να μου εξηγήσεις λίγο παραπάνω στο θέμα? υπάρχει κάποιος έλενχος μέσα στο αρχείο που δείχνει τι μέγεθος έχει? αν ναι, ίσως να μπορούσα να αλλάξω αυτή τη πληροφορία.....

    2) είτε τα προσθέτεις ως properties στο τελικό αρχείο exe
    - Όταν λες properties εννοείς να το περνάω σαν παράμετρο? αν ναι τότε αυτό πάλι δεν μου κάνει. θέλω το exe να είναι μόνο αυτό και τίποτα άλλο, και όπου και να το τρέξεις και όπως και να το τρέξεις η πληροφορία μου να είναι εκεί πάντα.

    για τον δημήτρη...
    1) Θα είχε ενδιαφέρον να μας πεις γιατί ακριβώς θέλεις να το κάνεις αυτό. Αν δεν σε βγάζω εκτός θέματος, μια που εσύ θέλεις να μάθεις το πως.
    - Τώρα που είπα το γιατί θα μου πείς το πως? Smile

    για τον παναγιώτη κεφαλίδης (ελπίζω να το έγραψα σωστά)
    1) Το πιο απλό είναι ότι στον calculator έγραψες σε σημείο που δεν τον ενδιαφέρει γιαυτό και δεν πήρες μήνυμα λάθους. Διάβασε λίγο βασική δομή απο αρχεία .exe και απο τι αυτά αποτελούνται κλπ και θα καταλάβεις γιατί.
    - Τι σημαίνει δεν τον ενδιαφέρει. πως ξέρει που να σταματήσει και να μην λάβει υπόψιν το string στο τέλος? αυτό ψάχνω.
      Αν εσύ έχεις καταλάβει γιατί, θα σε παρακαλούσα να μου εξηγήσεις λίγο.

    ευχαριστώ


    To 2007 tha ta poume stin agora :)
  •  23-01-2010, 14:30 56620 σε απάντηση της 56618

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    cool παιδιά! Smile

    Δεν προλαβαίνω τώρα να διαβάσω τα posts. Θα προσπαθήσω αργότερα.


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  23-01-2010, 15:09 56621 σε απάντηση της 56620

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    ΝΟΜΙΖΩ ΠΩΣ Η ΛΥΣΗ ΣΟΥ ΛΕΓΕΤΑΙ NTFS STREAMS

    Αν τα εκτελέσιμα αρχεία βρίσκονται σε περιβάλλον NTFS ενδεχομένως τότε ίσως αντί να πειράξεις τον κώδικα του αρχείου μπορείς να ΄ΨΕΥΤΟΠΡΟΣΑΨΕΙΣ σε αυτόν ένα text αρχείο το οποίο θα έχει τα δικά σου strings.

    Η μέθοδος χρησιμοποιήται από τους "χακεράδες" για να κρύψουν τα "ίχνη", "εργαλεία" τους ...  κάνε αναζήτηση σε steganalysis, steganography ... alternate ntfs streams ...

    Από  DOS εντολή "type mytext.txt > calc.exe:mytext.txt"
    Με αυτή την εντολή τοποθετώ το αρχείο mytext.exe μέσα στο αρχείο του calc.exe. Τώρα το αρχείο calc.exe εμπεριέχει και το mytext.txt χωρίς όπως αυτό να φαίνεται από πληροφορίες όπως date,time,size σε κάποιες εκδόσεις ntfs (xp) δεν πειράζει ούτε το checksum.

    Κάνοντας dir, συγκρίνω τις πληροφορίες του αρχικού calc.exe με το νεοτερο (calc+mytext) και δεν βλέπω διαφορές στο μέγεθος, ημερρομηνία ...

    Αν θέλεις να διαβάσεις τα strings τότε τρέχεις από cmd

    notepad.exe calc.exe:hidden_data.txt

    Το καλό είναι ότι αυτές οι "προσθήκες" ΔΕΝ ΜΕΤΑΦΕΡΟΝΤΑΙ ΔΙΑΔΙΚΤΥΑΚΑ.

    Κωστίκας

     


    Μηδεν Αγαν
  •  23-01-2010, 19:27 56624 σε απάντηση της 56621

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    kostikas ωραία η συμβουλή σου, θα την δοκίμαζα αλλά έχω ένα θέμα :)

    θέλω να τρέχει και σε FAT οπωσδήποτε. οπότε φαντάζομαι αυτό που λες δεν θα γίνεται.

    έχει ενδιαφέρον όμως. λες ότι πειράζετε ένα checksum στο αρχείο.

    θεωρητικά αυτό που λες το έκανα και εγώ στο παράδειγμα πιο πάνω. το text Προσπαθώ να το βάλω μέσα σε packed exe συνήθως. (ναι είναι υποχρεωτικό).

    μήπως αυτά έχουν κάτι ιδιαίτερο?

    "unable to read beyond the end file stream"

    το έχω κοιτάξει στο google μπας και βρώ μία απάντηση για το που μπορεί να προέρχεται αυτό αλλά τίποτα. όλοι μιλάνε για text files.

    μήπως υπάρχει ένας τρόπος να βάλω κάποιο χαρακτήρα πριν το τεχτ μου, να του λέει ότι τέλος! μην διαβάσεις παραπέρα?

    To 2007 tha ta poume stin agora :)
  •  23-01-2010, 20:08 56627 σε απάντηση της 56624

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Θοδωρη,

    το .exe που δημιουργησες ειναι .NEΤ .exe ή native .exe? Μπορεις να προσθεσεις bytes σε αρχεια, και εξαρταται απο το ειδος, το λειτουργικο μπορει να τα ανοιξει η οχι. Ολα τα αρχεια εχουν καποιο header (sorry για τα αγγλικα αλλα δεω γνωριζω πολλους computer ορους στα Ελληνικα) που περιεχουν στοιχεια για το ειδος του αρχειου, που φορτωνεται στη μνημη κτλ. Ta windows δυστυχως βασιζονται στα extenstions για να καταλαβουν περι τι τυπου αρχειου προκειται. Ετσι για παραδειμα, εαν εχεις .zip αρχεια μπορεις να βαζεις bytes στην αρχη διοτι το header ειναι στο τελος. Στην δικη σου περιπτωση, εαν το αρχειο ειναι .NET .exe τοτε το windows χρησιμποποιει μια παραλαγη φορτωματος του header ωστε να περασει το call στο .NET runtime. Μπορει επειδη εβαλες extra bytes, το checksum το .exe na Ψαξε στο internet για PE headers kai .exe files, για να παρεις μια ιδεα....

Σελίδα 1 από 2 (25 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems