or30n Δημοσ. 19 Απριλίου 2010 Δημοσ. 19 Απριλίου 2010 Γειά σας παιδιά.Είμαι καινούργιος στο site σας και θα ήθελα μία μικρή βοήθεια.Ασχολουμε με ένα online game το Mu Online.Εδώ και 5 χρόνια περίπου το μόνο που κάνω είναι απλά να τρέχω τον server σε lan και να παίζω σε τοπικό δύκτιο.Επειδή όμως είπα να ασχοληθώ και με το coding του παιχνιδιού πρέπει να ξέρω να προγραμματίζω σε assembly.Εδώ αρχίζουν τα ωραία.Εγω σε ότι αφορά τον προγραμματισμό έχω ασχοληθεί μόνο με qbasic και κάτι λίγά απο visual basic.Υπάρχει κάποιος που να ξέρει πού μπορώ να κατεβάσω κάποιο ebook στα ελληνικά σχετικά με assembly?Αυτό το site http://win32assembly.online.fr/tutorials.html είναι καλό μόνο που στα αγγλικά είναι κάπως δύσκολο.Και κάτι ακόμα,εάν μάθω να προγραμματίζω σε c++ θα μπορώ μέσο κάποιου compiler να μετατρέψω τον κώδικα σε assembly και το αντίθετο?
javavall Δημοσ. 20 Απριλίου 2010 Δημοσ. 20 Απριλίου 2010 Επειδή όμως είπα να ασχοληθώ και με το coding του παιχνιδιού πρέπει να ξέρω να προγραμματίζω σε assembly Ποιός σου το είπε αυτό? Ξεκίνα από τα βασικά (C,C++,Java) για να μπεις στη φιλοσοφία του προγραμματισμού και μετά βλέπεις και assembly και γλώσσα μηχανής και ότι θες.
SpirtouLisS Δημοσ. 20 Απριλίου 2010 Δημοσ. 20 Απριλίου 2010 δεν εχει και πολυ σχεση η assembly με τη c. η assembly ειναι γλωσσα μηχανης. και κυριως βρισκει εφαρμογες σε ψηφιακα κυκλωματα και μικροελεγκτες. επειδη για καθε μικροελεγκτη αλλαζει η αρχιτεκτονικη και οι καταχωρητες αλλα και το προγραμμα λειτουργιας και συνεργασιας με το pc αλλαζει και τροπος προγραμματισμου. βεβαια η assembly εχει καποια στανταρ λογικη. για να μπεις στη λογικη παρε απο ενα ειδικευμενο βιβλιοπωλειο ενα εγχειριδιο προγραμματισμου του 8051 μικροελεγκτη. ετσι θα μπεις στο πνευμα και στον τροπο σκεψης της γλωσσας. ξεκινα λοιπον απο εδω για να δεις βασικες αρχες οπως η λογικη του ''σωρου stuck'' των interupts και των αλλων εντολων. μετα μπορεις να προχωρησεις σε windows προγραμματισμο οπως στο tutorial που δινεις. αλλα κατι στα ελληνικα δεν ξερω να σου προτεινω και ουτε ποτε ασχοληθηκα με win32 προγραμματισμο...
Luciddream Δημοσ. 20 Απριλίου 2010 Δημοσ. 20 Απριλίου 2010 για μένα η assembly είναι η πιο όμορφη γλώσσα που έχει περάσει απο τα χέρια μου, αν και δεν μπορώ να πώ οτι έχω ασχοληθεί αρκετά σαν προγραμματιστής ακόμα.. απο εκεί και πέρα καλύτερα να μάθεις κάποια πιο "απλή" γλώσσα απτην έννοια οτι θα καταφέρεις να κάνεις περισσότερα πράγματα πολύ έυκολα και δεν θα σε κουράσει..
Evgenios1 Δημοσ. 20 Απριλίου 2010 Δημοσ. 20 Απριλίου 2010 ....Και κάτι ακόμα,εάν μάθω να προγραμματίζω σε c++ θα μπορώ μέσο κάποιου compiler να μετατρέψω τον κώδικα σε assembly και το αντίθετο? Αυτη ειναι η δουλεια του.
or30n Δημοσ. 20 Απριλίου 2010 Μέλος Δημοσ. 20 Απριλίου 2010 Το MU coding χρησιμοποιεί το πρόγραμμα ollydbg και σου ανοίγει το αρχείο του παιχνιδιού to Gameserver.exe σε assembly.οπότε για να το μοντάρει κάποιος όπως θέλει θα πρέπει να ξέρει asm lang για να το διαβάσει. ---------- Προσθήκη στις 21:30 ---------- Προηγούμενο μήνυμα στις 21:30 ---------- Ευχαριστώ για τις γρήγορες απαντήσεις σας.Απ'ότι είδα στο ιντερνετ υπάρχουν πολλά βοηθήματα για c++ και στα ελληνικά για να κατεβάσει κάποιος.Απο βιβλία πιό είναι το καλύτερο για να μάθει κάποιος asm lang ξεκινόντας απο τα βασικά?
kagelos Δημοσ. 20 Απριλίου 2010 Δημοσ. 20 Απριλίου 2010 Σε assembly το μόνο που θα (καταφέρεις να) γράψεις είναι shellcode (σε exploit)και κανένα μικρό πρόγραμμα σε μικροελεγκτή. Καλό είναι να μάθεις, αλλά πολύ κακό να προγραμματίζεις σε assembly (κυρίως για την ψυχική σου υγεία). Σκέψου ότι ακόμα και οι πιο πολλοί μικροελεγκτές, που ήταν το τελευταίο οχυρό της assembly σήμερα, αλλάζουν την αρχιτεκτονική και γίνονται optimized για να γράφεις σε C (π.χ. PIC 18 Family). Με λίγα λόγια, μάθε ώστε να ξέρεις πως δουλεύουν τα πράγματα από κάτω, αλλά μην κάθεσαι να γράφεις εφαρμογές ολόκληρες σε assembly!! Δεν ζεις στο 1970.
or30n Δημοσ. 20 Απριλίου 2010 Μέλος Δημοσ. 20 Απριλίου 2010 Σε assembly το μόνο που θα (καταφέρεις να) γράψεις είναι shellcode (σε exploit)και κανένα μικρό πρόγραμμα σε μικροελεγκτή.Καλό είναι να μάθεις, αλλά πολύ κακό να προγραμματίζεις σε assembly (κυρίως για την ψυχική σου υγεία). Σκέψου ότι ακόμα και οι πιο πολλοί μικροελεγκτές, που ήταν το τελευταίο οχυρό της assembly σήμερα, αλλάζουν την αρχιτεκτονική και γίνονται optimized για να γράφεις σε C (π.χ. PIC 18 Family). Με λίγα λόγια, μάθε ώστε να ξέρεις πως δουλεύουν τα πράγματα από κάτω, αλλά μην κάθεσαι να γράφεις εφαρμογές ολόκληρες σε assembly!! Δεν ζεις στο 1970. Οπως προανεφερα παραπανω το προγραμμα ollydbg οταν ανοιγω το παινχιδι το exe του μου εμφανιζει κωδικα asm οποτε πρεπει να μαθω να διαβαζω asm.
epersidi Δημοσ. 20 Απριλίου 2010 Δημοσ. 20 Απριλίου 2010 ore0n προφανώς δεν ξέρεις τι σου γίνεται οπότε να σε διαφωτίσω λίγο για να μην διαβάζεις τσάμπα πράγματα που δεν καταλαβαίνεις. Ο ollydbg είναι ένας debugger, σε assembly επίπεδο φυσικά, δηλαδή σου δείχνει τον assembly κώδικα ενός προγράμματος έτσι ώστε να μπορείς να βρεις κάποια πιθανά runtime errors (εφόσον πρόκειται για δικό σου πρόγραμμα που κάνεις debug) ή να αλλάξεις κάποια πολύ βασικά πράγματα (π.χ. την τιμή κάποιας λογικής μεταβλητής). Οι λόγοι που χρησιμοποιούνται τέτοια προγράμματα (debuggers) είναι, εκτός του προφανούς (debugging σε δικά σου προγράμματα), κυρίως για να σπας διάφορες προστασίες (cd-check κτλ) ή επίσης σε μικρότερο βαθμό για cheats σε games (σε πιο παλιά ιδίως) π.χ. να αλλάξεις τον αριθμό των "ζωών" σου από 2 σε 2000 ! Εσύ τι ακριβώς εννοείς με το "Επειδή όμως είπα να ασχοληθώ και με το coding του παιχνιδιού πρέπει να ξέρω να προγραμματίζω σε assembly" ??? Αν νομίζεις ότι ολόκληρο το παιχνίδι είναι γραμμένο σε assembly τότε κάνεις μεγάλο λάθος ! Αυτά που μπορείς να γράψεις με assembly, χωρίς να χαραμίσεις αρκετά χρόνια γράφοντας εννοώ, είναι κάνα shellcode για κάνα exploit ή το πολύ πολύ κάνα worm ή κάναν ιό.
or30n Δημοσ. 20 Απριλίου 2010 Μέλος Δημοσ. 20 Απριλίου 2010 ore0n προφανώς δεν ξέρεις τι σου γίνεται οπότε να σε διαφωτίσω λίγο για να μην διαβάζεις τσάμπα πράγματα που δεν καταλαβαίνεις. Ο ollydbg είναι ένας debugger, σε assembly επίπεδο φυσικά, δηλαδή σου δείχνει τον assembly κώδικα ενός προγράμματος έτσι ώστε να μπορείς να βρεις κάποια πιθανά runtime errors (εφόσον πρόκειται για δικό σου πρόγραμμα που κάνεις debug) ή να αλλάξεις κάποια πολύ βασικά πράγματα (π.χ. την τιμή κάποιας λογικής μεταβλητής). Οι λόγοι που χρησιμοποιούνται τέτοια προγράμματα (debuggers) είναι, εκτός του προφανούς (debugging σε δικά σου προγράμματα), κυρίως για να σπας διάφορες προστασίες (cd-check κτλ) ή επίσης σε μικρότερο βαθμό για cheats σε games (σε πιο παλιά ιδίως) π.χ. να αλλάξεις τον αριθμό των "ζωών" σου από 2 σε 2000 ! Εσύ τι ακριβώς εννοείς με το "Επειδή όμως είπα να ασχοληθώ και με το coding του παιχνιδιού πρέπει να ξέρω να προγραμματίζω σε assembly" ??? Αν νομίζεις ότι ολόκληρο το παιχνίδι είναι γραμμένο σε assembly τότε κάνεις μεγάλο λάθος ! Αυτά που μπορείς να γράψεις με assembly, χωρίς να χαραμίσεις αρκετά χρόνια γράφοντας εννοώ, είναι κάνα shellcode για κάνα exploit ή το πολύ πολύ κάνα worm ή κάναν ιό. Ρίξε μια ματιά εδω και θα καταλάβεις τι εννοώ - - > http://forum.ragezone.com/f196/mu-coding-lessons-647362/ και [ame]http://www.youtube.com/watch?v=L8LWThzCuGQ[/ame]. Ας πούμε,αυτός είναι κώδικας της c++: #include "StdAfx.h" void _declspec(naked) WindowProcEx() { _asm { mov edi,0x0058D525; cmp edx,0x8020; jg 0x0058D525; cmp edx, 50; je ValleyOfLoren; cmp edx, 51; je LandOfTrials; cmp edx, 52; je CrywolfFortress; cmp edx, 53; je Barrack; cmp edx, 54; je Refuge; mov dword ptr ds:[0x62FDFE8],0; mov edi, 0x0058D40D; jmp edi; ValleyOfLoren: mov dword ptr ds:[0x62FDFEC],30; mov dword ptr ds:[0x62FDFE8],1; jmp Fim; LandOfTrials: mov dword ptr ds:[0x62FDFEC],31; mov dword ptr ds:[0x62FDFE8],1; jmp Fim; CrywolfFortress: mov dword ptr ds:[0x62FDFEC],34; mov dword ptr ds:[0x62FDFE8],1; jmp Fim; Barrack: mov dword ptr ds:[0x62FDFEC],41; mov dword ptr ds:[0x62FDFE8],1; jmp Fim; Refuge: mov dword ptr ds:[0x62FDFEC],42; mov dword ptr ds:[0x62FDFE8],1; jmp Fim; Fim: mov edi, 0x0058DA36; jmp edi; }; } void MapExplorer() { memset((PBYTE)0x0058D3FD,0xE9,1); HookThis((DWORD)&WindowProcEx,0x0058D3FD); SetNop(0x0058D402,11); } Στο παιχνιδι αυτο πολλες φορες δινουν και το source μαζι με τα αρχεια για τον server οπως εδω:http://forum.ragezone.com/f197/czf-season-4-5-1-00-90-latest-files-sources-657187/ Οταν λεω coding εννοω να μπορεσω να αλλαξω καποιες μεταβλητες του παιχνιδιου, να προσθεσω δικα μου πραγματα και γενικα να αλλαξω οτι θελω στο παιχνιδι.Για να το κανω ομως αυτο θα πρεπει να ξερω απο asm lang ετσι ωστε να βρω κατι που δεν μου αρεσει και να το αλλαξω.
kagelos Δημοσ. 21 Απριλίου 2010 Δημοσ. 21 Απριλίου 2010 Όλος αυτός ο κώδικας που δείχνεις γράφεται και με C χωρίς κανένα πρόβλημα. Δεν μπορώ να καταλάβω γιατί να γράψεις assembly.
or30n Δημοσ. 21 Απριλίου 2010 Μέλος Δημοσ. 21 Απριλίου 2010 Όλος αυτός ο κώδικας που δείχνεις γράφεται και με C χωρίς κανένα πρόβλημα. Δεν μπορώ να καταλάβω γιατί να γράψεις assembly. Γιατι μεσω ollydbg θα γινουν οι τροποποιησεις και ο olly οπως ειπες ειναι debugger asssembly.
Evgenios1 Δημοσ. 21 Απριλίου 2010 Δημοσ. 21 Απριλίου 2010 ....Στο παιχνιδι αυτο πολλες φορες δινουν και το source μαζι με τα αρχεια για τον server οπως εδω:http://forum.ragezone.com/f197/czf-season-4-5-1-00-90-latest-files-sources-657187/... Αφου εχεις το source τι να το κανεις το asm ? Στο video, προσπαθουν να βαλου μια συναρτηση η οποια θα καλει ενα dll (ενα δικο σου dll ετσι ωστε να αποφυγεις την asm). Το θεμα ειναι, ποια αντικειμενα θα επεξεργαστεις και που ακριβος θα καλεσεις την δικη σου συναρτηση. ΥΓ: Παιζει να ειναι απο τα χειροτερα RPG.
or30n Δημοσ. 21 Απριλίου 2010 Μέλος Δημοσ. 21 Απριλίου 2010 Αφου εχεις το source τι να το κανεις το asm ? Στο video, προσπαθουν να βαλου μια συναρτηση η οποια θα καλει ενα dll (ενα δικο σου dll ετσι ωστε να αποφυγεις την asm). Το θεμα ειναι, ποια αντικειμενα θα επεξεργαστεις και που ακριβος θα καλεσεις την δικη σου συναρτηση. ΥΓ: Παιζει να ειναι απο τα χειροτερα RPG. Επειδη ειναι αρχη ακομη δεν μπορω να καταλαβω γρι. . Εγω αρχισα τωρα με c++ και αν τα κατανοησω ισως παω και σε asm lang.Απλα το θεμα στην ολη υποθεση ειναι καπως μπερδεμενο.Μακαρι να μπορουσε καποιος να βοηθησει πανω σε αυτο.Ασχετα ομως με το παιχνιδι (απλα μου εχει καθησει στο μυαλο και θελω να ασχοληθω) θα ηθελα να μαθω προγραμματισμο επανω σε γλωσσα c++ η asm.
nikolaos_ Δημοσ. 21 Απριλίου 2010 Δημοσ. 21 Απριλίου 2010 Κι εγώ δεν καταλαβαίνω σε τι θα σε βοηθήσει η assembly από τη στιγμή που έχεις το source.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.