Mivas (myphone) Δημοσ. 14 Αυγούστου 2018 Μέλος Δημοσ. 14 Αυγούστου 2018 1 ώρα πριν, elorant είπε Για να μεταφέρεις "στοιχεία" από ένα dll σε ένα άλλο πρέπει καταρχάς να έχεις πλήρη επίγνωση τι υπάρχει εκεί μέσα και πως δουλεύει. Και μετά δεν μπορείς απλά να ξεκολλήσεις κομμάτια και να τα κολλήσεις σε ένα άλλο dll. Τεχνικά γίνεται, αλλά ρεαλιστικά θα καταλήξεις με κάτι που θα είναι τελείως ασταθές. Ειλικρινά τώρα θες να πειραματιστείς με την CPU σου με αυτό τον τρόπο; Άμα κάνεις καμιά μαλακία, που είναι και το πιθανότερο, θα την πάρεις στο χέρι. 90ΜΒ dll σημαίνει κάτι εκατομμύρια γραμμές κώδικα. Εκεί μέσα θα έχει 200 κλάσεις που κάνουν ένα σωρό λειτουργίες. Και θες να κάνεις reverse engineer όλο αυτό στα τυφλά; No fucking way. Εντάξει, είναι χρήσιμο ότι όντας άσχετος έφτασες μέχρι εδώ, πόσο μάλλον ότι το σκέφτηκες όλο αυτό, αλλά νομίζω ότι κάπου εδώ είναι καλό να σταματήσεις γιατί θα κάνεις ζημιά στον υπολογιστή σου. Η αλήθεια είναι ότι με έχετε τρομοκρατήσει λιγάκι Το περίμενα δύσκολο, αλλά όχι τόσο πολύ. Τα 90MB δεν θέλω να τα πειράξω, το 1MB θέλω να πειράξω και να βρω τις αντιστοιχίες στο άλλο, ώστε αν καταλάβω τι γίνεται με το 1MB να μεταφέρω το αντίστοιχο στοιχείο στο 90MB. Π.χ. αν υπάρχει κάτι που αφορά νεότερες γενιές επεξεργαστών, αν υπάρχει π.χ. κάπου λίστα στο 1MB ή οτιδήποτε σχετικό με το νέο επεξεργαστή, ώστε να το προσθέσω στο παλιό των 90MB και να αναγνωρίζεται πλήρως. Αυτή ήταν η ιδέα. Η υλοποίηση φαίνεται μάλλον εξαιρετικά δύσκολη... Στις 12/8/2018 στις 6:21 ΜΜ, vel0city είπε Ναι, όπως και να το κάνεις, graphics driver είναι, θα έχει μια πολυπλοκότητα. Μάλλον είναι shims προς κάποιο άλλο .dll τότε. Δε παίζει να υπάρχει τόσο μεγάλη διαφορά αλλιώς. Το πρόγραμμα λέγεται IDA Pro, είναι standard πρόγραμμα για reverse-engineering/debugging/κλπ. Υπάρχει trial για x86 που χρειάζεσαι, άλλα δε νομίζω ότι υπάρχει νόημα να συνεχίσεις να ψάχνεις λύση, εκτός και αν είναι καθαρά για learning experience (μη περιμένεις να φτάσεις πουθενά, δηλαδή). Γενικά το reverse-engineering έχει steep learning curve και το να ξεκινήσεις με κάτι τέτοιο το θεωρό υπερβολικά δύσκολο. Ευχαριστώ πάρα πολύ για τις πληροφορίες, αλλά μάλλον θα συμφωνήσω, με τα λίγα που είδα, φαίνεται τρομερά δύσκολο να πάω με αυτόν τον τρόπο... Αλλάζοντας άραγε απλά την κεφαλίδα, μπορεί να επηρεαστεί η συμβατότητα; Π.χ. να γράψω τα στοιχεία και την ημερομηνία της καινούργιας έκδοσης στην παλιά, ώστε αν κάπως διαβάσει νεότερη ημερομηνία που περιλαμβάνει το νέο επεξεργαστή, να δώσει συμβατότητα; Αν και λίγο δύσκολο να γίνεται με κάτι τόσο απλό... Όσο για το 1MB, σε όλο τον φάκελο της νέας έκδοσης δεν βρήκα τα "χαμένα" MB που υπήρχαν στην παλιά. Ενδεχομένως πρόκειται για dll που είναι ενσωματωμένα στα Windows 10 και δίνει εντολή σε εκείνα... Σε κάθε περίπτωση ως βάση πρέπει να χρησιμοποιηθεί η παλιά έκδοση που είναι συμβατή με τα 7άρια. Αλλιώς θα έπρεπε να συμπεριλάβω στη νέα έκδοση ολόκληρα τμήματα μόνο για την συμβατότητα με τα Windows 7. Θα το ψάξω έτσι λίγο ακόμη ίσως και με αυτά τα προγράμματα, αλλά δεν θα προχωρήσω σε εγκατάσταση χωρίς να είμαι σίγουρος για κάτι... Μακάρι τα πράγματα να ήταν σχετικά απλά όπως στο αρχείο inf...
vel0city Δημοσ. 15 Αυγούστου 2018 Δημοσ. 15 Αυγούστου 2018 (επεξεργασμένο) Όπως είπε και ο elorant, είναι πολύ πολύ πιο δύσκολο απ'όσο νομίζεις (αν και διαφωνώ με τα υπόλοιπα περί "ζημιάς" (?) του PC εάν πειραματιστείς). Δεν έχει καμία σημασία η διαφορά μεγέθους στα αρχεία που θες να μεταφέρεις, το περιεχόμενο έχει. Ίσως δεν ήμουν αρκετά ξεκάθαρος με το προηγούμενο μήνυμα, αλλά δεν παίζει να μπορείς να το προχωρήσεις παραπάνω, όχι λόγω απειρίας απαραίτητα, αλλά απλά επειδή δεν αξίζει τον χρόνο που θα απαιτούσε ακόμη και από κάποιον γνώστη (εβδομάδες/μήνες/...). Ξαναλέω, εκτός και αν ήταν για το learning experience. Άλλα αν θες learning experience, άντε κάν'το σε κανένα game ρε αδερφέ, που έχει και κάποιο περισσότερο ενδιαφέρον 😄 2 ώρες πριν, Mivas (myphone) είπε Αλλάζοντας άραγε απλά την κεφαλίδα, μπορεί να επηρεαστεί η συμβατότητα Καλή σκέψη, αλλά αμφιβάλλω πως το πρόβλημα σχετίζεται με κάποιο check στον PE Header/file properties, αλλά στον ίδιο τον κώδικα. Το πρώτο βήμα όπως είπα είναι να ψάξεις πιο είναι το πρόβλημα (έστω και περίπου), αλλά δε το έκανες άρα δεν έχω επιπλέον πληροφορίες να βοηθήσω. Αλλά κατά πάσα πιθανότητα δε θα υπάρχει ρεαλιστική λύση όπως και να'χει. Επεξ/σία 15 Αυγούστου 2018 από vel0city
Ilias95 Δημοσ. 15 Αυγούστου 2018 Δημοσ. 15 Αυγούστου 2018 (επεξεργασμένο) 12 ώρες πριν, elorant είπε Ειλικρινά τώρα θες να πειραματιστείς με την CPU σου με αυτό τον τρόπο; Άμα κάνεις καμιά μαλακία, που είναι και το πιθανότερο, θα την πάρεις στο χέρι. Εντάξει, είναι χρήσιμο ότι όντας άσχετος έφτασες μέχρι εδώ, πόσο μάλλον ότι το σκέφτηκες όλο αυτό, αλλά νομίζω ότι κάπου εδώ είναι καλό να σταματήσεις γιατί θα κάνεις ζημιά στον υπολογιστή σου. Δηλαδή σαν τι ζημιά μπορεί να κάνει στον υπολογιστή του; Πώς ακριβώς θα πάρει την CPU στο χέρι; Επεξ/σία 15 Αυγούστου 2018 από Ilias95
Mivas (myphone) Δημοσ. 15 Αυγούστου 2018 Μέλος Δημοσ. 15 Αυγούστου 2018 14 ώρες πριν, vel0city είπε Το πρώτο βήμα όπως είπα είναι να ψάξεις πιο είναι το πρόβλημα (έστω και περίπου), αλλά δε το έκανες άρα δεν έχω επιπλέον πληροφορίες να βοηθήσω. Αλλά κατά πάσα πιθανότητα δε θα υπάρχει ρεαλιστική λύση όπως και να'χει. Το πρόβλημα πως μπορώ να το εντοπίσω; π.χ. να τρέξω την αξιολόγηση των Windows που ξέρω ότι κρασάρει στα 3D εφέ / γραφικά και μετά να δω από κάποιο πρόγραμμα το σφάλμα; Ξέρω μόνο ότι ευθύνεται το συγκεκριμένο dll, μόνο μέχρι εκεί έχω φτάσει... Όσο για απλή εξάσκηση, θα προτιμούσα να το κάνω για κάποιο πανάκριβο πρόγραμμα, όπως είπε κάποιος how to crack a dll
vel0city Δημοσ. 15 Αυγούστου 2018 Δημοσ. 15 Αυγούστου 2018 34 λεπτά πριν, Mivas (myphone) είπε Το πρόβλημα πως μπορώ να το εντοπίσω; π.χ. να τρέξω την αξιολόγηση των Windows που ξέρω ότι κρασάρει στα 3D εφέ / γραφικά και μετά να δω από κάποιο πρόγραμμα το σφάλμα; Ξέρω μόνο ότι ευθύνεται το συγκεκριμένο dll, μόνο μέχρι εκεί έχω φτάσει... Όσο για απλή εξάσκηση, θα προτιμούσα να το κάνω για κάποιο πανάκριβο πρόγραμμα, όπως είπε κάποιος how to crack a dll Δες τα πρώτα μηνύματα μου, σου πρότεινα να χρησιμοποιήσεις Event Viewer. Από εκεί και πέρα μόνο με debugger (και θα είναι δύσκολο, γιατί προφανώς δεν έχεις source code).
solarpower Δημοσ. 19 Αυγούστου 2018 Δημοσ. 19 Αυγούστου 2018 Άλλο πράγμα είναι ένας driver και άλλο ένα πρόγραμμα όπως πχ to Notepad. Μια διαφορά έχει να κάνει με το τι διακαιώματα έχει το κάθε πρόγραμμα. Οι drivers έχουν υψηλότερα δικαιώματα και μπορούν να χειριστούν το υλικό απευθείας. Δεν μπορείς να πειράξεις το κώδικα ενός driver. Αλλιώς όλοι οι χάκερ θα έκαναν αυτό το πράγμα., θα πέταγαν κώδικα πάνω στο αρχείο του driver Από τα XP υπάρχει και έλεγχος καταλληλοτητας (αν και μερικοί δεν το είχαν και έπρεπε ο χρήστης να επιβεβαιώσei τη χρήση του).. Αυτό που έχεις τώρα είναι την εικόνα του driver και προσπαθείς να δεις τι έχει μέσα. Από αυτό μέχρι να καταλάβεις το ΓΙΑΤΙ έχει ό,τι έχει μέσα είναι μεγάλη απόσταση! Δηλαδή σου λείπει το εγχειρίδιο προγραμματισμού του υλικού,. Αν πας με το σκεπτικό ότι αυτό που φταίει είναι ας πούμε ένα 1 που θα έπρεπε να ήταν ένα 0, τότε ψάχνεις το τίποτα, γιατί οι διαφορές θα είναι πολύ περισσότερες, και άντε να βρεις ποια είναι αυτή που πρέπει να αλλάξεις. Άντε και πες ότι βρήκες μια μόνο διαφορά και την άλλαξες! Τώρα πως θα φορτώσεις την αλλαγμένη εικόνα; Πώς θα περάσεις την υπογραφή που έχει ο άλλος; Δεν γίνονται αυτά τα πράγματα. Ξέχασέ το, δεν είναι αρχείο ρυθμίσεων αλλά πρόγραμμα. Το πρόβλημά σου θα λυθεί αλλιώς, δηλαδή θα πρέπει να περάσεις κάποιες DX βιβλιοθήκες που λείπουν. Δες σε ποια έκδοση είναι η OpenGl, και δες πως γίνεται να αλλάξεις προτιμήσεις στην εμφάνιση των 3D γραφικών (εκεί δηλαδή είναι η ουσία, γιατι κάτι από αυτά δεν τα υποστηρίζει αυτό που θες να τρέξεις, και είναι επιλεγμένα).
Mivas (myphone) Δημοσ. 19 Αυγούστου 2018 Μέλος Δημοσ. 19 Αυγούστου 2018 (επεξεργασμένο) 47 λεπτά πριν, solarpower είπε Το πρόβλημά σου θα λυθεί αλλιώς, δηλαδή θα πρέπει να περάσεις κάποιες DX βιβλιοθήκες που λείπουν. Δες σε ποια έκδοση είναι η OpenGl, και δες πως γίνεται να αλλάξεις προτιμήσεις στην εμφάνιση των 3D γραφικών (εκεί δηλαδή είναι η ουσία, γιατι κάτι από αυτά δεν τα υποστηρίζει αυτό που θες να τρέξεις, και είναι επιλεγμένα). Νομίζω το έχω ξαναγράψει, πέρα από δύο μαθήματα πληροφορικής πριν 10 χρόνια (εννοώ για κώδικα κλπ) δεν έχω περαιτέρω γνώσεις. Με ποιον τρόπο μπορώ να το κάνω αυτό; Με το events viewer πάντως που πρότεινε ο φίλος πιο πάνω, δεν έβγαλα άκρη. Το υβριδικό inf αρχείο το έφτασα σε τέτοιο σημείο ώστε να μην κρασάρει ποτέ ο driver, εκτός από την διαδικασία αξιολόγησης των Windows (σταματάει στο τεστ βίντεο και λέει ότι δεν μπορεί να ολοκληρωθεί η αξιολόγηση). Αλλά δεν βγάζει κωδικό σφάλματος, ούτε εμφανίζεται κάτι στο event viewer. Το πρόβλημα είναι ότι κάποιες εφαρμογές με διαφάνειες, 3D γραφικά κλπ δεν μπορούν να λειτουργήσουν και φυσικά δεν παίρνω τη μέγιστη απόδοση από το harware του laptop που στην υπόλοιπη αξιολόγηση μου βγάζει 7,8 και 7,9 με άριστα το 7,9 στα windows 7 και είναι κρίμα... Πάντως από το να βάλω τα 10άρια, προτιμώ να το αφήσω με μερική συμβατότητα όπως τώρα αν δεν βγει άκρη... Επεξ/σία 19 Αυγούστου 2018 από Mivas (myphone)
solarpower Δημοσ. 19 Αυγούστου 2018 Δημοσ. 19 Αυγούστου 2018 https://www.sevenforums.com/software/280483-how-reinstall-directx-11-repair-directx-11-a.html κατέβασε και βάλε πάλι τo DX11 (αν το παίζει η κάρτα σου).
Mivas (myphone) Δημοσ. 27 Οκτωβρίου 2018 Μέλος Δημοσ. 27 Οκτωβρίου 2018 Παιδιά, η λύση που δοκίμασα μόλις τώρα λειτουργεί 100%!!! Χρειάζεται επεξεργασία των dll αρχείων που ανέφερα, συγκεκριμένα αλλαγή 2 και μόνον bytes!!! Και φυσικά το inf hack. Όλα αυτά χρησιμοποιώντας παλιές, συμβατές με Windows 7 εκδόσεις και με χρήση της δωρεάν δοκιμαστικής έκδοσης ultraedit. Παραθέτω όλη την δουλειά που έκανε ο συμφορουμίτης (από ξένο φόρουμ) για να εντοπίσει το πρόβλημα εντός των dll με μεθόδους που προτείνατε, αλλά και να το επιλύσει. Αποτέλεσμα? Πλήρως συμβατός οδηγός με Windows 7! Δουλεύουν όλα άψογα! The windows catalog version is here: https://www.catalog.update.microsoft.com/Search.aspx?q=21.20.16.4839 Download the driver from here https://www.station-drivers.com/index.php?option=com_remository&Itemid=352&func=fileinfo&id=3256&lang=en Then, the inf hack work, this is most easy part. You can learn how to do it on youtube from my first link. Here's some notice, the UHD 620's device ID is PCI\VEN_8086&DEV_5917, add the line in windows 7 section which should be like the following part. Here I use a new marco iKBLULTGT2R , and this can let you name your device, but not use HD 620's name, ;===================================================================== ; Windows 7 Install - DT Only ;===================================================================== [IntelGfx.NTamd64.6.1] ; SKL HW %iSKLULTGT1% = iSKLD_w7, PCI\VEN_8086&DEV_1906 %iSKLULTGT2% = iSKLD_w7, PCI\VEN_8086&DEV_1916 ... %iSKLWSGT4% = iSKLD_w7, PCI\VEN_8086&DEV_193D %iKBLULTGT2R% = iSKLD_w7, PCI\VEN_8086&DEV_5917 And add some lack parts for UHD 620, this is not really important thing, if you don't do it's OK. Add these lines follow the 5916 section: HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5916, DeviceID, %REG_DWORD%, 0x5916 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5916, VendorID, %REG_DWORD%, 0x8086 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5916, APIVersion, %REG_DWORD%, 0x108 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5916, Merit,%REG_DWORD%, 0x08000015 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5916, Path, %REG_SZ%, "%16422%\Intel\Media SDK\libmfxhw32.dll" HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5917, DeviceID, %REG_DWORD%, 0x5917 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5917, VendorID, %REG_DWORD%, 0x8086 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5917, APIVersion, %REG_DWORD%, 0x108 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5917, Merit,%REG_DWORD%, 0x08000015 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5917, Path, %REG_SZ%, "%16422%\Intel\Media SDK\libmfxhw32.dll" HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5921, DeviceID, %REG_DWORD%, 0x5921 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5921, VendorID, %REG_DWORD%, 0x8086 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5921, APIVersion, %REG_DWORD%, 0x108 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5921, Merit,%REG_DWORD%, 0x08000015 HKLM, Software\Wow6432Node\Intel\MediaSDK\Dispatch\iKBL_5921, Path, %REG_SZ%, "%16422%\Intel\Media SDK\libmfxhw32.dll" And here: HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5916, DeviceID, %REG_DWORD%, 0x5916 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5916, VendorID, %REG_DWORD%, 0x8086 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5916, APIVersion, %REG_DWORD%, 0x108 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5916, Merit,%REG_DWORD%, 0x08000015 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5916, Path, %REG_SZ%, "%16422%\Intel\Media SDK\libmfxhw64.dll" HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5917, DeviceID, %REG_DWORD%, 0x5917 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5917, VendorID, %REG_DWORD%, 0x8086 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5917, APIVersion, %REG_DWORD%, 0x108 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5917, Merit,%REG_DWORD%, 0x08000015 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5917, Path, %REG_SZ%, "%16422%\Intel\Media SDK\libmfxhw64.dll" HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5921, DeviceID, %REG_DWORD%, 0x5921 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5921, VendorID, %REG_DWORD%, 0x8086 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5921, APIVersion, %REG_DWORD%, 0x108 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5921, Merit,%REG_DWORD%, 0x08000015 HKLM, Software\Intel\MediaSDK\Dispatch\iKBL_5921, Path, %REG_SZ%, "%16422%\Intel\Media SDK\libmfxhw64.dll" And don't forget add the new display name at the end of this file: ; KBL iKBLULTGT1 = "Intel(R) HD Graphics 610" iKBLULTGT2 = "Intel(R) HD Graphics 620" iKBLULTGT2R = "Intel(R) UHD Graphics 620" iKBLULTGT2F = "Intel(R) HD Graphics 620" iKBLULTGT3E15 = "Intel(R) Iris(TM) Plus Graphics 640" iKBLULTGT3E28 = "Intel(R) Iris(TM) Plus Graphics 650" iKBLULXGT2 = "Intel(R) HD Graphics 615" iKBLDTGT1 = "Intel(R) HD Graphics 610" OK, now save the file and run setup to install the drivers, it should be work. After restart, you will found the Aero came back again. And run dxdiag to check if the 3D function can work, it should work. Here you even can play some 3D game now. But the player crash couldn't stop. And the video tab of intel configure panel will crash too. Most tutorial on web will end here, but my hacking is just begin. Here I must claim someone wants try to merge file to let this work, I don't think this will work. Because the different WDDM support in diffferent system, if one driver only support in windows 10 it couldn't be run on the windows 7. I tried merge the windows 10 driver into windows 7, and resolved tons of DLL missed and function redirect, modify tons of improt table of DLL, The drivers can be loaded, but it won't work. Just like you install a defalut VGA driver, no 3D function will work correctly. I started from the player crash, it reported that it crash in igdumdim32.dll @0x59c4EA0C, the igdumdim32.dll and igdumdim64.dll is the Intel's user space graphics drivers' core file, the Intel's graphics has a small kernel part called miniports, it only open the tunnel between userspace application and the hardware, the real working part is in the DLL, like 3D function, video acceleration and Direct draw. Use a debuger like ollydbg to debug it I found it's a function do some setting work: 59C4E948 8B87 0C010000 mov eax, dword ptr ds:[edi+10C] 59C4E94E 53 push ebx 59C4E94F 57 push edi 59C4E950 FFD0 call eax 59C4E952 8B8F 00010000 mov ecx, dword ptr ds:[edi+100] 59C4E958 8BD8 mov ebx, eax 59C4E95A 8D45 DC lea eax, dword ptr ss:[ebp-24] 59C4E95D 50 push eax 59C4E95E 57 push edi 59C4E95F FFD1 call ecx 59C4E961 8B56 10 mov edx, dword ptr ds:[esi+10] 59C4E964 8B0A mov ecx, dword ptr ds:[edx] 59C4E966 F7C1 00002000 test ecx, 200000 59C4E96C 74 0C je short 59C4E97A ; igdumdim.59C4E97A 59C4E96E C746 18 2404655>mov dword ptr ds:[esi+18], 5E650424 59C4E975 E9 84000000 jmp 59C4E9FE ; igdumdim.59C4E9FE 59C4E97A F7C1 00000004 test ecx, 4000000 59C4E980 74 09 je short 59C4E98B ; igdumdim.59C4E98B 59C4E982 C746 18 5C04655>mov dword ptr ds:[esi+18], 5E65045C 59C4E989 EB 73 jmp short 59C4E9FE ; igdumdim.59C4E9FE 59C4E98B F7C1 00000020 test ecx, 20000000 59C4E991 74 09 je short 59C4E99C ; igdumdim.59C4E99C 59C4E993 C746 18 9404655>mov dword ptr ds:[esi+18], 5E650494 59C4E99A EB 62 jmp short 59C4E9FE ; igdumdim.59C4E9FE 59C4E99C 85C9 test ecx, ecx 59C4E99E 79 09 jns short 59C4E9A9 ; igdumdim.59C4E9A9 59C4E9A0 C746 18 CC04655>mov dword ptr ds:[esi+18], 5E6504CC 59C4E9A7 EB 55 jmp short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9A9 8B45 DC mov eax, dword ptr ss:[ebp-24] 59C4E9AC 83F8 15 cmp eax, 15 59C4E9AF 74 1C je short 59C4E9CD ; igdumdim.59C4E9CD 59C4E9B1 83F8 16 cmp eax, 16 59C4E9B4 74 17 je short 59C4E9CD ; igdumdim.59C4E9CD 59C4E9B6 83F8 13 cmp eax, 13 59C4E9B9 75 43 jnz short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9BB F742 04 0000000>test dword ptr ds:[edx+4], 2000000 59C4E9C2 75 A3 je short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9C4 C746 18 AC05655>mov dword ptr ds:[esi+18], 5E6505AC 59C4E9CB EB 31 jmp short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9CD 8B42 04 mov eax, dword ptr ds:[edx+4] 59C4E9D0 A9 00004000 test eax, 400000 59C4E9D5 74 09 je short 59C4E9E0 ; igdumdim.59C4E9E0 59C4E9D7 C746 18 3C05655>mov dword ptr ds:[esi+18], 5E65053C 59C4E9DE EB 1E jmp short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9E0 A9 00008000 test eax, 800000 59C4E9E5 74 09 je short 59C4E9F0 ; igdumdim.59C4E9F0 59C4E9E7 C746 18 0405655>mov dword ptr ds:[esi+18], 5E650504 59C4E9EE EB 0E jmp short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9F0 A9 00000001 test eax, 1000000 59C4E9F5 74 07 je short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9F7 C746 18 7405655>mov dword ptr ds:[esi+18], 5E650574 59C4E9FE 85DB test ebx, ebx 59C4EA00 74 0D je short 59C4EA0F ; igdumdim.59C4EA0F 59C4EA02 8B4B 04 mov ecx, dword ptr ds:[ebx+4] 59C4EA05 85C9 test ecx, ecx 59C4EA07 74 06 je short 59C4EA0F ; igdumdim.59C4EA0F 59C4EA09 8B46 18 mov eax, dword ptr ds:[esi+18] 59C4EA0C 8948 0C mov dword ptr ds:[eax+C], ecx <============ crash here 59C4EA0F C746 1C 1800000>mov dword ptr ds:[esi+1C], 18 59C4EA16 C746 20 4000000>mov dword ptr ds:[esi+20], 40 59C4EA1D C746 24 4000000>mov dword ptr ds:[esi+24], 40 59C4EA24 C746 28 4000000>mov dword ptr ds:[esi+28], 40 59C4EA2B C746 2C 0400000>mov dword ptr ds:[esi+2C], 4 59C4EA32 C746 30 1000000>mov dword ptr ds:[esi+30], 10 59C4EA39 C746 34 1000000>mov dword ptr ds:[esi+34], 10 59C4EA40 C746 38 0008000>mov dword ptr ds:[esi+38], 800 59C4EA47 C746 3C 8000000>mov dword ptr ds:[esi+3C], 80 59C4EA4E C746 40 2000000>mov dword ptr ds:[esi+40], 20 59C4EA55 C746 44 0008000>mov dword ptr ds:[esi+44], 800 59C4EA5C C746 48 2004000>mov dword ptr ds:[esi+48], 420 59C4EA63 C746 4C 4004000>mov dword ptr ds:[esi+4C], 440 59C4EA6A C746 50 2000000>mov dword ptr ds:[esi+50], 20 59C4EA71 C746 54 1000000>mov dword ptr ds:[esi+54], 10 59C4EA78 56 push esi 59C4EA79 C786 B8000000 3>mov dword ptr ds:[esi+B8], 59C4D630 59C4EA83 C786 BC000000 1>mov dword ptr ds:[esi+BC], 59C4E410 59C4EA8D C786 C0000000 3>mov dword ptr ds:[esi+C0], 59C4D830 59C4EA97 C786 C4000000 4>mov dword ptr ds:[esi+C4], 59C4E440 59C4EAA1 C786 C8000000 A>mov dword ptr ds:[esi+C8], 59D71FA0 59C4EAAB C786 CC000000 1>mov dword ptr ds:[esi+CC], 59C4DB10 59C4EAB5 C786 D4000000 8>mov dword ptr ds:[esi+D4], 59C4E680 59C4EABF C786 D8000000 1>mov dword ptr ds:[esi+D8], 59C4DC10 59C4EAC9 C786 DC000000 8>mov dword ptr ds:[esi+DC], 59C4E680 59C4EAD3 C786 E0000000 8>mov dword ptr ds:[esi+E0], 59C4E880 59C4EADD C786 E4000000 2>mov dword ptr ds:[esi+E4], 59C4DD20 59C4EAE7 C786 EC000000 6>mov dword ptr ds:[esi+EC], 59C4CE60 59C4EAF1 C786 F0000000 D>mov dword ptr ds:[esi+F0], 59C4CED0 59C4EAFB C786 F4000000 8>mov dword ptr ds:[esi+F4], 59C4CC80 59C4EB05 C786 F8000000 F>mov dword ptr ds:[esi+F8], 59C4E8F0 59C4EB0F E8 7CF8FFFF call 59C4E390 ; igdumdim.59C4E390 59C4EB14 8B4D FC mov ecx, dword ptr ss:[ebp-4] 59C4EB17 5B pop ebx 59C4EB18 5F pop edi 59C4EB19 33CD xor ecx, ebp 59C4EB1B 5E pop esi 59C4EB1C E8 7354EEFF call 59B33F94 ; igdumdim.59B33F94 59C4EB21 8BE5 mov esp, ebp 59C4EB23 5D pop ebp 59C4EB24 C2 0400 retn 4 This function is setting some thing according a flag which read from call on @59C4E95F, and the following part is a complex branch to select correct arguments for the function call @59C4EB0F. I tried some trace route and found we need let branch @59C4E9C2 goes false, so here we make it to nop like this: 59C4E9B1 83F8 16 cmp eax, 16 59C4E9B4 74 17 je short 59C4E9CD ; igdumdim.59C4E9CD 59C4E9B6 83F8 13 cmp eax, 13 59C4E9B9 75 43 jnz short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9BB F742 04 0000000>test dword ptr ds:[edx+4], 2000000 59C4E9C2 90 nop 59C4E9C3 90 nop 59C4E9C4 C746 18 AC05655>mov dword ptr ds:[esi+18], 5E6505AC 59C4E9CB EB 31 jmp short 59C4E9FE ; igdumdim.59C4E9FE 59C4E9CD 8B42 04 mov eax, dword ptr ds:[edx+4] 59C4E9D0 A9 00004000 test eax, 400000 59C4E9D5 74 09 je short 59C4E9E0 ; igdumdim.59C4E9E0 OK, the most important part comes, translate the RVA into file address, and modify it. Sounds really hard isn't it? Good news is there is a more easy way, and this is the signature about this fix: 83 F8 13 75 43 F7 42 04 00 00 00 02 Search this hex string in the file, modify the following two bytes into "90 90" 00291280h: 74 09 C7 46 18 5C 35 C6 14 EB 73 F7 C1 00 00 00 ; t.荈.\5?雜髁... 00291290h: 20 74 09 C7 46 18 94 35 C6 14 EB 62 85 C9 79 09 ; t.荈.??隻吷y. 002912a0h: C7 46 18 CC 35 C6 14 EB 55 8B 45 DC 83 F8 15 74 ; 荈.??險婨軆?t 002912b0h: 1C 83 F8 16 74 17 83 F8 13 75 43 F7 42 04 00 00 ; .凐.t.凐.uC鰾... 002912c0h: 00 02 90 90 C7 46 18 AC 36 C6 14 EB 31 8B 42 04 ; ..悙荈.???婤. 002912d0h: A9 00 00 40 00 74 09 C7 46 18 3C 36 C6 14 EB 1E ; [email protected].荈.<6?? 002912e0h: A9 00 00 80 00 74 09 C7 46 18 04 36 C6 14 EB 0E ; ?.€.t.荈..6?? We need the do same thing for file igdumdim64.dll, but because this is 64bit dll, so the signature is different: 01 76 17 83 F9 13 75 44 F7 42 04 00 00 00 02 The modify should like this 002d56f0h: 73 09 48 8D 05 1F AD A7 04 EB 6D 0F BA E1 1D 73 ; s.H?..雖.横.s 002d5700h: 09 48 8D 05 48 AD A7 04 EB 5E 85 C9 79 09 48 8D ; .H?H.隵吷y.H? 002d5710h: 05 73 AD A7 04 EB 51 8B 4C 24 20 8D 41 EB 83 F8 ; .s.隥婰$ 岮雰? 002d5720h: 01 76 17 83 F9 13 75 44 F7 42 04 00 00 00 02 90 ; .v.凒.uD鰾.....? 002d5730h: 90 48 8D 05 30 AE A7 04 EB 2E 8B 42 04 0F BA E0 ; 怘?0.?婤..亨 002d5740h: 16 73 09 48 8D 05 AE AD A7 04 EB 1C 0F BA E0 17 ; .s.H???.亨. 002d5750h: 73 09 48 8D 05 67 AD A7 04 EB 0D 0F BA E0 18 73 ; s.H?g.?.亨.s OK after modify the two file, replace it into the windows directory, if your windows is 64 bit, put igdumdim64.dll into windows\system32, and igdumdim32.dll into windows\sysWow64. This must be done under the safe mode, restart windows and press F8 before windows startup, goes into safe mode to replace it. After reboot, you will get all things work. PS: In my system the nvidia's video card cause some problem, it will let system hang sometime, I highly recommand to reinstall the nvidia's drivers after install the Intel's drivers. and choose a lower version, but not the newest version. I have UHD 620 and MX 150 in my system, and after I reinstall the 397.64 nvidia drivers the problem gone away and the laptop works like a charm. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα