Arbetar med Windows-kommandoraden, Debug-programmet och dess användning. Installera felsökningsverktyg för Windows Ladda ner felsökning exe 64 bitar


OllyDbg 2.0 är en debugger på User Space-nivå som har vunnit mycket popularitet bland användare över hela världen. Det finns många plugins skrivna för OllyDbg nu, så det är ett nöje att arbeta med. OllyDbg har bra funktionalitet, vilket gör den lämplig för att lösa olika problem och undersöka koden av vilken komplexitet som helst. Felsökningsgränssnittet är helt anpassningsbart: bakgrund av arbetsfönster, teckensnittsfärg och storlek, markering av vissa monteringsanvisningar och mycket mer.

Viktiga funktioner och funktioner

Gränssnitt:

  • gränssnittet består av fönster med programkod, register, stack och minnesdump. Bakgrunds- och teckensnittsfärgen kan ställas in efter eget tycke. Högst upp på knappen för snabb åtkomst till huvudfunktionerna och de vanligaste funktionerna.

Funktioner:

  • lista över funktioner som används i programmet som debugges;
  • lista över strängvariabler som finns i programmet;
  • en lista med handtag med kontrollelement i programmet som debugges, till exempel: fönster, knappar, kryssrutor (CheckBox), verktygsfält och andra;

Brytpunkter... Det är möjligt att ställa in flera brytpunkter (inklusive samtidigt):

  • för en specifik funktion;
  • till en specifik adress;
  • till Windows-meddelande;
  • att läsa från minnet;
  • att skriva till minnet;
  • för att komma åt minne (läsa och skriva);
  • för en specifik sekvens av kodinstruktioner;

Du kan ange vissa specifika villkor för brytpunkter, till exempel det specifika värdet för det angivna registret och mycket mer. Funktionen att skriva till en loggfil stöds.

Stack:

  • värdena på stacken kommenteras så att du lättare kan förstå funktionsargument.

Spår:

  • när du går igenom koden, före varje instruktion, uppmanar felsökaren det aktuella värdet av minnesadresser på vilka operationer utförs.

Hitta värden i minnet:

  • sök efter ASCII- och Unicode-strängar, såväl som hex-värden stöds.

Kodfönster:

  • programkoden åtföljs av kommentarer, såsom namn på funktioner, deras argument, värden på variabler och mer.

Felsökningsverktyg för Windows - Verktyg för felsökning av koden för Windows-operativsystem. De är en uppsättning fri programvara från Microsoft som är utformad för att felsöka användarläge och kärnlägeskod: applikationer, drivrutiner, tjänster, kärnmoduler. Verktygssatsen innehåller felsökare för konsol- och GUI-lägen, verktyg för att arbeta med symboler, filer, processer och verktyg för att tillhandahålla fjärrfelsökning. Verktygssatsen innehåller verktyg som du kan hitta orsakerna till fel i olika komponenter i systemet. Felsökningsverktyg för Windows från ett visst ögonblick är de inte tillgängliga för nedladdning i form av en fristående distributionskit och ingår i Windows SDK (Windows Software Development Kit). Windows SDK är i sin tur tillgänglig som en del av MSDN-prenumerationsprogrammet eller kan fritt laddas ner som en fristående distribution från msdn.microsoft.com. Enligt utvecklarna finns den senaste och senaste versionen av felsökningsverktyg för Windows i Windows SDK.

Felsökningsverktyg för Windows uppdateras och släpps för allmänheten ganska ofta, och denna process beror inte på utgivningen av operativsystem. Sök därför regelbundet efter nya versioner.

Låt oss nu se vad särskilt felsökningsverktygen för Microsoft Windows tillåter oss:

  • Felsöka lokala applikationer, tjänster (tjänster), drivrutiner och kärna;
  • Felsöka fjärrapplikationer, tjänster (tjänster), drivrutiner och kärna via nätverket;
  • Felsöka program som körs i realtid;
  • Analysera dumpfiler av applikationsminne, kärna och system som helhet;
  • Arbeta med system baserade på x86 / x64 / Itanium-arkitekturer;
  • Felsöka program för användarläge och kärnläge;

Följande versioner av felsökningsverktyg för Windows är tillgängliga: 32-bitars x86, Intel Itanium, 64-bitars x64. Vi behöver två av dem: x86 eller x64.

Det finns flera sätt att installera felsökningsverktyg för Windows, i den här artikeln kommer vi bara att beakta de viktigaste:

  • Installation via webbinstallatören.
  • Installera felsökningsverktyg för Windows från Windows SDK ISO-avbildning.
  • Installera felsökningsverktyg för Windows direkt från dbg_amd64.msi /dbg_x86.msi-paket.

Det är fortfarande oklart vid vilken tidpunkt, varför ska jag installera felsökningsverktygen på min dator? Ofta står du trots allt inför en situation där störningar i arbetsmiljön är extremt oönskade! Dessutom kan installationen av en ny produkt, det vill säga ändringar i register- / systemfilerna, vara helt oacceptabel. Exempel är missionskritiska servrar. Varför tänker utvecklare inte på ett alternativ med bärbara (bärbara) versioner av applikationer som inte kräver installation?
Installationsprocessen för paketet Felsökningsverktyg för Windows har genomgått vissa ändringar från version till version. Låt oss nu hoppa direkt in i installationsprocessen och titta på hur verktygssatsen kan installeras.

