Îmi descriu mișcările așa cum am promis să conduc mmtool (

Îmi descriu mișcările așa cum am promis:

Rulez mmtool (v2.22.1). Am scos toate modulele de acolo în fișiere separate. (Extras din meniu - În formă necomprimată, Modul ID Offset și Segment I nu ating). Vă reamintesc că programul este un pic buggy și accidente, așa că am făcut acest lucru atunci când navigarea prin meniuri (am mai mult de 3 schimburi): mmtool Lansat. Am ales "Power MMtool".
Am selectat Load ROM. Apoi am selectat Extract cu mouse-ul. Apoi, selectați mouse-ul dorit din mouse și din meniul Extract din submeniul Extract. Eu descriu acest lucru pentru că eu însumi nu am înțeles încă. că programul îngheață din cauza mișcării meniului. a început să se îndoiască serios de posibilitatea programului.

Dacă cineva este interesat de motivul pentru care l-am ales pe acesta (a doua piesă de cod cu CD-ul găsit 13 și ce valoare primește dl înainte de int 13h întrebați - voi descrie în detaliu). Mi sa părut că acesta este un raționament trivial, așa că am pus-o jos.

Deci, locul unde este citit în memorie se află în memorie.
Începem să editați acest modul (runtime).

Privind prin cap, încercam să găsesc părțile din codul de care aveam nevoie de la FF. A existat un astfel de lucru (deplasare 00000644). Lungimea este de 32 octeți. Nu este suficient, m-am gândit, și a decis să se uite mai atent la piesele consecutive 00, în timp ce nu uita că, în principiu, ar putea fi cu ușurință datele pe care este folosit pentru a inițializa (obnulyaeniya) un fir dintr-o structură de date utilizate pentru BIOS. Aici sunt un pic skhalyavil - ponyadeyavshis pe limba rusă și, probabil, nu se afunda mult zerouri este de a inițializa sau doar spațiu gol. Fluent în proshvyrnuvshis IDAPro am devenit destul de sigur că acele zerouri site-urile pe care le folosesc - locuri goale.

Deci, avem următoarele piese gratuite pentru a ne scrie codul nostru.


00000616: lungimea 90 octeți
00005590: lungime 110 octeți
000057C9: lungimea este de 108 octeți
0000598E: Lungime 44 octeți
000091A7: Lungime 44 octeți

În cursul cazului, încă existau site-uri 000046B0 (mai puțin de 32 de octeți pe care nu le-am inclus - pentru că în principiu am fost suficient)
În plus există încă întinderi suficient de mare de 0 (dar nu am deranjat cu ei din cauza imediata apropiere a datelor de tip string - probabil ele și ar putea fi folosite, dar trebuie să fie sigur și să ia timp pentru o bucată solidă de BIOS urme - chiar IDAPro această activitate nu este foarte inteligent - și urmărirea de rutină BIOS începe uneori foarte obositoare)
Și la sfârșitul runtime-ului există încă o piesă solidă de 20 de ore (aceasta este o martor) pe care ați putea să o utilizați atunci când efectuați o mică modificare a BIOS-ului.

000055B0: cli (curs dur de pe întrerupere, care a putut fi realizată chiar și în BIOS, dar prefer să fie siguri că nimic nu ar trebui să se schimbe registrele în special ss sp)
000055B1: pusha (salvați toate registrele)
000055B2: pushf (păstrați registrul de steaguri)
Apoi, am o risipă foarte risipă de spațiu (am nevoie de un ceas de la BIOS)
Tot codul și mai ales procedura de bază (lucrul cu HDD), nu vă voi oferi un înlocuitor, dar câteva piese de cod pot conduce
000055B3:
mov ax, 09
out 070, al
în al, 071 (luăm ultimele două cifre ale anului)
împinge al
nop (am eliminat această bucată de cod, astfel încât să nu aktivizirovat creativitatea meșterilor locali într-o direcție inutilă)
NOP
pop al
000055D6: sunați 000057E0 (E80702)
nop (6 bucăți)
000055DF: sunați 000057E0 (E8FE01)
000055E2: popf
000055E3: popa
000055E4: împinge 000
000055E6: pop
000055E8: retn

din procedura 000057E0 (există apeluri și se întoarce la restul de 3 secțiuni libere ale blocului). Nu le voi descrie aici, dar în unele forumuri închise cred că aș putea

Vă reamintesc - durata modulului de rulare nu sa schimbat.
Acum introduceți acest modul în fișierul principal BIOS ROM.
Folosiți încă cu atenție mmtool. Apoi am potratl pic de timp încercând să specificați segmentul și abaterea de la locul pe care a fost descifrat de mmtool. Dar apoi am învățat despartire pentru un motiv oarecare, după înlocuire, în punctul meu de schimbare mmtool extragerea modulului în memorie. podnadoblamavshis solide mmtool glyuchnosti din cauza (deși nu neagă munca ea este de a face ei) am o dată nu am avut nici un segment de orice prejudecată, și, în general, totul a mers bine de înlocuire modul și toate punctele de intrare Infa, și așa a rămas aceeași.

Apoi, a luat un broker nativ și a cerut un nou ROM.
Testul este deja de 9 zile. Zborul este normal.
Gluck nu a observat.

Sincer, Victor.

P.S. Nu știu dacă cineva are nevoie de aceste fișiere (de exemplu, runtime), am dat un link la începutul postului unde poate fi descărcat această ROM. Ei bine, cred că mmtool și hiew pot fi găsite dacă arăți. În cazul în care nu puteți găsi deja instrumentul necesar (hiew mmtool), dezabonați-vă la administratorul forumului. Dacă îmi permit să sare, apoi cu ceea ce am experimentat.