[ - Intro - Explications - Tutoriaux - Liens - Notes de fin - ] |
[ - L'outil expliqué - ] |
1 - On installe Softice
2 - On configure Softice
Bon, pendant l'installation, c'est pas dur, on suit pas-à-pas l'installation.
Dans un premier temps, il s'agit de la carte graphique.
Là, il suffit de choisir
le nom du fabricant de la carte graphique, puis de choisir le modèle
de la liste... On clique sur le bouton "Test" pour voir la réaction...et
on continue.
Si votre carte n'est pas
mentionnée, testez avec un autre modèle du fabricant ou en
désespoir de cause, cocher standard VGA... puis testez. Si ça
ne marche toujours pas, il vous reste chercher sur des forums dédiés
ou la doc, s'il n'existe pas un Driver spécifique.
Passons à l'autre étape : la Souris.
Pour le standard, il faut choisir PS/2 compatible et si votre souris possède une molette, choisissez la case "Microsoft IntelliMouse".
Voilà, c'est fini...
vous pouvez redémarrez.
Si ça marche pas
dans la suite, vous pourrez revenir sur la configuration souris/carte graphique
par le menu Démarrer.
2 / On configure Softice
La première chose
est de voir si Softice répond bien à notre appel et qu'il
ne déconne pas.
Un petit "Ctrl D" et hop,
si l'interface apparait s'est déjà un bon signe. Attender
quelques secondes puis taper n'importe quoi et "entrée".
Si tout plante ou se fige,
il y a de grandes chances pour que la configuration de la carte graphique
soit en cause, donc relancer la bécane et trouver la config. qui
va bien.
Si tout va bien, taper "F5"
pour revenir sous Windows.
****************************************Choisir
d'avoir Softice ou non****************************************
La première chose
est de permettre d'avoir le choix de lancer S.I au démarrage de
Windows.
En effet, il existe des
softs qui ne supportent pas la présence du débugger. ( On
a des parades toutefois avec certains outils, Frogsice, Bang...)
Donc, on va introduire le
script suivant ( merci à son auteur dont je n'ai plus le nom ) dans
l'autoexec.bat.
Pour les utilisateurs de
Windows ME, allez regarder sur Protools
pour obtenir le Loader.
@echo
echo
1:Ne Pas Charger SoftIce
echo
2:Charger SoftIce
C:\WINDOWS\COMMAND\choice
/C:12 /T1,8 Choix?
if
errorlevel 2 goto Charger
echo
SoftIce non charge !
goto
fin
:Charger
C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE
:fin
Pour le path de WINICE.EXE,
vous devez impérativement respecter les 8 caractères maximum
des noms de répertoire, comme pour le DOS.
Au prochaine lancement de
Windows, on aura le choix d'avoir Softice ( touche "1" ) ou non ( touche
"2" ).
Si aucun choix n'a été
fait au bout de 8 secondes, S.I n'est pas lancé.
Dans le répertoire
de Softice, on a un fichier qu'il faut configurer : WINICE.DAT.
Editer le avec le notepad.
Vous avez du texte dont certaines lignes doivent être changées.
PENTIUM=ON
<= si votre processeur est un pentium et OFF si autre...
.....................
PHYSMB=64
<= mettez la valeur de votre RAM. ( 32 , 48, 64, 128 M)
SYM=1024
<= mets 1 Méga pour les symboles du code.
HST=256
<= mets un buffer de 256 Ko pour l'historique.
.....................
INIT="X;"
<= définit ce que l'interface de S.I va afficher.
Voici les différentes instructions que l'on peut ajouter à cet INIT.
WD 20 : édite en hexadécimal
les adresses mémoire sur une hauteur de 20 lignes.
WC 35 : montre le code en
assembleur que l'on trace sur une hauteur de 35 lignes.
FAULTS OFF : S.I apparait
ou non si apparition d'une "General Protection Faults" ; exemple qd windows
plante.
I3HERE OFF : pour éviter
de voir S.I apparaitre si l'interruption 3h est utilisée par un
autre débugger. ( Builders... )
CODE ON : pour voir dans
le code, l'équivalence instruction ASM et opcodes en hexadécimal.
LINES 70 : définit
70 lignes de hauteur pour l'interface
X : pour permettre à
Windows de récuperer la main
ALTSCR OFF : Faire apparaitre
les outputs de S.I dans un autre écran.
Vous trouverez beaucoup d' INIT différents.
On a ensuite la définition des touches de fonctions de S.I. ( A ne pas modifier, on va voir dans la suite leurs utilités )
F1="h;"
F2="^wr;"
F3="^src;"
F4="^rs;"
F5="^x;"
F6="^ec;"
F7="^here;"
F8="^t;"
F9="^bpx;"
F10="^p;"
F11="^G
@SS:ESP;"
F12="^p
ret;"
Puis , on a une partie que
l'on peut "customiser" pour son propre usage.
Voici la syntaxe que j'utilise.
Les instructions seront expliquées plus loin.
"CFx" = la combinaison de
la touche Contrôle et d'une touche de fonction Fx (F1, F2,... )
"^d eax;" = instruction
"display eax : d eax"
Donc en appuyant sur "Ctrl
F1", on demande à S.I de nous pointer sur l'adresse contenue dans
eax.
"AFx" = "
" "
" " ALT
" " "
" "
" "
"^? eax;" = instruction
"evaluate eax : ? eax"
De même en appuyant
sur "Alt F1", on demande à S.I de nous afficher la valeur contenue
dans eax.
Ce qui nous donne...
CF1="^d
eax;"
CF2="^d
ebx;"
CF3="^d
ecx;"
CF4="^d
edx;"
CF5="^d
esi;"
CF6="^d
edi;"
AF1="^?
eax;"
AF2="^?
ebx;"
AF3="^?
ecx;"
AF4="^?
edx;"
AF5="^?
esi;"
AF6="^?
edi;"
Ces combinaisons sont assez
utiles pour connaitre rapidement le contenu et vers quoi pointe un registre.
Idéal pour le "serial
fishing" et autre...
On continue dans notre winice.dat
; Change
the path to the appropriate drive and directory
;LOAD=c:\windows\system\user.exe
;LOAD=c:\windows\system\gdi.exe
;LOAD=c:\windows\system\krnl386.exe
;LOAD=c:\windows\system\mmsystem.dll
;LOAD=c:\windows\system\win386.exe
;
***** Examples of export symbols that can be included *****
;
Change the path to the appropriate drive and directory
;EXP=c:\windows\system\vga.drv
;EXP=c:\windows\system\vga.3gr
;EXP=c:\windows\system\sound.drv
;EXP=c:\windows\system\mouse.drv
;EXP=c:\windows\system\netware.drv
;EXP=c:\windows\system\system.drv
;EXP=c:\windows\system\keyboard.drv
;EXP=c:\windows\system\toolhelp.dll
;EXP=c:\windows\system\shell.dll
;EXP=c:\windows\system\commdlg.dll
;EXP=c:\windows\system\olesvr.dll
;EXP=c:\windows\system\olecli.dll
;EXP=c:\windows\system\mmsystem.dll
;EXP=c:\windows\system\winoldap.mod
;EXP=c:\windows\progman.exe
;EXP=c:\windows\drwatson.exe
On ne change rien. Passons
à la suite.
;EXP=c:\windows\system\kernel32.dll
;EXP=c:\windows\system\user32.dll ;EXP=c:\windows\system\gdi32.dll ;EXP=c:\windows\system\comdlg32.dll ;EXP=c:\windows\system\shell32.dll ;EXP=c:\windows\system\advapi32.dll ;EXP=c:\windows\system\shell232.dll ;EXP=c:\windows\system\comctl32.dll => ;EXP=c:\windows\system\crtdll.dll ;EXP=c:\windows\system\version.dll ;EXP=c:\windows\system\netlib32.dll ;EXP=c:\windows\system\msshrui.dll ;EXP=c:\windows\system\msnet32.dll ;EXP=c:\windows\system\mspwl32.dll ;EXP=c:\windows\system\mpr.dll |
EXP=c:\windows\system\kernel32.dll
EXP=c:\windows\system\user32.dll EXP=c:\windows\system\gdi32.dll EXP=c:\windows\system\comdlg32.dll EXP=c:\windows\system\shell32.dll EXP=c:\windows\system\advapi32.dll EXP=c:\windows\system\shell232.dll EXP=c:\windows\system\comctl32.dll EXP=c:\windows\system\crtdll.dll EXP=c:\windows\system\version.dll EXP=c:\windows\system\netlib32.dll EXP=c:\windows\system\msshrui.dll EXP=c:\windows\system\msnet32.dll EXP=c:\windows\system\mspwl32.dll EXP=c:\windows\system\mpr.dll |
On ne les laisse pas en commentaires
car Softice doit pouvoir charger des routines dans ces DLL.
De plus, il existe d'autres
DLL dont nous avons besoin, notamment dans les progs Visual Basic.
Voici d'autes DLL à rajouter à cette liste :
EXP=C:\windows\system\msvbvm50.dll
EXP=C:\windows\system\msvcrt40.dll
Voilà, on en a fini
avec le winice.dat.