Installera felsökningsverktyg för Windows med hjälp av webbinstallatören

Gå till Windows SDK-arkivsidan och hitta ett avsnitt som heter Windows 10 och under artikeln "Windows 10 SDK (10586) och en enhetsemulator med Windows 10 Mobile (Microsoft) (version 10586.11)".

Vi klickar på objektet INSTALLERA SDK... Efter att ha klickat, ladda ner och kör filen sdksetup.exe, som initierar onlineinstallationen av Windows SDK. I det inledande skedet kommer installationsprogrammet att söka efter den senaste versionen av .NET Framework-paketet som är installerat på systemet (för närvarande 4.5). Om paketet saknas kommer installationen att erbjudas och stationen startas om när den är klar. Omedelbart efter omstart, vid användarbehörighet, startar installationsprocessen direkt från Windows SDK.

När du väljer alla komponenter i ett paket utan undantag kan det ofta uppstå fel under installationsprocessen. I det här fallet rekommenderas det att installera komponenterna selektivt, det minsta som krävs.

När installationen av felsökningsverktyg för Windows är klar kommer felsökningsfilerna för denna installationsmetod att vara följande:

  • 64-bitarsversioner: C: \\ Program Files (x86) \\ Windows Kits \\ x.x \\ Debuggers \\ x64
  • 32-bitarsversioner: C: \\ Program Files (x86) \\ Windows Kits \\ x.x \\ Debuggers \\ x86

* där x.x är en specifik version av utvecklingssatsen;
Har du märkt att version 8 och högre, installationsvägarna skiljer sig märkbart från de klassiska för alla tidigare versioner av felsökningsverktygen?

En stor fördel med den här metoden för installation av felsökningsverktyg för Windows är installationen av versioner av felsökningsverktyg för alla arkitekturer samtidigt.

Installera felsökningsverktyg för Windows från Windows SDK ISO-avbild

Denna metod innebär att du installerar felsökningsverktygen för Windows med den fullständiga installationsbilden för Windows SDK (Software Developers Kit). Fram till en viss tid var det möjligt att ladda ner ISO-avbildningen för motsvarande system på Windows SDK Archive-sidan. För närvarande kan du dock få ISO-avbildningen av SDK genom att köra webbinstallationsprogrammet sdksetup.exe och välja objektet Ladda ner Windows Software Development Kit i installationsfönstrets startfönster:

Som det upptäcktes är den tidigare installationsmetoden med webbinstallatören ganska nyckfull och misslyckas ofta. På rena system installeras den utan problem, men på tillräckligt laddade system uppstår många problem. Om du har just ett sådant fall, använd sedan den här metoden.

Följaktligen, på sidan är det nödvändigt att välja det distributionskit som krävs, för mig (och jag tror för många) just nu är det "Windows SDK för Windows 7 och .NET Framework 4" och klicka nedanför på länken "Get en ISO-bild av en DVD-skiva "...

När jag arbetar med webbplatsen msdn.microsoft.com rekommenderar jag dig att använda webbläsaren Internet Explorer, eftersom det har förekommit fall av konkurrerande produkter!

Följaktligen måste du bara välja när det är nödvändigt. Vanligtvis är bitheten i felsökningsverktygen för Windows densamma som systemets bitterhet. Mina system som undersöks är mestadels 64-bitars, så i de flesta fall laddar jag ner bilden för 64-bitarssystemet GRMSDKX_EN_DVD.iso.
Sedan, efter att ha laddat ner bilden, måste vi på något sätt arbeta med den befintliga ISO-bilden. Det traditionella sättet är naturligtvis att spela in en CD, men det här är en ganska lång och ibland kostsam metod. Jag föreslår att du använder gratisverktyg för att skapa virtuella skivenheter i systemet. Personligen föredrar jag att använda DEAMON Tools Lite-programmet för detta ändamål. Någon kan ha andra preferenser, mer direkta eller lätta verktyg, smak och färg, som de säger .. Efter installationen av DAEMON Tools Lite dubbelklickar jag helt enkelt på bildfilen GRMSDKX_EN_DVD.iso och en ny virtuell CD:

Sedan dubbelklickar jag för att aktivera autoladdningen och starta installationen av Windows SDK:

När det är dags att välja komponenter som ska installeras från listan inaktiverar vi absolut alla alternativ utom de som är markerade i skärmdumpen. Detta kommer att hjälpa till att undvika onödiga misstag för oss nu.


Allt är exakt så, på skärmdumpen är två alternativ markerade: "Windows Performance Toolkit" och "Felsökningsverktyg för Windows". Välj båda, för Windows Performance Toolkit kommer definitivt att vara till nytta för ditt arbete! Efter att du har klickat på "Nästa" fortsätter installationen som vanligt. Och i slutet kommer du att se "Installationen är klar".
I slutet av installationen kommer arbetskatalogerna för felsökningsverktygen för Windows att vara följande:

  • För x86-version:
  • För x64-version:

