Windows Vista OEM Award BIOS Mod Method by Adding SLIC Table with Dynamic Memory Address Windows Vista OEM Award BIOS mod metodo aggiungendo SLIC tabella con l'indirizzo di memoria dinamica
Windows Vista OEM activation crack method requires a SLP 2.0 (System Locked Preinstallation 2.0) compliant BIOS motherboard. Windows Vista OEM attivazione crack metodo richiede una SLP 2.0 (Sistema di Chiusi preinstallazione 2.0) compatibile con BIOS della scheda madre. New branded OEM computer comes with one, or offers not-so-old motherboard a BIOS free upgrade to the one that supports SLP 2.0 with SLIC table and signed Windows Market (OEM ID and Table ID). Nuovo di marca OEM computer viene fornito con uno, o offerte non-così-vecchio scheda madre un BIOS upgrade gratuito a quella che sostiene SLP 2,0 SLIC con tavolo e firmato Windows mercato OEM (ID e la tabella ID). If you are using older computer or DIY motherboard, you’re not out of luck though. Se si utilizza più vecchi computer o della scheda madre fai-da-te, non sei fuori di fortuna però. Chinese hackers have managed to mod the BIOS to Hacker cinesi sono riusciti a mod il BIOS per replace sostituire or o add in the SLIC aggiungere la SLIC (Software Licensing Internal Code) table into the ACPI table. (Licenze per il software codice interno) nella tabella ACPI tabella. However, the replacement of existing ACPI table may cause loss of certain features, while addition of SLIC table may Tuttavia, la sostituzione delle attuali ACPI tabella può causare la perdita di alcune funzioni, mentre l'aggiunta di tabella può SLIC incompatible on computer with different size of memory incompatibili su computer con diverse dimensioni di memoria , as BIOS is , Come BIOS è hard patched with the SLIC’s table physical memory address duro con la patch SLIC della tabella indirizzo di memoria fisica which restrict the mod BIOS to the machine it’s been modified only. che limitano il mod BIOS per la macchina è stata modificata solo.
So, the method to mod BIOS for Quindi, il metodo del BIOS per mod Windows Vista Windows Vista OEM support with previously used static SLIC memory address is problematic as the memory address will be changed when the memory size changed, and users need to modify the SLIC address in OEM con supporto precedentemente utilizzati statica SLIC indirizzo di memoria è problematica, in quanto l'indirizzo di memoria verrà modificata quando la dimensione della memoria è cambiato, e gli utenti hanno la necessità di modificare il recapito in SLIC ACPITBL.BIN or else they won’t be able to boot into the system, disallowing mass circulation of the mod OEM BIOS. altrimenti non saranno in grado di fare il boot nel sistema, rifiutare di massa pratica dei mod OEM BIOS. Thus the Chinese hackers refine the technique to allows dynamic physical memory address allocation of SLIC table is been used. Così i cinesi hacker perfezionare la tecnica consente di memoria fisica dinamica degli indirizzi di SLIC tabella è stato usato. With dynamic memory allocation, physical memory size can be changed without any consent of BIOS non-compliant. Con allocazione della memoria dinamica, la dimensione della memoria fisica può essere modificata senza il consenso del BIOS non conformi. Beside, previous method of adding SLIC table may require users to flash BIOS into ROM 2 times, first with the mod BIOS and later with the original BIOS, while the BIOS with this refined method with dynamic memory address register requires only one flash at most. Accanto, una precedente metodo di aggiungere SLIC tabella possono richiedere agli utenti di flash ROM del BIOS in 2 volte, prima con il mod BIOS e più tardi con il BIOS originale, mentre il BIOS con questo metodo raffinato con l'indirizzo di memoria dinamica registro richiede solo un flash al massimo.
Tools and utilities required: Strumenti e servizi di pubblica utilità richieste:
- MODBIN6
- CBROM219
- WinHEX
- Hiew 7.4 (Hiew32) Hiew 7.4 (Hiew32) (only for Award BIOS, if you have Hiew32 you no longer require IDA 5.0) (solo per Award BIOS, se hai Hiew32 voi non necessitano più di IDA 5.0)
- IDA 5.0 IDA 5,0
- UltraEdit
The instruction to create a mod Vista OEM BIOS with dynamic memory address allocation capability is complicated, and recommended for expert only. Le istruzioni per creare un mod Vista OEM BIOS con l'indirizzo di memoria dinamica di assegnazione di capacità è complicato, e ha raccomandato solo per esperti. Beside, this article is translated from documents in Chinese, so the accuracy of the translation is not guaranteed. Accanto, questo articolo è una traduzione di documenti in cinese, così l'accuratezza della traduzione non è garantita. If you really want to make your BIOS to be able to activate OEM version of Windows Vista, try the Se si vuole veramente per rendere il vostro BIOS per essere in grado di attivare la versione OEM di Windows Vista, provare il ready-mod BIOS (with static address) pronto-mod BIOS (con indirizzo statico) , software based , Basati su software Vista Loader OEM BIOS emulator Vista loader OEM BIOS emulatore , or software based , O basati su software OEM BIOS Emulation Toolkit OEM BIOS l'emulazione Toolkit . Other popular Vista crack include Vista altri popolari comprendono crack TimerLock which automatically apply che applica automaticamente TimerStop driver. This tutorial is proof of concept only, as each BIOS is different, and hence the values or steps or things modified may be different. Questo tutorial è la prova del concetto solo, come ogni BIOS è diverso e, di conseguenza, i valori o passi o modificati cose possono essere diverse.
Warning : Alteration to BIOS may invalidate warranty, cause computer to unable to boot up or other irrecoverable effect. Attenzione: la modifica del BIOS può far decadere la garanzia, a causa del computer in grado di avviare o di altri irrecuperabili effetto. Do it at your own risk. Farlo a proprio rischio e pericolo.
If you need help on mod BIOS for Vista activation, check out Se hai bisogno di aiuto su mod BIOS per Vista l'attivazione, check-out this thread questo thread .
- Create a temporary folder (Vista or BIOS is you like) at root directory (C:\). Creare una cartella temporanea (Vista o BIOS è che ti piace) a directory radice (C: \).
- Download CBROM 2.19 (depending on where you download, it may need to rename the executable to cbrom.exe as illustrated in this article), MODBIN6 2.01.01, SLIC.BIN (named acpislic.bin which can be varied, which is the SLIC table portion of BIOS) from download links above, and place them in the temporary folder. Download CBROM 2.19 (a seconda di dove si scarica, è possibile che sia necessario rinominare il file eseguibile a cbrom.exe come illustrato in questo articolo), MODBIN6 2.01.01, SLIC.BIN (che prende il nome acpislic.bin che può essere variato, che è la SLIC tabella porzione di BIOS) da scaricare link sopra, e metterli nella cartella temporanea.
- Extract, export or save the XXXXXXXX.BIN (name can be changed, which is the motherboard BIOS that you want to hack for Windows Vista OEM activation). Estratto, l'esportazione o salvare il XXXXXXXX.BIN (nome può essere cambiato, che è il BIOS della scheda madre che si desidera incidere per Windows Vista OEM di attivazione). Easier way is to simply download the BIOS firmware from the computer or motherboard’s manufacturers such as ASUS, Gigabyte, MSI, Acer, HP, Dell, Lenovo and etc. Modo più semplice è semplicemente scaricare il firmware dal BIOS del computer o della scheda madre produttori quali ASUS, Gigabyte, MSI, Acer, HP, Dell, Lenovo e ecc
- Determine which BIOS portion of file is the field of RSDT…FACS located: Determinare quale parte del BIOS di file è il campo di RSDT… FACS trova:
- In elevated command prompt elevata prompt dei comandi (or (o disable UAC disattivare UAC ), type the following command: ), Digitare il seguente comando:
CBROM.EXE XXXXXX.BIN /d CBROM.EXE XXXXXX.BIN / d
You will see something like below screencap: Vedrete qualcosa come screencap qui sotto:
CBROM V2.19 (C)Award Software 2001 All Rights Reserved. CBROM V2.19 (C) Award Software 2001 Tutti i diritti riservati.
******** XXXXXXXX.BIN BIOS component ******** ******** XXXXXXXX.BIN BIOS componente ********
No. Item-Name Original-Size Compressed-Size Original-File-Name N. Voce-Nome originale-taglia compressa originale taglia-File-Name
===================================================== ================================================== ===
0. System BIOS 20000h(128.00K) 13B3Eh(78.81K) 83IID318.BIN BIOS di sistema 20000h (128.00K) 13B3Eh (78.81K) 83IID318.BIN
1. XGROUP CODE 0DFF0h(55.98K) 0993Ch(38.31K) awardext.rom XGROUP CODICE 0DFF0h (55.98K) 0993Ch (38.31K) awardext.rom
2. ACPI table 043E5h(16.97K) 01A46h(6.57K) ACPITBL.BIN ACPI tabella 043E5h (16.97K) 01A46h (6.57K) ACPITBL.BIN
3. EPA LOGO 0168Ch(5.64K) 002AAh(0.67K) AwardBmp.bmp EPA LOGO 0168Ch (5.64K) 002AAh (0.67K) AwardBmp.bmp
4. YGROUP ROM 0F570h(61.36K) 0482Dh(18.04K) awardeyt.rom YGROUP ROM 0F570h (61.36K) 0482Dh (18.04K) awardeyt.rom
5. GROUP ROM[ 0] 04CD0h(19.20K) 02261h(8.59K) _EN_CODE.BIN GRUPPO ROM [0] 04CD0h (19.20K) 02261h (8.59K) _EN_CODE.BIN
6. Other(404E:0000) 03476h(13.12K) 00EB4h(3.68K) 64N8IIP.BMP Altri (404E: 0000) 03476h (13.12K) 00EB4h (3.68K) 64N8IIP.BMP
7. Other(404F:0000) 0345Dh(13.09K) 008B9h(2.18K) 64N8P4P.BMP Altro (404F: 0000) 0345Dh (13.09K) 008B9h (2.18K) 64N8P4P.BMP
8. Other(4050:0000) 0345Dh(13.09K) 008CCh(2.20K) 64N8P4HT.BMP Altri (4050:0000) 0345Dh (13.09K) 008CCh (2.20K) 64N8P4HT.BMP
9. Other(4051:0000) 04286h(16.63K) 00A7Eh(2.62K) 64N8P4E.BMP Altri (4051:0000) 04286h (16.63K) 00A7Eh (2.62K) 64N8P4E.BMP
10. Other(4052:0000) 04286h(16.63K) 00B58h(2.84K) 64N8P4HE.BMP Altri (4052:0000) 04286h (16.63K) 00B58h (2.84K) 64N8P4HE.BMP
11. Other(4053:0000) 0345Dh(13.09K)007D9h(1.96K) 64N8ICPD.BMP Altri (4053:0000) 0345Dh (13.09K) 007D9h (1.96K) 64N8ICPD.BMP
12. PCI ROM[A] 0D000h(52.00K)07DA8h(31.41K) RTM8100.LOM PCI ROM [A] 0D000h (52.00K) 07DA8h (31.41K) RTM8100.LOMTotal compress code space = 4B000h(300.00K) Totale comprimere lo spazio codice = 4B000h (300.00K)
Total compressed code size = 31788h(197.88K) Totale compresso codice size = 31788h (197.88K)
Remain compress code space = 19878h(102.12K) Restano comprimere lo spazio codice = 19878h (102.12K)** Micro Code Information ** ** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID Aggiornamento ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
——————+——————–+——————–+—————— ------+-------+-------+------
PGA478 2E 0F29| PGA478 2E 0F29 | - In above case, inside XXXXXXX.BIN, there is no ggroup.bin (where “RSDTFACPDSDTAPICHPETMCFGFACS” or similar ACPI tables index field is located), so RSDT…FACS field is located inside the system BIOS byte code中, and to modify this need to use MODBIN6. Nel caso di cui sopra, all'interno XXXXXXX.BIN, non vi è alcun ggroup.bin (dove "RSDTFACPDSDTAPICHPETMCFGFACS" o simili ACPI tabelle indice campo si trova), in modo RSDT… FACS campo è situato all'interno del BIOS di sistema di codice di byte中, e di modificare questa necessità di utilizzare MODBIN6. If your BIOS contains ggroup.bin, you can use CBROM to extract and seperate ggroup.bin BIOS part as file. Se il BIOS contiene ggroup.bin, è possibile utilizzare per estrarre CBROM e separata ggroup.bin parte del BIOS come file.
Below is the sample CBROM output of “CBROM.EXE XXXXXX.BIN /d” command for BIOS with ggruoup.bin (Gigabyte GA-G1975X BIOS as example): Di seguito è riportato il campione CBROM uscita di "CBROM.EXE XXXXXX.BIN / d" per il comando del BIOS con ggruoup.bin (Gigabyte GA-G1975X BIOS come esempio):
No. Item-Name Original-Size Compressed-Size Original-Fi N. Voce-Nome originale-taglia compressa originale taglia-Fi
================================================
0. System BIOS 20000h(128.00K)1492Ah(82.29K)G1975X.BIN BIOS di sistema 20000h (128.00K) 1492Ah (82.29K) G1975X.BIN
1. XGROUP CODE 0F7B0h(61.92K)0A8E6h(42.22K)awardext.rom XGROUP CODICE 0F7B0h (61.92K) 0A8E6h (42.22K) awardext.rom
2. EPA LOGO 0168Ch(5.64K)0030Dh(0.76K)AwardBmp.bmp EPA LOGO 0168Ch (5.64K) 0030Dh (0.76K) AwardBmp.bmp
3. GROUP ROM[18] 00EF0h(3.73K)00B77h(2.87K)ggroup.bin GRUPPO ROM [18] 00EF0h (3.73K) 00B77h (2.87K) ggroup.bin
4. YGROUP ROM 07140h(28.31K)04D7Ch(19.37K)awardeyt.rom YGROUP ROM 07140h (28.31K) 04D7Ch (19.37K) awardeyt.rom
5. FNT1 ROM 02D28h(11.29K)02038h(8.05K)font1.awd FNT1 ROM 02D28h (11.29K) 02038h (8.05K) font1.awd
6. FNT2 ROM 03278h(12.62K)01F18h(7.77K)font2.awd FNT2 ROM 03278h (12.62K) 01F18h (7.77K) font2.awd
7. FNT3 ROM 025FCh(9.50K)017FBh(6.00K)font3.awd FNT3 ROM 025FCh (9.50K) 017FBh (6.00K) font3.awd
8. GROUP ROM[ 0] 06010h(24.02K)02787h(9.88K)_EN_CODE.BIN GRUPPO ROM [0] 06010h (24.02K) 02787h (9.88K) _EN_CODE.BIN
9. GROUP ROM[ 1] 06510h(25.27K)02A1Fh(10.53K)_FR_CODE.BIN GRUPPO ROM [1] 06510h (25.27K) 02A1Fh (10.53K) _FR_CODE.BIN
10. GROUP ROM[ 3] 06420h(25.03K)02A75h(10.61K)_GR_CODE.BIN GRUPPO ROM [3] 06420h (25.03K) 02A75h (10.61K) _GR_CODE.BIN
11. GROUP ROM[ 4] 068D0h(26.20K)02A74h(10.61K)_SP_CODE.BIN GRUPPO ROM [4] 068D0h (26.20K) 02A74h (10.61K) _SP_CODE.BIN
12. GROUP ROM[ 8] 04EF0h(19.73K)02575h(9.36K)_B5_CODE.BIN GRUPPO ROM [8] 04EF0h (19.73K) 02575h (9.36K) _B5_CODE.BIN
13. GROUP ROM[10] 04F60h(19.84K)025E9h(9.48K)_GB_CODE.BIN GRUPPO ROM [10] 04F60h (19.84K) 025E9h (9.48K) _GB_CODE.BIN
14. GROUP ROM[11] 05E50h(23.58K)02A85h(10.63K)_JP_CODE.BIN GRUPPO ROM [11] 05E50h (23.58K) 02A85h (10.63K) _JP_CODE.BIN
15. PCI ROM[A] 0F200h(60.50K)09594h(37.39K)ICH7RAID.BIN PCI ROM [A] 0F200h (60.50K) 09594h (37.39K) ICH7RAID.BIN
16. PCI ROM[B] 10000h(64.00K)09A15h(38.52K)b169d.pxe PCI ROM [B] 10000h (64.00K) 09A15h (38.52K) b169d.pxe
17. LOGO1 ROM 00B64h(2.85K)00520h(1.28K)dbios.bmp LOGO1 ROM 00B64h (2.85K) 00520h (1.28K) dbios.bmp
18. PCI ROM[C] 04000h(16.00K)02287h(8.63K)ITE8212.ROM PCI ROM [C] 04000h (16.00K) 02287h (8.63K) ITE8212.ROM
19. Other(4067:0000) 01AADh(6.67K)00B75h(2.86K)PPMINIT.ROM Altri (4067:0000) 01AADh (6.67K) 00B75h (2.86K) PPMINIT.ROM
20. OEM0 CODE 025B3h(9.42K)01B37h(6.80K)dbf.bin OEM0 CODICE 025B3h (9.42K) 01B37h (6.80K) dbf.bin
21. GROUP ROM[24] 00132h(0.30K)0011Eh(0.28K)SPECIAL.FNT GRUPPO ROM [24] 00132h (0.30K) 0011Eh (0.28K) SPECIAL.FNT
22. ACPI table 09640h(37.56K)0352Ch(13.29K)ASUSACPI.BIN ACPI tabella 09640h (37.56K) 0352Ch (13.29K) ASUSACPI.BINTotal compress code space = 67000h(412.00K) Totale comprimere lo spazio codice = 67000h (412.00K)
Total compressed code size = 57613h(349.52K) Totale compresso codice size = 57613h (349.52K)
Remain compress code space = 0F9EDh(62.48K) Restano comprimere lo spazio codice = 0F9EDh (62.48K)** Micro Code Information ** ** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Upd Aggiornamento ID CPUID | Update ID CPUID | Update ID CPUID | upd
——————+——————–+——————–+—– ------+-------+-------+--
SLOT1 0A 0F32| PGA423 2C 0F25| 00000000 00000000 0000 SLOT1 0A 0F32 | PGA423 2C 0F25 | 00000000 00000000 0000
00000000 00000000 0000 0000| 00000000 00000000 0000 00000000 00000000 0000 0000 | 00000000 00000000 0000
00000000 00000000 0000 0000| 00000000 00000000 0000 00000000 00000000 0000 0000 | 00000000 00000000 0000
00000000 00000000 0000 0000| 00000000 00000000 0000 00000000 00000000 0000 0000 | 00000000 00000000 0000
00000000 00000000 0000 0000| 00000000 00000000 0000 00000000 00000000 0000 0000 | 00000000 00000000 0000
00000000 00000000 0000 0000| 00000000 00000000 0000 0000 | - For BIOS with ggroup.bin, extract the ggroup.bin with the following command: Per BIOS con ggroup.bin, estrarre il ggroup.bin con il seguente comando:
CBROM.EXE G1975X.bin /group18 extract CBROM.EXE G1975X.bin / group18 estratto
You should see the following output as below screenshot: Si dovrebbe vedere la seguente output come screenshot qui sotto:
CBROM V2.19 (C)Award Software 2001 All Rights Reserved. CBROM V2.19 (C) Award Software 2001 Tutti i diritti riservati.
Enter an extract file Name :(ggroup.bin) Inserisci un estratto il file Nome: (ggroup.bin)
[GROUP] ROM is extracted to ggroup.bin [GRUPPO] ROM è estratto a ggroup.bin - Separate, save and extract the ACPITBL.BIN by using the following command: Separato, salvare ed estrarre i ACPITBL.BIN utilizzando il seguente comando:
CBROM.EXE 050318.BIN /acpi extract CBROM.EXE 050318.BIN / ACPI estratto
You should see the following output from CBROM: Si dovrebbe vedere la seguente output da CBROM:
CBROM V2.19 (C)Award Software 2001 All Rights Reserved. CBROM V2.19 (C) Award Software 2001 Tutti i diritti riservati.
Enter an extract file Name :(ACPITBL.BIN) Inserisci un estratto il file Nome: (ACPITBL.BIN)
[ACPI] ROM is extracted to ACPITBL.BIN [ACPI] ROM è estratto a ACPITBL.BIN - For BIOS without ggroup.bin (those with ggroup.bin can skip this step), launch MODBIN6, select XXXXXXXX.BIN (Must be named in .BIN extension, if not rename it. It’s the BIOS to modify to add in the SLIC table so that it’s SLP 2.0 compliant.). Per BIOS senza ggroup.bin (quelle con ggroup.bin può saltare questo passo), lancio MODBIN6, selezionare XXXXXXXX.BIN (deve essere chiamato in. BIN estensione, se non rinominarlo. E 'il BIOS di modificare di aggiungere nel SLIC tabella in modo che sia compatibile 2,0 SLP.). Do not close the window of MODBIN6, and wait for the ORIGINAL.BIN to be extracted and created in the temporary folder. Non chiudere la finestra di MODBIN6, e attendere la ORIGINAL.BIN a essere estratto e creato nella cartella temporanea.
- In elevated command prompt elevata prompt dei comandi (or (o disable UAC disattivare UAC ), type the following command: ), Digitare il seguente comando:
- Follow the below instructions to modify ACPITBL.BIN: Seguire le istruzioni qui di seguito per modificare ACPITBL.BIN:
- Run UltraEdit and open ACPITBL.BIN BIOS image file. Esegui UltraEdit ACPITBL.BIN e aprire file di immagine del BIOS.
- Search text for RSDT. Cerca testo per RSDT.
- Behind RSDT is the byte that indicates the length of RSDT table. Dietro RSDT è il byte che indica la lunghezza di RSDT tabella. Add 4 to this number in HEX format. Aggiungere 4 a questo numero in formato HEX. For example, if the value indicated is 002C, modify and edit the value to become 0030. Ad esempio, se il valore indicato è 002C, modificare e modificare il valore di diventare 0030. Note that the reverse sequence of pairs when keying in UltraEdit Hex editor (ie enter as 30 00 instead of 00 30). Si noti che la sequenza di invertire le coppie quando digitando UltraEdit redattore del hex (vale a dire entrare come 30 00 invece di 00 30).
- Insert (not replace) additional 4 bytes of 00 value after the original length (002C) of RSDT table (normally in front of FACPt, or FXCPt for certain Gigabytes mobo). Inserire (non sostituire) ulteriori 4 byte di valore 00 dopo la lunghezza iniziale (002C) della tabella RSDT (di solito di fronte a FACPt, o per alcuni FXCPt Mobo gigabyte). You can copy and paste the 4 bytes of 00 from other location to this location. È possibile copiare e incollare il 4 byte di 00 da un altro luogo di questo percorso. This modification and alteration is to provide space to store the SLIC table in future steps, so remember this address (for this guide, assume this location is SLICaddress ). Questa modifica e alterazione è quello di fornire uno spazio per memorizzare il SLIC tabella in futuro passi, in modo ricordare questo indirizzo (per questa guida, assumere questa posizione è SLICaddress). In this example, SLICaddress value is 002C. In questo esempio, SLICaddress valore è 002C.
Before modification of ACPITBL.BIN in UltraEdit Prima della modifica del ACPITBL.BIN in UltraEdit
After modification of ACPITBL.BIN in UltraEdit to allocate space for SLIC table. Dopo la modifica di ACPITBL.BIN in UltraEdit di assegnare lo spazio per SLIC tabella. - Check the total length of ACPITBL.BIN if the length can be divided in full by 4. Verificare la lunghezza totale di ACPITBL.BIN se la lunghezza può essere suddiviso in piena di 4. If not, add 1 to 3 bytes of 00 at the end of the BIOS image file so that the length can be divided by 4 without any remainder. In caso contrario, aggiungere 1 a 3 byte di 00 alla fine del BIOS file di immagine in modo che la lunghezza può essere suddiviso in 4 senza resto. This is to ensure that after merging with SLIC.BIN image file, the header address of SLIC table can be divided by 4 without remainder too. Questo è per garantire che dopo la fusione con SLIC.BIN file di immagine, l'header l'indirizzo del SLIC tabella può essere diviso per 4 senza resto.
Check if the length of ACPITBL.BIN (the last address of the file + 1) can be divided by 4 without remainder. Verificare se la lunghezza di ACPITBL.BIN (l'ultimo indirizzo del file + 1) può essere diviso per 4 senza resto. In this example, before this step modification, the last byte has HEX address of 43E8, so the length of the file is 43E9, cannot be divided by 4 in full without remainder. In questo esempio, prima di questo passo la modifica, l'ultimo byte ha HEX indirizzo del 43E8, così la lunghezza del file è 43E9, non può essere diviso in 4 in pieno senza resto.
After 4 division check modification, added 3 00 value bytes. Dopo 4 divisione verificare la modifica, aggiunto 3 00 valore di byte. - Modify OEM_ID and OEM_Table_ID according to your requirements (normally _ASUS_ and Notebook). Modificare OEM_ID e OEM_Table_ID in base alle proprie esigenze (di norma _ASUS_ e Blocco Note). Refer to Fare riferimento a improved add SLIC table instruction migliorata aggiungere SLIC tabella di istruzioni at step 8 of part 2 for more information. al punto 8 della parte 2 per ulteriori informazioni.
- Save the file. Salvare il file.
- Execute the following command to merge and patch the SLIC table content with the modified ACPITBL.BIN to get the final working copy of ACPITBL.BIN: Eseguire il seguente comando per unire e patch SLIC la tabella con i contenuti modificati ACPITBL.BIN per ottenere il lavoro finale copia di ACPITBL.BIN:
COPY ACPITBL.BIN /B + SLIC.BIN /B ACPI.BIN /B COPIA ACPITBL.BIN / B + SLIC.BIN / B ACPI.BIN / B
Note: According to your requirement, use the correct ACPI.BIN, ie ASUS for ASUS OEM ID, Lenovo for Lenovo OEM ID and etc. Nota: in base alle proprie esigenze, utilizzare la corretta ACPI.BIN, vale a dire per ASUS ASUS OEM ID, Lenovo Lenovo per OEM ID e la ecc
- Follow the below steps to find the position of the space that temporarily store the value of the address of headers of every tables in the code of ORIGINAL.BIN or ggroup.bin. Seguire la procedura qui sotto per trovare la posizione dello spazio che memorizzare temporaneamente il valore di l'indirizzo di intestazioni di tutte le tabelle del codice di ORIGINAL.BIN o ggroup.bin. This address will be assumed as TempBuffer_Address : Questo indirizzo verrà assunto come TempBuffer_Address:
- Run Ultract to open ORIGINAL.BIN or ggroup.bin. Ultract Esegui per aprire ORIGINAL.BIN o ggroup.bin.
- Execute IDA. Eseguire IDA.
- Click on Go to enter IDA. Fare clic su Vai per entrare IDA. Then select and open ORIGINAL.BIN file. Quindi selezionare e aprire ORIGINAL.BIN file.
- In the “Load a new file” dialog box, under the section of “Processor type”, pull down the menu and select “Intel 80×86 processors:80686p”. Nel "Carica un nuovo file" finestra di dialogo, nella sezione "Processore tipo", menu a tendina il menu e selezionare "Intel 80 × 86 processori: 80686p".
- After selected, hit the “Set” button to the right. Dopo aver selezionato, premere "Set" pulsante a destra.
- Click on “OK” button, and then hit on “Yes” button when asked to confirm “Do you want to change the processor type to 80686p?” Fare clic sul pulsante "OK", quindi premere il pulsante "Sì" quando ti viene chiesto di confermare "Vuoi cambiare il tipo di processore a 80686p?"
- In dialog box asked to confirm “Do you want to disassemble it as a 32-bit code?”, press on “No” button as manipulation will be done in 16-bit mode. Nella finestra di dialogo chiesto di confermare "Vuoi smontare come una a 32 bit di codice?", Premere su "No", come la manipolazione avverrà in 16-bit mode.
- In the Strings Window to the right, find and locate the RSDT…FACS character string sequence, and double click on it. Nel Strings finestra a destra, trovare e individuare la RSDT… FACS stringa di caratteri sequenza, e fare doppio clic su di esso.
- Position the cursor at the location of the R character. Posizionare il cursore nella posizione di R carattere. Then press “A” key, and then RSDT…FACS character string will be displayed. Quindi premere "A" chiave, quindi RSDT… FACS stringa di caratteri verrà visualizzato. This text sequence of RSDT…FACS will be called ACPItables . Questo testo sequenza di RSDT… FACS sarà chiamato ACPItables.
Positioning cursor at the line of R. Posizionamento cursore a linea di R.
After pressing A key. Dopo aver premuto un tasto. - Position the cursor after the RSDT…FACS string ACPItables (db 1EH). Posizionare il cursore dopo la RSDT… FACS stringa ACPItables (db 1EH).
Press the “C” key. Premere il "C" key. A block of Assembly code will be displayed. Un blocco di codice Assemblea verrà visualizzato.
- But there is remaining code that hasn’t been disassembled into Assembly code. Ma non vi è restanti codice che non è stato smontato in Assemblea codice. So position the cursor at the first remained assembled code. Quindi posizionare il cursore al primo rimasta assemblati codice. In this case, it’s line of unk_CC49 after the RSDT…FACS string ACPItables provided by db 1Eh. In questo caso, è la linea di unk_CC49 dopo la RSDT… FACS stringa ACPItables fornite dal db 1Eh. Then press the “C” key to convert and disassemble the remaining BIOS byte code. Quindi premere il "C" chiave per convertire e smontare il restante del BIOS di codice di byte.
- Move the cursor across the lines of the following “CALL” block. Spostare il cursore attraverso le linee dei seguenti "chiamata" blocco.
- Watch out for the “CALL” line that can pop up code like below: Attenzione per la "chiamata" linea che può sollevarsi codice come qui di seguito:
push eax push eax
push cx spingere CX
push ebp push EBP
xor ebp, ebp XOR EBP, EBP
mov cx, TABLE_Numbers (temporarily use TABLE _Numbers to represent a value) mov cx, TABLE_Numbers (temporaneamente utilizzare la tabella _Numbers a rappresentare un valore)
mov edi, eax MOV EDI, EAXIn this example, it’s the line of “call sub_CCD4″. In questo esempio, è la linea di "chiamata sub_CCD4".
- Double click on sub_CCD4 to go to the code section of sub_CCD4. Fare doppio clic su sub_CCD4 per andare alla sezione del codice sub_CCD4. If the current display mode is in graphic, right click and select “TEXT View” on the context menu to switch to text mode. Se l'attuale modalità di visualizzazione è di grafico, fai clic destro e selezionare "Testo Visualizza" sul menu di scelta rapida per passare alla modalità testo.
- Inside this block of code, retrieve the 3 important variables - TABLE_Numbers,ACPItables_adress,TempBuffer_Adress,and record their value. All'interno di questo blocco di codice, recuperare il 3 importanti variabili - TABLE_Numbers, ACPItables_adress, TempBuffer_Adress, e registrare il loro valore. In this example, the value of the variables are 4, CC20, 89C4 respectively, where addresses are approximately located at CCDC,CCE2, CD12 respectively. In questo esempio, il valore delle variabili sono 4, CC20, 89C4, rispettivamente, gli indirizzi in cui sono situati a circa CCDC, CCE2, CD12, rispettivamente.
- Use the value of TempBuffer_Adress (89C4 from step above) to match with each table in RSDT…FACS text string, with increment of 4 after each table (matching table). Usare il valore di TempBuffer_Adress (89C4 dal passo sopra) per corrispondere a ogni tabella di cui al RSDT… FACS stringa di testo, con un incremento del 4 dopo ogni tabella (tabella di corrispondenza). For example: Per esempio:
89C4 RSDT 89C4 RSDT
89C8 FACP 89C8 FACP
89CC DSDT 89CC DSDT
89D0 APIC 89D0 APIC
89D4 FACS 89D4 FACS
89D8
89DCThe previous block of code duplicates the required tables in ACPITBL BIOS image according to RSDT…FACS string into a free memory address, and store these value of addresses in space specified by TempBuffer_Address, and then eventually fill these addresses into some specific tables. Il precedente blocco di codice duplicati richiesti tabelle di cui al ACPITBL immagine del BIOS in base al RSDT… FACS stringa in un indirizzo di memoria libera, e memorizzare il valore di questi indirizzi indicati nello spazio di TempBuffer_Address, e poi eventualmente colmare questi indirizzi in alcune specifiche tabelle. So during this process, the storing address value of TempBuffer_Address has to be ensure that cannot and is not changing, or else mod BIOS will fail. Perciò, durante questo processo, la conservazione indirizzo valore di TempBuffer_Address deve garantire che non può e non cambia, oppure mod BIOS non andrà a buon fine.
- Switch to UltraEdit, and press Ctrl-F keyboard shortcut to search for D889 (ie 89D8 value, the value of the memory space location after FACS, where it’sa reverse with low byte in front and high byte behind). Passare a UltraEdit, e premere Ctrl-F tasto di scelta rapida per la ricerca di D889 (vale a dire 89D8 valore, il valore di spazio di memoria la posizione dopo FACS, se si tratta di un inversione a bassa byte davanti e dietro ad alta byte). Pay attention to a few location (82D4, CC91) that lower than FFFF. Prestare attenzione ad alcune località (82D4, CC91) inferiore a quello che FFFF. Most likely you will find it at a few location. È più probabile trovare presso alcune località. If you cannot find any D889 (stored value of 89D8), then you can use directly the address (89D8) located behind the address used to store FACS (89D4). Se non è possibile trovare qualsiasi D889 (valore memorizzato di 89D8), si può usare direttamente l'indirizzo (89D8) trova dietro l'indirizzo utilizzato per memorizzare FACS (89D4). Which mean SLIC table will be appended immediately behind FACS, with string become something like RSDT…FACSSLIC, and can do so by find a location to put this string (move forward 4 bytes or use new location). Il che significa SLIC tabella verrà aggiunto immediatamente dietro FACS, con stringa di diventare qualcosa di simile RSDT… FACSSLIC, e può fare in modo di trovare una città a mettere in questa stringa (andare avanti 4 byte o utilizzare nuova posizione).
- However, if you located code like the following near the location of CC91 in IDA, which mean the section of code is used right after “call sub_CCD4″, and use up the memory address of 89D8. Tuttavia, se si trova il codice come il seguente vicino la posizione di CC91 in IDA, che significa la sezione del codice viene utilizzato subito dopo "chiamata sub_CCD4", e utilizzare l'indirizzo di memoria di 89D8.
seg000:CC80 sub_CC80 proc near ; CODE XREF: seg000:CC52p seg000: CC80 sub_CC80 proc vicino; CODICE XREF: seg000: CC52p
seg000:CC80 push ds seg000: CC80 spingere DS
seg000:CC81 mov ax, 0F000h seg000: CC81 mov ax, 0F000h
seg000:CC84 mov ds, ax seg000: CC84 mov ds, ax
seg000:CC86 assume ds:nothing seg000: CC86 assumere ds: nulla
seg000:CC86 add edi, 10h seg000: CC86 aggiungere EDI, 10h
seg000:CC8A and di, 0FFF0h seg000: CC8A e di, 0FFF0h
seg000:CC8D mov large ds:89D8h, edi seg000: CC8D grandi mov ds: 89D8h, EDI
seg000:CC95 pop ds seg000: CC95 pop DS
seg000:CC96 assume ds:nothing seg000: CC96 assumere ds: nulla
seg000:CC96 retn seg000: CC96 retn
seg000:CC96 sub_CC80 endp seg000: CC96 sub_CC80 endpIn this case, use UltraEdit to search for next available address from step above (DC89 for 89DC). In questo caso, l'uso UltraEdit di ricerca disponibili per il prossimo passo da affrontare in precedenza (DC89 per 89DC). If nothing is found, this memory address location can be used to put SLIC table. Se non viene trovato, questa posizione l'indirizzo di memoria può essere utilizzata per mettere SLIC tabella. The problem with this memory address allocation is that there is a skip address or space (89D8) between FACS and SLIC tables. Il problema con questo indirizzo di memoria di assegnazione è che vi è un indirizzo o skip spazio (89D8) tra FACS SLIC e tabelle. To fix this issue, add the text string of FACSSLIC instead of just SLIC, as FACS table is small and won’t use too much memory. Per risolvere questo problema, aggiungere la stringa di testo FACSSLIC invece di SLIC, come FACS tavola è piccola e non utilizzare troppa memoria.
- After modification, you will have the ACPI table index string as either RSDT…FACSSLIC or RSDT…FACSFACSSLIC. Dopo la modifica, avrete la tabella ACPI indice stringa come sia RSDT… FACSSLIC o RSDT… FACSFACSSLIC. To accomodate the first instance of string, the whole string can be move forward (to the front) by 4 bytes as mentioned above. Per ospitare il primo esempio di stringa, l'intera stringa può andare avanti (verso la parte anteriore) di 4 byte, come indicato sopra. Otherwise, a new location has to be identified to store the new text string. In caso contrario, una nuova posizione deve essere identificato per memorizzare la nuova stringa di testo. But in the later case where 8 bytes have been added, so we need to find a new location for this longer string. Ma nel caso in cui più tardi 8 byte sono stati aggiunti, per cui dobbiamo trovare una nuova posizione per questa stringa di più. In this example BIOS, there is 11 empty bytes (00) in front of the ACPItables_address (located at CC20). In questo esempio del BIOS, è di 11 byte vuoto (00) davanti alla ACPItables_address (situato a CC20). This empty bytes should be unused, beside, in UltraEdit, there is no code that uses the CC18 or CC1C two address locations. Questo vuoto di byte non utilizzati dovrebbero essere, accanto, in UltraEdit, non vi è alcun codice che utilizza il CC18 o indirizzo CC1C due posizioni. So, the new string can be put forward to location with starting address as CC18. Così, la nuova stringa può essere presentato al percorso con indirizzo iniziale come CC18.
Moving RSDT string forward 8 bytes to accommodate new 8 bytes SLIC table. RSDT stringa si spostano in avanti 8 byte per accogliere nuovi 8 byte SLIC tabella. - Now the anchor address of the RSDT…SLIC string has been moved, and the initial bit address of the string has to be made known to the system. Ora l'ancora l'indirizzo del RSDT… SLIC stringa è stata spostata, e il bit di indirizzo iniziale della stringa deve essere reso noto al sistema. Search in UltraEdit for “20CC” (the original address), you will find it at CCE2 address as found out from step above. Ricerca in UltraEdit per "20CC" (originale), è trovare presso l'indirizzo di CCE2 scoperto dal punto di cui sopra. Change the 20 to 18 to make it “18CC” (address always reverse when indicate) to indicate the new starting address. Cambia da 20 a 18 per renderlo "18CC" (indirizzo sempre invertire quando indicano) per indicare il nuovo indirizzo iniziale.
After changing 20 to 18 to indicate new location address. Dopo aver cambiato da 20 a 18 per indicare l'indirizzo nuova posizione. - Since the RSDT string has been moved, the location of FACS table has also moved too (refer to figures above). RSDT dal momento che la stringa è stata spostata, la posizione del FACS tabella ha altresì spostato troppo (fare riferimento a dati riportati sopra). The original address of FACS table is CC30 while new address is CC28 or CC2C. L'originale indirizzo del FACS tabella è CC30 mentre nuovo indirizzo è CC28 o CC2C. And, in the rest of the code, the address is been used. E, nel resto del codice, l'indirizzo è stato utilizzato. So the address of FACS has to be modified too. Così l'indirizzo del FACS deve essere modificata.
The value for the original address is address of ACPItables_address (CC20) + 10 which equals to CC30. Il valore per l'originale indirizzo è l'indirizzo del ACPItables_address (CC20) + 10 che è uguale a CC30. In UltraEdit, search for 30CC, which should be found at around reference location of CD35. In UltraEdit, ricerca per 30CC, che dovrebbe essere trovato alla località nei pressi di riferimento di CD35. Change the 30CC to 28CC (for CC28) or 2CCC (for CC2C). Cambiare il 30CC a 28CC (per CC28) o 2CCC (per CC2C).
- Next, SLIC table has to be added to the address that is been reserved for it in RSDT tables string in ACPI.BIN. Avanti, SLIC tabella deve essere aggiunto al l'indirizzo che è stato riservato per RSDT in tabelle stringa in ACPI.BIN.
seg000:CD74 seg000: CD74
seg000:CD74 sub_CD74 proc near ; CODE XREF: seg000:CC5Bp seg000: CD74 sub_CD74 proc vicino; CODICE XREF: seg000: CC5Bp
seg000:CD74 push edi seg000: CD74 spingere EDI
seg000:CD76 push esi seg000: CD76 spingere ESI
seg000:CD78 mov esi, 0F0000h seg000: CD78 mov Esi, 0F0000h
seg000:CD7E mov eax, [esi+89C4h]; Fill RSDT address to RSDT Ptr seg000: CD7E mov eax, [ESI +89 C4h]; Compila RSDT indirizzo di RSDT PTR
seg000:CD86 or eax, eax seg000: CD86 o eax, eax
seg000:CD89 jz loc_CE32 seg000: CD89 JZ loc_CE32
seg000:CD8D mov [esi+89C0h], eax ; RSDT Ptr seg000: CD8D mov [ESI +89 C0h], eax; RSDT PTR
seg000:CD95 mov eax, [esi+89CCh]; Fill DSDT address to FACP seg000: CD95 mov eax, [ESI +89 CCh]; Compila DSDT indirizzo FACP
seg000:CD9D or eax, eax seg000: CD9D o eax, eax
seg000:CDA0 jz loc_CE32 seg000: CDA0 JZ loc_CE32
seg000:CDA4 mov edi, [esi+89C8h]; FACP seg000: CDA4 mov edi, [ESI +89 C8h]; FACP
seg000:CDAC mov es:[edi+28h], eax seg000: CDAC mov es: [edi +28 h], eax
seg000:CDB2 mov eax, [esi+89D4h]; Fill FACS address to FACP seg000: CDB2 mov eax, [ESI +89 D4h]; Compila FACS indirizzo FACP
seg000:CDBA or eax, eax seg000: CDBA o eax, eax
seg000:CDBD jz loc_CE32 seg000: CDBD JZ loc_CE32
seg000:CDC1 mov edi, [esi+89C8h] ; FACP seg000: CDC1 mov edi, [ESI +89 C8h]; FACP
seg000:CDC9 mov es:[edi+24h], eax seg000: CDC9 mov es: [edi +24 h], eax
seg000:CDCF mov eax, [esi+89C8h]; Fill FACP address to RSDT+24 seg000: CDCF mov eax, [ESI +89 C8h]; Compila FACP indirizzo di RSDT +24
seg000:CDD7 or eax, eax seg000: CDD7 o eax, eax
seg000:CDDA jz loc_CE32 seg000: CDDA JZ loc_CE32
seg000:CDDE mov edi, [esi+89C4h] ; RSDT seg000: CDDE mov edi, [ESI +89 C4h]; RSDT
seg000:CDE6 mov es:[edi+24h], eax seg000: CDE6 mov es: [edi +24 h], eax
seg000:CDEC cmp byte ptr [bp+1BFh], 7 seg000: CDEC CMP byte ptr [bp +1 BFH], 7
seg000:CDF1 jnz short loc_CDFE seg000: CDF1 jnz breve loc_CDFE
seg000:CDF3 test dword ptr [bp+1C6h], 200h seg000: CDF3 prova dword ptr [bp +1 C6h], 200H
seg000:CDFC jz short loc_CE2F seg000: CDFC jz breve loc_CE2F
seg000:CDFE seg000: CDFE
seg000:CDFE loc_CDFE: ; CODE XREF: sub_CD74+7Dj seg000: CDFE loc_CDFE:; CODICE XREF: +7 Dj sub_CD74
seg000:CDFE test byte ptr [bp+2EBh], 4 seg000: CDFE test byte ptr [bp +2 EBh], 4
seg000:CE03 jz loc_CE2F seg000: CE03 JZ loc_CE2F
seg000:CE07 mov eax, [esi+89D0h] ; Fill ACPI address to RSDT+28 seg000: CE07 mov eax, [ESI +89 D0h]; Compila ACPI indirizzo di RSDT +28
seg000:CE0F or eax, eax seg000: CE0F o eax, eax
seg000:CE12 jz short loc_CE2F seg000: CE12 jz breve loc_CE2F
seg000:CE14 mov edi, [esi+89C4h] seg000: CE14 mov edi, [ESI +89 C4h]
seg000:CE1C mov es:[edi+28h], eax seg000: CE1C mov es: [edi +28 h], eax
seg000:CE22 mov edi, eax seg000: CE22 mov edi, eax
seg000:CE25 push es seg000: CE25 spingere es
seg000:CE26 call sub_B4BB seg000: CE26 chiamata sub_B4BB
seg000:CE29 pop es seg000: CE29 pop es
seg000:CE2A jb short loc_CE2F seg000: CE2A jb breve loc_CE2F
seg000:CE2C call sub_5077 seg000: CE2C chiamata sub_5077From the matching table that matches the ACPI tables to respective memory address made in step above, use it to match against the code above. Dalla tabella di corrispondenza che corrisponde al ACPI rispettive tabelle di indirizzo di memoria apportate nel passaggio sopra, utilizzarlo per partita contro il codice di cui sopra. Here, none of the code representing process to fill the data value of 89DC address to RSDT table, so the following code needs to be added: Qui, nessuno di codice che rappresentano il processo di colmare il valore dei dati di 89DC indirizzo di RSDT tabella, in modo che il seguente codice deve essere aggiunto:
mov eax, [esi+89DCh] ; 8 bytes mov eax, [ESI +89 dch]; 8 byte
mov edi, [esi+89C4h] ;8 bytes mov edi, [ESI +89 C4h]; 8 byte
mov es:[edi+2Ch], eax; 6 bytes, the value of the length of the ACPI tables (SLICaddress which is 2C). mov es: [edi +2 Ch], eax; 6 byte, il valore della lunghezza delle tabelle ACPI (SLICaddress che è 2C).Addition of these code cannot affect the the rest of the functions’ address, so a few not critical code has to be deleted to free up some space. Aggiunta di questo codice non può influire sulla il resto delle funzioni 'indirizzo, in modo non pochi critici codice deve essere soppresso per liberare un po' di spazio.
In the above code, after every mov eax, [esi+????h], it’s followed by the block of code as below: Nel suddetto codice, dopo ogni mov eax, [ESI +???? h], è seguito dal blocco di codice, come qui di seguito:
or eax, eax ; 3 bytes o eax, eax; 3 byte
jz short loc_CE2F ;2 bytes jz breve loc_CE2F; 2 byteThese are verification bits which is precaution method to prevent collapse or fault of system. Questi sono i bit di verifica che è metodo di precauzione per evitare crollo o di guasto del sistema. However, after analysis, there is pair of verification bits that can be removed after reorganization of RSDT table. Tuttavia, dopo analisi, non vi è paio di verifica dei bit che possono essere rimossi dopo la riorganizzazione di RSDT tabella. Thus, remove the data verification parts of RSDT table which is located as below: Quindi, rimuovere i dati di verifica parti di RSDT tabella che si trova, come qui di seguito:
seg000:CDD7 or eax, eax ; 3 bytes seg000: CDD7 o eax, eax; 3 byte
seg000:CDDA jz loc_CE32 ;2 bytes seg000: CDDA jz loc_CE32; 2 byteand e
seg000:CE0F or eax, eax ; 3 bytes seg000: CE0F o eax, eax; 3 byte
seg000:CE12 jz short loc_CE2F ;2 bytes seg000: CE12 jz breve loc_CE2F; 2 byteAfter doing this, only 10 bytes of space is freed up, but the mod requires 22 bytes. Dopo questo modo, solo il 10 byte di spazio è liberato, ma la mod richiede 22 byte. In the code above, whenever it fills up the code for RSDT table, it will execute this command: Nel codice di cui sopra, ogni volta che si riempie il codice per RSDT tabella, verrà eseguito il comando:
mov edi, [esi+89C4h] ; 8 bytes mov edi, [ESI +89 C4h]; 8 byte
But, it does not alter the value of the register or variable when twice it executes the process to fill in the RSDT table. Ma, non modificare il valore di registro o variabile due volte quando si esegue il processo per compilare il RSDT tabella. So this command can be executed only once. Quindi, questo comando può essere eseguito una sola volta. In fact, if the new code is placed here, this command for the new code can be skipped too. Infatti, se il nuovo codice è messo qui, questo comando per il nuovo codice può essere ignorato. With this adjustment, there will be enough blank space been emptied. Con questo adeguamento, non ci sarà abbastanza spazio vuoto stati svuotati. Extra space can then be filled up with blank command (90 and nop). Di spazio può essere riempito con comando vuoto (90 e NOP). The final code will look like this: Il codice finale sarà simile a questa:
seg000:CDCF seg000: CDCF
mov eax, [esi+89C8h]; fill up FACP address to RSDT+24 mov eax, [ESI +89 C8h]; riempire FACP indirizzo di RSDT +24
mov edi, [esi+89C4h] ; RSDT mov edi, [ESI +89 C4h]; RSDT
mov es:[edi+24h], eax mov es: [edi +24 h], eax
mov eax, [esi+89DCh] mov eax, [ESI +89 dch]
mov es:[edi+2Ch], eax mov es: [edi +2 Ch], eax
nop NOP
nop NOP
nop NOP
nop NOP
cmp byte ptr [bp+1BFh], 7 CMP byte ptr [bp +1 BFH], 7
jnz short loc_CDFE jnz breve loc_CDFE
test dword ptr [bp+1C6h], 200h prova dword ptr [bp +1 C6h], 200H
jz short loc_CE2F JZ breve loc_CE2F
test byte ptr [bp+2EBh], 4 test byte ptr [bp +2 EBh], 4
jz loc_CE2F JZ loc_CE2F
mov eax, [esi+89D0h] ; fill up ACPI address to RSDT+28 mov eax, [ESI +89 D0h]; compilare ACPI indirizzo di RSDT +28
seg000:CE22 mov es:[edi+28h], eax the address for this command cannot be changed. seg000: CE22 mov es: [edi +28 h], eax l'indirizzo di questo comando non può essere modificato.The address location of the code that will be deleted and inserted has to be remembered: L'indirizzo di destinazione il codice che verrà soppresso e inserito deve ricordare:
seg000:CDD7 or eax, eax ; 3 bytes seg000: CDD7 o eax, eax; 3 byte
seg000:CDDA jz loc_CE32 ;2 bytes seg000: CDDA jz loc_CE32; 2 byte
5 bytes starting from CDD7 5 byte a partire da CDD7seg000:CE0F or eax, eax ; 3 bytes seg000: CE0F o eax, eax; 3 byte
seg000:CE12 jz short loc_CE2F ;2 bytes seg000: CE12 jz breve loc_CE2F; 2 byte
seg000:CE14 mov edi, [esi+89C4h] seg000: CE14 mov edi, [ESI +89 C4h]
5+8 bytes staring from CE0F 5 +8 bytes staring da CE0Fseg000:CDEC cmp byte ptr [bp+1BFh], 7 seg000: CDEC CMP byte ptr [bp +1 BFH], 7
Original location of CDEC to insert all needed code here Posizione originale del CDEC di inserire tutti i necessari codice qui - The mod process is done, now go back to UltraEdit for last step address modification. Il mod processo è finito, adesso andare a UltraEdit ultimo passo per affrontare la modifica. This step is best done from bottom up to prevent the code below been jumbled when replacing the front part. Questo passo è fatto meglio dal basso verso l'alto per evitare che il codice qui sotto jumbled stato quando si sostituisce la parte anteriore.
Firstly, remove 13 bytes starting from CE0F. In primo luogo, rimuovere 13 byte a partire da CE0F.
Then insert any 4 bytes of random data at the CDEC, then change the value to 4 90 (90h=nop). Quindi inserire qualsiasi 4 byte di dati casuali presso il CDEC, quindi modificare il valore a 4 90 (90h = NOP).
Copy the code at CDE6 to CDEB, and paste it to address starting from CDEC to reflect the command used: mov es:[edi+2Ch], eax Copia il codice a CDE6 a CDEB, e incollarlo per affrontare a partire da CDEC per riflettere il comando usato: mov es: [edi +2 Ch], eax
Copy the code at CDCF to CDD6, and paste it to address starting from CDEC to reflect the command used: mov eax, [esi+89DCh] Copia il codice a CDCF a CDD6, e incollarlo per affrontare a partire da CDEC per riflettere il comando usato: mov eax, [ESI +89 dch]
Lastly, remove 5 bytes starting from CDD7. Infine, rimuovere 5 byte a partire da CDD7. - Save the code. Salvare il codice.
- Verify that the modification of code is correct by using IDA to check if the modified code is correct. Verificare che la modifica del codice è corretto utilizzando IDA per verificare se il codice modificato è corretta. If yes, repack the code into the BIOS file. Se sì, Reimballare la codice nel file del BIOS.
Disclaimer: This article is for informational and educational purpose only. Disclaimer: Questo articolo è per informativo e solo scopo educativo.
IMPORTANT : This is a machine translated page which is provided "as is" without warranty. IMPORTANTE: Questa è una pagina tradotta macchina che è fornito "così com'è" senza alcuna garanzia. Machine translation may be difficult to understand. Traduzione automatica può essere difficile da capire. Please refer to Si prega di fare riferimento a original English article articolo originale inglese whenever possible. quando possibile.
Share and contribute or get technical support and help at Condividere e contribuire o ottenere supporto tecnico e assistenza in My Digital Life Forums La mia vita digitale Forum .
Related Articles Articoli correlati
- SLIC Table (SLIC.BIN or ACPISLIC.BIN) BIOS File for OEMs Download Tabella SLIC (SLIC.BIN o ACPISLIC.BIN) BIOS del file di download per gli OEM
- Windows Vista No Activation OEM ID for Various Manufacturers Windows Vista non attivazione id OEM per i vari produttori
- Download Vista Loader 2.1.2 OEM BIOS Crack Emulator Vista download loader 2.1.2 OEM BIOS crack emulatore
- Best Vista Crack for Activation (Most Reliable Vista Activator) Vista migliori crack per l'attivazione (più affidabili Vista attivatore)
- BIOS with Windows Vista OEM Support (ACPI_SLIC) Invalidate KMS Activation BIOS con Windows Vista OEM Support (ACPI_SLIC) invalidare kms attivazione
- Invalid Key Error While Activate Vista with OEM Emulation or Mod BIOS Flash Non validi chiave errore durante attivare Vista con OEM o mod emulazione del BIOS flash
- Vista OEM Activation Crack: Hack to Modify BootMgr to Activate Vista Vista OEM crack di attivazione: hack per modificare BootMgr per attivare Vista
- Software BIOS Emulation Patch (softmod.iso) to Emulate OEM SLIC of Dell, HP, Lenovo, Sony, Acer and ASUS Emulazione software del BIOS Patch (softmod.iso) per emulare OEM SLIC di Dell, HP, Lenovo, Sony, Acer e ASUS
- Crack to Activate Windows Vista as OEM for Acer Motherboard/BIOS Crack di attivazione di Windows Vista come OEM per Acer Motherboard / BIOS
- Windows Vista OEM Activation Crack (vstaldr) without Modify or Flash BIOS Windows Vista Crack Attivazione OEM (vstaldr) senza modificare o Flash BIOS