Soft-Ice version 2.0 - Part One by CyberBobJr - 07/03/1998
Voilà une tache hardue ! vous expliquer comment fonctionne Soft-Ice sans aucunes docs officielles ;) , on va y aller douçement et par le début, si vous lisez quelque chose de faux, faites moi le savoir par un email.
Sommaire
5.1 Bpx : Breakpoint on execution
5.2 Bpm : Breakpoint on memory
5.3 Bpr : Breakpoint on memory range
5.4 BPio : Breakpoint on i/o port
5.5 BPint : Breakpoint on Interruption
5.6 BMsg : Breakpoint on windows message
Soft-Ice est un debugger, il se
charge bien avant Windows, c'est à dire qu'il prend en charge le
code, bref c'est ler kernel du kernel, vous pouvez à tout moment
basculer sous Soft-Ice et ainsi suivre un process en cours ...
Soft-Ice n'est pas le seul debugger du marché, mais il a
l'avantage de prend la main avant le windows, ce qui fait de lui
le contrôleur principal du système.
Ne vous attendez pas à avoir une belle interface graphique à la
Windoz, si la vue des caractères systèmes vous donne des
boutons, passez votre chemin, ces pages ne sont pas pour vous...
Sous Soft-Ice tout est en mode texte, je vous rassure ce n'est
pas du debug mais certaines notions d'assembleurs et de
fonctionnement des registres sont indispensables.
Vous pouvez trouver Soft-Ice
dans de nombreuses pages on the Oueb, je n'ai ni le temps, ni
l'envie d'uploader des centaines de Ko de fichiers sur ma page,
on verra ça lorsque l'Isdn ou l'Adsl se seront généralisé,
c'est à dire jamais tant que FT sera au pouvoir, bref ...
La procédure d'installation est simple, vous double-cliquez sur Setup
et le programme s'installera tout seul dans un répertoire nommé
Siw95, il plaçera également dans la barre des
programmes un zoli icone : le loader, une fois tous les fichiers
copiés, il est très important de configuer Soft-Ice pour votre
carte vidéo, sinon vous zaurez droit à un bel écran noir lors
du basculement sous le debugger, pour çela rien de plus simple,
il suffit de cliquer sur Soft-Ice driver setup,
une fois la procédure réalisé il vous suffit de relancer la
machine, et c'est parti ! au chargement vous verrez Soft-Ice se
charger ...
Petite précision, il est important de configurer Soft-Ice à ses
goûts, et Soft-Ice dispose d'un fichier de configuration qui
s'appelle Winice.dat, il se trouve dans le
répertoire Siw95 ...
Winice.dat renferme toute la configuration des
touches macros, ne les modifiez pas, elles sont très pratiques
et très souvent, dans les cours de cracks on nomme ces touches,
elles sont devenues des "standarts" en cracking, ce que
vous pourrez modifier c'est dans cette partie :
INIT = "X;"
Rajouter
la commande suivante Code on, se qui vous
permettra de voir directement le code en hexa des instructions
que vous desassemblez :
INIT = "CODE
ON;X;"
Une
chose importante, le chargement des symbols,
c'est à dire le chargement des modules dll qui
permettront à Soft-Ice de savoir à quoi correspond un hmemcpy
ou un llseek, vous pouvez decommenter (en
supprimant le ;) les lignes concernant les symboles pour win95
(chicago pour la version 2.00 de Soft-Ice), ce qui permettra de
poser des breakpoints sur les fonctions incluses dans ces
librairies.
Notez que vous pouvez charger n'importe quelle Dll incluse avec
un programme quelconque (cf cours sur Laplink).
Voilà, c'est tout en ce qui concerne l'installation de Soft-Ice,
nous allons maintenant aborder la procédure à suivre pour le
lancement d'un programme à debugger.
Pour
debugger un programme sous Soft-Ice, il faut le lancer par le
loader, pour cela vous lancez le Loader et vous indiquez le
fichier executable dans la zone prévue à cette effet, puis vous
cliquez sur Load, si vous n'avez pas compris ca, je ne peux plus
rien pour vous ... Au revoir ... non j'déconne, si vous ne
comprenez pas ca, changez de processeur et faites vous en greffez
un dans le cerveau, ou changez de système d'exploitation,
rajoutez des modules mémoires ou changez de tête, essayez le
ping-pong ou la broderie ;)
Dans la série détails très cons : si le bouton load est grisé
c'est que winice.exe n'a pas été lancé dans
l'autoexec.bat ... ou encore c'est que vous n'avez pas rebooté
votre machine après l'installation, si c'est le cas, voyez
quelques lignes plus haut ;)
X
ou Ctrl-D ou F11 : execution du
programme
? : Help (très important)
T : trace pas à pas - c'est à
dire execute le programme ligne par ligne, de ce fait on rentre
dans les fonctions, les interruptions, les apis ... pour cela, le
programme utilise l'interruption matérielle 01
qui lui permet de tracer un programme pas à pas.
P ou F10 : step,
execute le programme comme pour trace, mais il ne rentre pas dans
les fonctions, les interruptions, les apis ... il les execute,
step = pas, il fait un pas au-dessus des fonctions... compris ?
BP... : placement de Breakpoint, ou point
d'arrêt, comment ca marche ??? il faut savoir qu'il existe une
interruption matérielle : la 03, qui permet de
stopper un programme en cours d'execution, lorsque vous placez un
breakpoint sur une adresse précise, Soft-Ice y place en fait une
int 03, détournée bien sur, et de ce fait vous redonne la main
à l'emplacement souhaité, en y replacant la ligne initiale bien
entendu ...
F12 : Permet de sortir d'un call et de revenir
juste après l'instruction appelante du Call, c'est en fait une
macro qui place un breakpoint sur l'adresse qui a appelé le
call, pour ceux qui ne savent pas, lors d'un appel de call, le
segment et l'offset de l'appel (CS:EIP) est placé sur la pile
automatiquement par le processeur, le ret dépile ces adresse.
Les breakpoints :
Note : pour une lisibilité facile, les instructions
seront en italiques, les paramètres obligatoires en gras et les
paramètres optionnels entre crochets (les crochets ne doivent
pas être mis quand vous tapez l'instruction !).
Ils constituent une part importante dans le cracking d'un programme, c'est quasiment le nerf de guerre, il faut aboslument les maitriser pour (bien) contrôler le programme, voiçi quelques exemples :
Conclusion de la première partie :
Voilà la fin de cette leçon qui
j'espère vous aura éclairé sur les breakpoints, nous
attaqueront par la suite les commandes de manipulation de
breakpoints, si je fais tout aussi court c'est pour ne pas vous
faire perdre trop de temps, lisez d'abord tout ca et d'içi 2-3
jours je vontinuerai mes cours...
Si vous avez une question précise, ou une remarque générale,
mailez-moi.