Detta slutför installationen av felsökningsverktyg för Windows.

Installera felsökningsverktyg för Windows via .msi-fil

Vid problem under installationen av felsökningsverktyg för Windows på de två föregående sätten har vi fortfarande en till, den mest pålitliga och tidstestade, som så att säga hjälpte till mer än en gång. En gång före integrationen i Windows SDK fanns felsökningsverktyg för Windows tillgängliga som ett separat .msi-installationsprogram, vilket fortfarande finns nu, men redan i tarmarna i Windows SDK-distributionskit. Eftersom vi redan har en ISO-bild av Windows SDK i våra händer kan vi inte montera den i systemet utan helt enkelt öppna den med den välkända WinRAR-arkiveraren eller någon annan produkt som fungerar med innehållet på ISO-diskar.

När vi har öppnat bilden måste vi gå till "Setup" -katalogen som finns i roten och sedan välja en av katalogerna:

  • Så här installerar du 64-bitarsversionen: \\ Setup \\ WinSDKDebuggingTools_amd64 och packa upp filen dbg_amd64.msi från den här katalogen.
  • Så här installerar du 32-bitarsversionen: \\ Setup \\ WinSDKDebuggingTools och packar upp filen dbg_x86.msi från den här katalogen.

I slutet av installationen kommer arbetskatalogerna för felsökningsverktygen för Windows att vara följande:

  • För x86-version: C: \\ Program Files (x86) \\ Felsökningsverktyg för Windows (x86)
  • För x64-version: C: \\ Program Files \\ Felsökningsverktyg för Windows (x64)

Detta slutför installationen av felsökningsverktyg för Windows.

ytterligare information

Jag vet inte vad det är kopplat till, kanske med min slarv, men efter installationen av felsökningsverktygen för Windows registrerar inte installationsprogrammet sökvägen till katalogen med felsökaren i Path-systemvariabeln. Detta inför vissa begränsningar för att köra olika felsökningsuppgifter direkt från konsolen. Därför, i avsaknad av en väg, skriver jag själv i fönstret Miljövariabler väg till felsökningsverktyg:

  • C: \\ Program Files (x86) \\ Windows Kits \\ 10 \\ Debuggers \\ x86
  • C: \\ Program Files (x86) \\ Windows Kits \\ 10 \\ Debuggers \\ x64

* I ditt fall kan sökvägarna skilja sig både på grund av användningen av ett operativsystem med en annan bithet och på grund av användningen av en annan SDK-version.

Felsökningsverktygen för Windows-paketverktyg kan fungera som bärbara applikationer, bara kopiera katalogen från det fungerande systemet Microsoft Windows Performance Toolkit och använda den som en bärbar version på en produktionsserver. Men glöm inte att ta hänsyn till systemets kapacitet !! Även om du har installerat paketet helt i ett kritiskt system kan du börja arbeta direkt efter installationen, ingen omstart krävs.

Felsökningsverktyg för Windows-komposition

Och nu äntligen presenterar vi kompositionen av felsökningsverktyg för Windows:

Fil Utnämning
adplus.doc Dokumentation för ADPlus-verktyget.
adplus.exe En konsolapplikation som automatiserar cdb-felsökaren för att skapa dumpningar, loggfiler för en eller flera processer.
agestore.exe Ett verktyg för att ta bort föråldrade filer från arkivet som används av symbolservern eller källservern.
breakin.exe Ett verktyg som låter dig skicka en användardefinierad brytkombination till processer, som att trycka på CTRL + C.
cdb.exe Användarläge konsol felsökare.
convertstore.exe Verktyg för att konvertera symboler från två till tre nivåer.
dbengprx.exe Reaper (proxyserver) för fjärrfelsökning.
dbgrpc.exe Ett verktyg för att visa information om status för ett RPC-samtal.
dbgsrv.exe Serverprocess som används för fjärrfelsökning.
dbh.exe Ett verktyg för att visa information om innehållet i en symbolfil.
dumpchk.exe Dump-kontrollverktyg. Ett verktyg för att snabbt kontrollera en dumpfil.
dumpexam.exe Ett verktyg för att analysera en minnesdump. Resultatet visas i% SystemRoot% \\ MEMORY.TXT.
gflags.exe Redaktören för systemets globala flaggor. Verktyget hanterar registernycklar och andra inställningar.
i386kd.exe Inslag för kd. När kallades kd för Windows NT / 2000-baserade system för x86-maskiner? Förmodligen kvar av kompatibilitetsskäl.
ia64kd.exe Inslag för kd. När kallades det kd för Windows NT / 2000-baserade system för ia64-maskiner? Förmodligen kvar av kompatibilitetsskäl.
kd.exe Kärnläge-konsol-felsökare.
kdbgctrl.exe Verktyg för felsökning av kärnor. Verktyg för hantering och konfigurering av kärnfelsökningsanslutning.
kdsrv.exe Anslutningsserver för KD. Verktyget är ett litet program som startar och väntar på fjärranslutningar. kd körs på klienten och ansluter till den servern för fjärrfelsökning. Både servern och klienten måste vara från samma felsökningsverktyg.
kill.exe Verktyg för att avsluta processer.
list.exe Ett verktyg för att visa innehållet i en fil på skärmen. Detta miniatyrverktyg levererades med ett syfte - att visa stora text- eller loggfiler. Det tar lite minnesutrymme när det laddar texten i bitar.
logger.exe En miniatyrfelsökare som bara kan fungera med en process. Verktyget injicerar logexts.dll i processutrymmet, som registrerar alla funktionssamtal och andra åtgärder i det undersökta programmet.
logviewer.exe Ett verktyg för att visa loggar inspelade av logger.exe-felsökaren.
ntsd.exe Microsoft NT Symbolic Debugger (NTSD). Felsökare, identisk med cdb, förutom att den skapar en textruta vid start. Liksom cdb kan ntsd felsöka både konsolapplikationer och grafiska applikationer.
pdbcopy.exe Ett verktyg för att ta bort privata symboler från en symbolfil, kontroll över offentliga symboler som ingår i symbolfilen.
remote.exe Ett verktyg för fjärrfelsökning och fjärrkontroll av alla KD-, CDB- och NTSD-konsolfelsökare. Låter dig fjärrköra alla dessa konsolfelsökare.
rtlist.exe Fjärraktivitetsvisare. Verktyget används för att lista körprocesser genom DbgSrv-serverprocessen.
symchk.exe Verktyg för att ladda ner symboler från en Microsoft-symbolserver och skapa en lokal symbolcache.
symstore.exe Verktyg för att skapa nätverks- eller lokal symbollagring (2-nivå / 3-nivå). En symbolbutik är en specialkatalog på disk som är byggd enligt en viss struktur och innehåller symboler. En struktur av undermappar med namn identiska med namnen på komponenterna skapas i rotkatalogen med symboler. I sin tur innehåller var och en av dessa undermappar kapslade undermappar med speciella namn som erhållits genom hashing av binära filer. Symstore-verktyget skannar komponentmapparna och lägger till nya komponenter i symbolbutiken där någon klient kan hämta dem. Symstore sägs användas för att hämta symboler från en 0-lagers lagring och placera dem i ett 2-lagers / 3-lagers lagring.
tlist.exe Aktivitetsvisare. Ett verktyg för att lista alla pågående processer.
umdh.exe Användarläge dumpheap-verktyg. Verktyg för att analysera heaps (heap) för den valda processen. Låter dig visa olika alternativ för högen.
usbview.exe USB-visare. Ett verktyg för visning av USB-enheter anslutna till datorn.
vmdemux.exe Virtuell maskin demultiplexer. Skapar flera namngivna rör för en enda COM-anslutning. Kanaler används för att felsöka olika komponenter på den virtuella maskinen
windbg.exe Användarläge och kärnläge GUI-felsökare.

Android Debug Bridge (adb) är ett konsolprogram som låter dig felsöka Android-mobila enheter såväl som emulatorer.

Beskrivning

Det här verktyget förenklar installationen och felsökningen av applikationer kraftigt och ger också åtkomst till Unix-skalet. Den senare kan användas för att köra de kommandon som krävs på enheten. Programmet kan bland annat användas för att låsa upp en smartphone med felsökningsläge aktiverat. Det bör dock noteras att Android Debug Bridge stöder alla Android-enheter, förutsatt att den nödvändiga funktionaliteten inte har blockerats av tillverkaren.

Programmet innehåller tre komponenter:

  • Klient. Fungerar på utvecklarens PC, skickar kommandon. För att ringa klienten kan du använda lämpligt kommando i terminalen.
  • Daemon (adbd). Utför kommandon på enheten. Fungerar i bakgrunden på alla enheter.
  • Server. Hanterar kommunikationen mellan klienten och daemon. Fungerar i bakgrunden på utvecklarens dator.

ADB-funktioner:

  • Visa en lista över anslutna och stödda enheter.
  • Visar loggar.
  • Kopiera och överför data och filer mellan enheter.
  • Installera och avinstallera applikationer.
  • Rensa och skriva över datasektionen.
  • Och också mycket mer.

Från vår webbplats kan du ladda ner Android Debug Bridge gratis, utan registrering och SMS.

Skärmdumpar

En drivrutin är i huvudsak en länk mellan operativsystemet, det vill säga programvara och hårdvara, det vill säga fysiska enheter som grafikkort, skrivare, processorer etc. Operativsystemet kan innehålla grundläggande drivrutiner för de mest nödvändiga enheterna - en mus, ett tangentbord, men för allt annat krävs nya drivrutiner.

Hur installerar jag drivrutinen?

1. Det enklaste sättet, om det finns en installationsfil, behöver du bara köra den och följa instruktionerna från installationsprogrammet.
2.Om det inte finns något installatör tillgängligt och endast filer med tilläggen * .inf, * .dll, * .vxt, *. Sys, * .drv. Finns, bör proceduren vara ungefär som följer:

a) Först måste du välja ikonen på skrivbordet ( Min dator) och högerklicka på den, välj ( Egenskaper).

b) Gå nu till fliken ( Utrustning) och trycker på knappen ( Enhetshanteraren).

c) Nu måste du välja den enhet som drivrutinen ska installeras / uppdateras för. Högerklicka på raden med enheten och välj ( Egenskaper), eller så kan du helt enkelt dubbelklicka på den för att gå till önskade inställningar.


d) Gå till fliken ( Förare), välj knappen ( Uppdatera).

e) I dialogrutan som visas väljer du objektet ( Nej, inte den här gången) och gå över ( Ytterligare).

f) Det finns två alternativ i detta skede. Du kan försöka installera drivrutiner i automatiskt läge, sedan kommer operativsystemet själv att försöka hitta drivrutiner som är lämpliga för enheten och installera dem, för detta väljer vi ( Automatisk installation (rekommenderas)), om försöket misslyckas, gå sedan till den andra punkten ( Installera från en viss plats) och välj ( Ytterligare).


g) Det här menyalternativet innebär ett val mellan att söka efter en drivrutin på flyttbart media och alternativet att själv specificera mappen med drivrutinen. Därför, om det finns en skiva med drivrutiner tillgängliga, måste du sätta in skivan i CD-rom och välja alternativet ( Sök på flyttbara media (disketter, CD-skivor ..)) och gå ( Ytterligare).

Om drivrutinen hittas och laddas ner på Internet på egen hand, måste du manuellt ange sökvägen till mappen där installationsdata för drivrutinen finns enligt följande. Välj artikel ( Inkludera följande sökplats:) och gå till ( Översikt), välj nu mappen med drivrutinen från listan och klicka på knappen ( OK). Nu går vi djärvt över ( Ytterligare), om allt är gjort korrekt, kommer installationen av den drivrutin som krävs.

Debug.exe - ett felsökningsprogram som används för att kontrollera och felsöka körbara filer.

Används under operativsystemet MS-DOS ... För senare versioner av operativsystem

fungerar genom emulator MS-DOS och har begränsad kapacitet. Kallas via kommandotidslinjen

DEBUG [[enhet:] [rutt] filnamn [alternativ]].

Till exempel: DEBUG C: \\ ... \\ My.com

Detta program är ett konsolprogram och är utformat för att skapa eller modifiera filkoden. Med den kan du skapa enkla applikationer för MS-DOS och spåra deras arbete. Denna felsökare är på den lägsta kompilatornivån assemblerare... Men det har bra funktioner, som att visa och ändra minne, få status för register.

Debug.exe-kommandon

Debug.exe kommandoset regler:

· Debug.exe är inte skiftlägeskänsligt.

· Mellanslag i kommandon används endast för att separera parametrar.

· De angivna siffrorna måste vara hexadecimala och utan den efterföljande bokstaven h.

· Segmentet och offset skrivs med ett kolon, i formatet segment: offset, till exempel CS: 3C1 (offset 3C1h i kodsegmentet) eller 40:17 (offset 17h i det segment vars startadress är 40h).

Efter laddning av felsökaren visas en bindestreckprompt på skärmen. Register CS, DS, ES, SS i detta ögonblick initialiseras de med adressen för 256-byte-prefixet för programsegmentet, och arbetsområdet i minnet börjar från adressen för detta prefix + 100h. Kommandon debug.exe anges omedelbart efter uppmaningen på platsen markerad med markören. Varje kommando består av en identifierare och parametrar, identifieraren består av en bokstav.

Tabell 1. Sammanfattning av alla kommandon debug.exe

Team Beskrivning Formatera
A (montera) Översätta monteringsanvisningar till maskinkod; standardadressen är CS: 0100h. A [<адрес_начала_кода>]
C (Jämför) Jämförelse av innehållet i två minnesområden; standard är DS. Kommandot anger antingen längden på segmenten eller adressintervallet. C<начальный_адрес_1> L<длина> <начальный_адрес_2> C<начальный_адрес_1> <конечный_адрес_1> <начальный_адрес_2>
D (Display / Dump) Visar innehållet i ett minnesområde i hexadecimalt och ASCII-format. Standard är DS; du kan ange en längd eller ett intervall. D [<начальный_адрес> ] D [startadress slutadress]
E (Enter) Mata in data eller instruktioner för maskinkod i minnet; standard är DS. E [<адрес> [<инструкции/данные>]]
F (Fyll) Fyllning av minnesområdet med data från listan; standard är DS. Både längd och intervall kan användas. F<начальный_адрес_1> L<длина> "<данные>"F<начальный_адрес> <конечный_адрес> "<данные>"
G (Go) Utförande av ett felsökat maskinspråkprogram upp till en specificerad brytpunkt; standard är CS. Se till att IP-adressen innehåller rätt adress när du gör det. G [\u003d<начальный_адрес>] <адрес_останова> [<адрес_останова> ...]
H (Hexadecimal) Beräknar summan och skillnaden för två hexadecimala värden. H<величина_1> <величина_2>
I (Input) Läser och matar ut en byte från porten. Jag<адрес_порта>
L (belastning) Ladda en fil eller data från disksektorer till minnet; standard är CS: 100h. Filen kan anges med N-kommandot eller ett argument när debug.exe körs. L [<адрес_в_памяти_для_загрузки>] L [<адрес_в_памяти_для_загрузки> [<номер_диска> <начальный_сектор> <количество_секторов>]]
M (flytta) Kopiera innehållet i minnesceller; standard är DS. Både längd och intervall kan anges. M<начальный_адрес> L<длина> <адрес_назначения> M<начальный_адрес> <конечный_адрес> <адрес_назначения>
N (namn) Ange ett filnamn för kommandona L och W. N<имя_файла>
O (utgång) Skicka en byte till hamnen. O<адрес_порта> <байт>
P (Fortsätt) Utför CALL, LOOP, INT eller ett upprepat stränguttal med REPnn-prefix, och fortsätt till nästa uttalande. P [\u003d<адрес_начала>] [<количество_инструкций>]
Q (Avsluta) Avstängning debug.exe. F
R (Registrera) Skicka ut innehållet i registren och nästa instruktion. R<имя_регистра>
S (Sök) Sök i minnet efter symboler från listan; standard är DS. Både längd och intervall kan anges. S<начальный_адрес> L<длина> "<данные>"S<начальный_адрес> <конечный_адрес> "<данные>"
T (Spåra) Steg-för-steg-körning av programmet. Som med P-kommandot är standard CS: IP-paret. Observera att det är bäst att använda kommandot P för att utföra avbrott. T [\u003d<адрес_начала>] [<количество_выполняемых_команд>]
U (Demontera) Demontering av maskinkod; standard är CS: IP-par. Tyvärr demonterar inte debug.exe korrekt specifika instruktioner för 80286+ processorer, även om de fortfarande körs korrekt. U [<начальный_адрес>] U [<начальный_адрес конечный_адрес>]
W (Skriv) Skriva en fil från debug.exe; Det är absolut nödvändigt att ange filnamnet med N-kommandot, om det inte har laddats. Och program skrivs bara som .COM-filer! W [<адрес> [<номер_диска> <начальный_сектор> <количество_секторов>]]


Visa minnesområden

Låt oss överväga teamets arbete i detalj D, som låter dig visa innehållet i enskilda minnesområden. Detta exempel använder kommandot D för att visa minnesområdet från 0159: 0240:

Här, för en begäran om att visa ett minnesområde, fick vi åtta rader, som indikerar innehållet i det valda minnesområdet. Varje rad har tre delar:

Adressen till den första byten som visas från vänster i formatet segment: offset.

· Hexadecimal representation av stycket (16 byte), med början vid den byte som anges i början av raden.

· Tecken av samma stycke i ASCII-format.

Adressen som anges i raden refererar uteslutande till den första byten i stycket, och adresserna till de efterföljande byten måste beräknas oberoende. Den hexadecimala representationen innehåller två tecken per byte, och själva byten är åtskilda av mellanslag för enkel läsning. Dessutom bör det noteras att den åttonde och nionde byten separeras av ett bindestreck, vilket delar stycket i två och gör det lättare att beräkna adresserna till byten i stycket.

D Team Tricks

Kontrollerar parallella och seriella portar

De första 16 bytes i BIOS-dataområdet innehåller adresserna till parallella och seriella portar. Därför kan du använda följande kommando för att kontrollera dessa portar:

De första åtta byten som skrivs ut anger seriella portadresser COM1-COM4... Nästa 8 byte anger de parallella portadresserna LPT1-LPT4... Till exempel, om din dator har en parallellport, kommer de första två byten troligen att vara: 7803. Portadressen skrivs i omvänd ordning; 0378.

Utrustningskontroll

De två första byten, som finns i BIOS-adressen 410h, innehåller information om hårdvaran som är installerad i systemet. Vi hittar dessa byte med kommandot:

Låt oss anta att de två första byten är 23 44. Låt oss dekryptera dessa byte för att få information om installerade enheter. För att göra detta kommer vi att omvända dessa byte (44 23) och sedan översätta dem till ett binärt talsystem. Vi får:

Bitvärde
Bitposition

Vad betyder dessa bitar? Vi fortsätter att dechiffrera:

Kontrollerar tangentbordets registerstatus

Inom datafältet BIOS av adressen 417h den första byten finns, som lagrar tangentbordsregistrets tillstånd. Stäng av Num lock och Caps Lock, sedan skriver vi kommandot:

Den första byten är 00. Inklusive Num lock och Caps Lock, kör kommandot igen. Nu ska den första byten vara lika med 60. Num lock den första byten är 20, och när Caps Lock - 40.

Kontrollerar videosystemets status

Av adressen 449h i BIOS det första videodataområdet finns. För att kontrollera skriver vi:

Den första byten visar det aktuella videoläget (till exempel 03 är färg) och det andra är antalet kolumner (till exempel 50 är ett läge med 80 kolumner). Antalet rader finns på 484h (40:84).

Kontrollerar BIOS-copyright och serienummer

Upphovsrättsinformation för BIOS inbäddad i ROM BIOS av adressen FE00: 0... Upphovsrättssträngen kan lätt hittas i ASCII-sekvens och serienumret finns i hexadecimalt format. Upphovsrättsraden kan dock vara lång och inte passa in i utmatningsminnet. I det här fallet behöver du bara ange igen D.

Kontroll av BIOS-produktionsdatum

Detta datum registreras också i ROM BIOS från adress FFFF: 5... Efter att ha utfört motsvarande kommando kommer ASCII-sekvensen att innehålla detta datum skrivet i formatet mm / dd / åå.

Ange programmet direkt i minnet med debug.exe

debug.exe låter dig skriva in ett program direkt i maskinens minne och sedan övervaka och kontrollera dess körning. Vi kommer att ange programmet i maskinkoder med kommandot E... Var i detta fall vaksam - att ange felaktiga uppgifter till fel adress är fylld med oförutsägbara konsekvenser! Även om detta osannolikt leder till allvarliga problem i systemet kommer det att förlora all inmatad data debug.exekan du enkelt. Programmet som ska matas in använder de data som lagras direkt i instruktionerna. Följande är en lista över ett program i Assembler, kommentarerna indikerar analoger till språkkommandon i maskinkoder, samt en förklaring av varje kommando. Observera att det inte finns någon symbol i siffrorna heftersom, som nämnts ovan, debug.exe förstår bara hexadecimala tal.

MOV AX, 0123; kod B82301: ange värdet 0123h i AX

LÄGG TILL AX, 0025; kod 052500: lägg till 0225h till värdet på AX

MOV BX, AX; kod 8BD8: ange värdet för AX i BX

LÄGG TILL BX, AX; kod 03D8: lägg till värdet för AX till BX

MOV CX, BX; kod 8BCB: ange värdet på BX i CX

SUB CX, AX; kod 2BC8: subtrahera värdet på AX från CX

SUB AX, AX; kod 2BC0: rensa AX

JMP 100; EBEE-kod: gå till början av programmet

Som du kan se är varje maskininstruktion 1 till 3 byte lång. Den första byten indikerar operationen, de efterföljande indikerar dess operander. Programmets genomförande startar från den första instruktionen och går sekventiellt igenom alla instruktioner efter varandra. Programmet kan nu läggas in i minnet. Dela upp maskinkoden i tre delar om sex byte och ange var och en med kommandot E och från adressen CS: 100.

Nu när programmet finns i minnet, låt oss försöka kontrollera dess körning. Låt oss först kontrollera det aktuella tillståndet för register och flaggor, för detta anger vi kommandot R... Felsökaren skriver ut registrets innehåll i hexadecimal form. Registrets innehåll kan skilja sig åt på olika maskiner.

Så som du kan se debug.exe initialiserade segment DS, ES, SS, CS samma adress. Registrera IP innehåller 0100 , vilket indikerar att instruktioner utförs vid förskjutning 100 timmar relativt CS (och vi, ange instruktioner i minnet, angav bara denna adress).

Värdena för överflöd, riktning, avbrott, tecken, noll, ytterligare bär, paritet och bär flaggor anges också här:

Efter registren och flaggornas tillstånd skriver debug.exe information om den första instruktionen som ska utföras:

· Instruktionens adress, i vårt fall är den 0B12: 0100, där 0B12 är adressen för kodsegmentet.

· Maskinkod enligt denna bruksanvisning (B82301).

· Den faktiska instruktionen skriven i samlare (MOV AX, 0123).

Nu, efter att ha analyserat innehållet i registren och flaggorna, går vi vidare till att köra programmet. Vi kör programmet steg för steg med kommandot T... Första gången du använder kommandot T, följer vi instruktionerna MOV... Här operatörens maskinkod - 2301 ... Operationsplatser 23 i AL (yngre hälften YXA) och 01 - i AH (äldre). Efter det debug.exe skriver ut information om register igen:

Nu YXA innehåller 0123h, IP0103h (därav längden på det utförda uttalandet: 0103h - 0100h = 3 och nästa instruktion är operationen LÄGG TILL... Så, kör om och om igen kommandot T, vi kommer till den senaste instruktionen JMP 100... Det kommer att ställa in registret IP i 100 timmaroch debug.exe återgår till början av programmet. Återgå till början av programmet bör det noteras att i DS, ES, SS och CS innehåller samma adress. Faktum är att debug.exe betraktar inskrivna program enbart som program .COM... Och i program .COM, Till skillnad från .EXE, stack, kod och data lagras i ett segment.

Montering och demontering

I det föregående exemplet skrev vi in \u200b\u200bprogrammet i maskinkoder, dock debug.exe ganska kapabel att förstå instruktioner skrivna i samlare. Att arbeta med sådana program i debug.exe kommandon används A och U.

Team A begär monteringsinstruktioner och konverterar dem till maskinkod. Först initialiserar vi startadressen för att ange instruktioner (100h):

Felsökaren skriver ut adressen till kodsegmentet och förskjutningen (till exempel 13F2: 0100). Nu måste vi ange följande monteringsanvisningar i minnet efter varje rad genom att trycka på Stiga på:

När du har angett den senaste instruktionen, tryck på Stiga på två gånger för att indikera för felsökaren att vi har skrivit in programmet. Nu kan programmet köras med kommandona R för att visa register och T för spårning. Jag noterar att i mina program, om det finns instruktioner INT de ska inte behandlas med ett kommando Toch kommandot Psom hanterar hela avbrottet på en gång.

Låt oss gå vidare till demonteringsproceduren och ta programmet som just introducerats som ett exempel. Vi använder adresserna till den första och sista instruktionen för att ange det intervall som vi ska ta isär, dvs. 100 timmar och 107h.

Efter att ha kört det här kommandot debug.exe kommer att skriva ut instruktioner som ligger inom det angivna intervallet, i monteraren, i maskinkoder, samt adressen till varje instruktion:

Spara ett program på hårddisken

Filnamnet ges först:

Sedan in i registret SH det är nödvändigt att sätta storleken på programmet i byte. Det kommer att vara lika med skillnaden mellan slut- och startförskjutningar. Nu återstår bara att skriva till disk med kommandot W och som ett resultat, se det skrivna antalet byte. Som ett resultat får vi ett program som är klart för körning.

Utgången utförs av kommandot q... Exempel:

0B3B: 0100 mov yxa, 1234

0B3B: 0103 mov ah, 4c

0B3B: 0105 int 21

0B3B: 0100 B83412 MOV AX, 1234

0B3B: 0103 B44C MOV AH, 4C

0B3B: 0105 CD21 INT 21

AX \u003d 0000 BX \u003d 0000 CX \u003d 0007 DX \u003d 0000 SP \u003d FFEE BP \u003d 0000 SI \u003d 0000 DI \u003d 0000

DS \u003d 0B3B ES \u003d 0B3B SS \u003d 0B3B CS \u003d 0B3B IP \u003d 0100 NV UPP EI PL NZ NA PO NC

0B3B: 0100 B83412 MOV AX, 1234

Skriv 00007 byte

För att slutföra det här labbet behöver du flera kommandokommandon:

MOV AH,<шестнадцатиричное число> - skriva till registret AH tal 02 för att indikera en systemfunktion - visa en symbol på skärmen;

MOV DL,<шестнадцатиричное число> - skriva till registret DL teckenkod;

INT 21 - huvud DOS-avbrottet (procedur), som implementerar många olika funktioner; funktionsnumret är förskrivet i AH-registret; för att skriva ut ett tecken på skärmen - i AH-registerfunktionen 02 medan du är i DL spela in symbolkoden.

INT 20 är ett DOS-avbrott som avslutar programmet (från .COM-programmet).

Exempel:

Visa tecknet "*" på skärmen.

mov AH, 02; systemfunktion 02 - visar ett tecken på skärmen

mov DL, 2A; ASCII-asterisk

int 21h; avbryt för utgång "*"

int 20h; avsluta programmet

Praktisk uppgift

ändamål

Bekant med debugger debug.exe. Att få praktiska färdigheter i att arbeta med detta program.

Utrustning:

Persondator som kör Windows operativsystem.

Programvara:

Felsöka.

Frågor för antagning

1. Vad är felsökning för?

2. Hur startar jag det här programmet?

3. Hur skrivs kommandon i Debug?

4. Vad är en identifierare?

5. Hur skrivs programmet in i Debug?

Uppgiften

· Studera teoretiskt material.

· Utför kommandona som beskrivs under vägen.

· Hitta summan och skillnaden mellan två siffror: det första numret är numret i gruppen (omvandlat till hexadecimal form), det andra är numret motsatt numret på den första bokstaven i efternamnet i alfabetet (negativt nummer i kompletterande kod). Konvertera summan och skillnaden till decimal.

· Visa innehållet i mikroprocessorregister och flaggor och skriv ner dem till protokollet. Vilken funktion har vart och ett av registren? ...

· Skriv i registret AX det första numret (från uppgift 3) och i registret BX - det andra (från uppgift 3). Ange maskininstruktionen för att lägga till AX- och BX-registren i huvudminnet vid kodsegmentet (offset 100). Visa dess monteringsformulär på skärmen. Kör det här kommandot, konvertera resultatet till decimalform.

· Skriv in en uppsättning samlarkommandon för att skriva ut ett tecken på skärmen - den första bokstaven i ditt efternamn i kodsegmentet (offset 100). Kontrollera programmet i DEBUG. Bränn den sedan till disk som en .COM-fil. Hur stor är programmet? Kör det från DOS.

· Beskriv alla åtgärder i rapporten.

1. Verkets titel.

2. Syftet med arbetet.

3. Enheter och utrustning.

4. Kort teoretisk information.

5. Beskrivning av de åtgärder som vidtagits.

6. Texten till det skapade programmet.

7. Slutsatser.

testfrågor

1. Vilket kommando utför inmatning i minnet av data eller instruktioner om maskinkod?

2. Hur jämför du innehållet i två minnesområden?

3. Hur fyller jag minnesområdet med data från listan?

4. Vilket kommando kör det felsökade maskinspråkprogrammet?

5. Vilket kommando skriver filen från Debug?

6. Hur utförs montering och demontering?







2021 gtavrl.ru.