You are on page 1of 11

Introduction la fissuration partir de zro en utilisant

OllyDbg - Chapitre 3
Messages Date 6 octobre 2006

Introduction la fissuration partir de zro en utilisant


OllyDbg - Chapitre 3 - Archives WASM.RU
Quels sont les registres et pour lesquels ils sont destins

Pourquoi avons-nous besoin de registres et quel est-il?

CPU ont besoin d'assistants pour la mise en uvre des programmes. Parmi ceux-ci sont les
registres si ncessaire pour suivre toutes les instructions, par exemple, qui ajoute le contenu
de deux emplacements de mmoire, le processeur que vous souhaitez placer le contenu d'un
d'entre eux dans le registre, puis ajouter le fait qu'il est le contenu d'une autre cellule. Ceci est
l'un des exemples d'utilisation du registre.

ESP indique la valeur suprieure de la pile, nous verrons cela dans l'exemple de krekmi
Cruehead'a.

ESP est gal 12FFC4, et si l'on regarde la pile OllyDbg,

on voit que les points de registre la valeur suprieure de la pile ou, mtaphoriquement
parlant, sur la lettre en haut de la pile.

EIP - est un autre cas trs important, qui pointe l'instruction qui est en cours d'excution.
Nous voyons la liste que lorsque vous tlchargez adresse krekmi de la premire instruction
excute est 401000, et il est vident que cette valeur et est contenue dans EIP.

Si vous appuyez sur F7, la premire instruction est excute, et le tour du second.

EIP est maintenant 401002, et la liste voir que la premire instruction est excute et sont
maintenant dans la seconde.

D'autres registres peuvent comprendre des valeurs diffrentes et servent aider excuter
l'instruction du processeur.

Rappelons dans lequel OllyDbg montre registres:

, , EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI y


EIP.

Ils sont appels registres 32 bits.


OllyDbg affiche leur contenu en hexadcimal. Par exemple, la valeur minimale de l'EAX peut
tre gal 00.000.000 et maximum - FFFFFFFF, que dans le systme binaire serait
11111111111111111111111111111111.

Nous voyons qu'il ya 32 bits, dont chacun peut tre 0 ou 1, et par consquent, les registres
sont appels 32 bits.

L'assembleur peut se rfrer une partie des registres 32 bits.

Prenons l'exemple de travailler avec des registres, un peu de pratique OllyDbg.

Modifiez la valeur de EAX au fait que nous avons besoin, dans ce cas, il est ouvert 12345678.
OllyDbg, o charg krekmi Cruehead'a (bien qu'il y ait quelque chose d'autre).

Dans la fentre qui apparat, crire dans le champ hexdecimal 12345678.

Voici comment:
Cliquez ensuite sur OK.

Apparemment, maintenant dans le registre une valeur. OllyDbg met en vidence les valeurs
modifies en rouge.

Si vous le souhaitez, on peut utiliser une partie de EAX, AX dans ce cas est un registre de 16
bits, par exemple, dans l'exemple ci-dessus, il sera stock dans 5678, comme on peut le voir
en imprimant une barre de commande

? AX (point d'interrogation sert aussi pour trouver la valeur d'expression ou registre).

Aprs avoir appuy sur la touche Entre.

voir le fameux 5678, savoir AX contient les quatre derniers chiffres de EAX. Il y a aussi AL
et AH, les valeurs peuvent galement tre consults dans OllyDbg.

? Alabama

? AH

Ou si EAX = 12345678, l'AX - ce sont les 4 derniers chiffres.

AH - elle figure 5 et 6, et AL - est les deux derniers.


De mme EBX divis en BX, BH et BL, ainsi que la division similaire existe pour presque
tous les autres registres.

Comment modifier la valeur du registre

Comme nous l'avons vu, dans OllyDbg vous pouvez modifier les valeurs des registres. Tout
ce que nous avons fait avec le registre EAX est applicable d'autres registres: des chques,
dont la valeur que vous souhaitez modifier, puis cliquez sur le bouton droit, puis cliquez sur
Modifier . La seule exception - il est l'EIP, pointant vers l'instruction qui doit tre excute.

Pour le modifier, procdez comme suit: comme toujours des points EIP l'instruction qui doit
tre excut, il suffit de slectionner une nouvelle instruction dans listnige.

Une fois not, par exemple, 40101A, cliquez sur le bouton droit de la souris -> origine
Nouveau ici , et l'EIP est chang en 40101A, et donc, le programme se poursuivra avec la
mise en uvre par ce lieu.

Comme vous pouvez le voir, EIP contient 40101A.


Qu'est-ce qu'un drapeau?

Comme nous l'avons vu dans le premier chapitre, sous registres OllyDbg sont des drapeaux.

Nous voyons que les drapeaux sont CPAZSTD y O.

Nous voyons qu'ils ne peuvent avoir que deux valeurs: zro ou un. Certaines instructions de la
performance peuvent changer leur sens.

Nous allons regarder les drapeaux suivants:

i) Drapeau O ou drapeau trop-plein

Ce drapeau est activ lorsque dans le rsultat de l'opration est chang de signe et de retour
la valeur errone.

Prenons l'exemple suivant dans OllyDbg comme d'habitude en utilisant krekmi Cruehead'a.

Changement de la mme manire que prcdemment, la valeur EAX manire 7FFFFFFF, ce


qui est positif au maximum.

Maintenant, ajoutez 1, ce qui est la raison pour laquelle la somme dpasse le nombre
maximum positif parce que, comme nous le savons, 80 millions correspond au nombre
ngatif.
Pour ce faire, appelez la fentre o vous pouvez crire les instructions.

Dans ce document crire Ajouter EAX, 1.

Aprs avoir cliqu sur le bouton MONTER pour voir l'instruction l'adresse 401000 est
remplace par celle qui a t introduit.

Le EAX ADD, 1, comment pouvons-nous savoir quand seront lists et expliqu les
instructions EAX ajoute au numro 1, et stocke dans le mme registre la valeur obtenue.

Avant cette ligne en utilisant le drapeau F7 O est gal zro.

Si vous excutez cette ligne l'aide F7, et voir ce qui se passe dans le EAX sera 80.000.000 et
le nombre de signe sera chang.

drapeau O devient actif et affiche 1, savoir que le rsultat de l'excution de l'instruction a


dpass le meilleur rsultat possible. Le but de ce drapeau - indiquer quand cela se produit.
ii) Le drapeau A ou drapeau de transport supplmentaire.

Il a un but similaire dans la ralisation de l'opration avec un format diffrent, maintenant il


est intressant de nous.

iii) Drapeau drapeau P ou de parit

Ce drapeau est activ lorsque le rsultat de l'instruction sous forme binaire comprend un
nombre pair d'units, par exemple, 1010, 1100 ou 1.111.000.

Pour le tester, nous avons dj mis dans l'instruction OllyDbg ADD EAX, 1 , et que pour
remplir nouveau cette ligne, mettez en surbrillance 401000, cliquez sur le bouton droit de la
souris et slectionnez Nouveau orgin ici , revenir en arrire, et maintenant, si cliquez sur
suivant F7, suivez les instructions, nous avons demand - "ADD EAX, 1".

Nous avons maintenant en EAX contient la valeur 00000000, et le drapeau P est gal 1
( la suite de l'instruction prcdente), nous allons voir ce qui se passe lorsque l'on ajoute 1
EAX.

Appuyez sur F7.

On voit que le P est devenue gale 0, par consquent, contenue dans EAX, est un binaire
1, qui, sous forme binaire comprend seulement une unit, savoir un nombre impair.

Encore une fois, cliquez sur le bouton Ajouter EAX, 1 , puis faites un clic droit et
slectionnez Nouveau ici l'origine , ajouter nouveau 1. Appuyez sur F7.
On voit que dans EAX, comprenant une premire valeur de 1 est maintenant 2, qui est sous
forme binaire 10. Le nombre d'units est impair et de nouveau le drapeau P est inactif.
Rptez le processus avec l'ajout d'une unit nouveau.

Maintenant EAX contient la valeur 3, qui est sous forme binaire 11, et maintenant le rsultat
contient un nombre pair d'units, et le drapeau de parit est devenue active.

Ici, nous sommes introduits dans le fonctionnement du drapeau au-dessus: si le rsultat de


l'instruction contient un nombre pair d'units binaires, le drapeau est actif.

iv) Le drapeau flag "Z" ou zro

Ceci est l'un des plus bien connus et utiliss dans le Cracking des drapeaux, qui devient actif
lorsque le rsultat d'excution d'une instruction est gale zro.

Revenons nos instructions, l'EAX ADD, 1 401000 (clic droit - origine Nouveau ici
), mais fera la valeur de EAX gale FFFFFFFF, ce qui quivaut une dcimale -1, alors
quand cliquez ct de F7 et excuter ADD EAX, 1 -1 + 1, le rsultat sera nul et
l'indicateur Z pour devenir actif.

Nous pouvons voir que aprs avoir appuy sur F7 EAX contient zro, et si le rsultat - zro, le
drapeau Z est active et gale 1.
maintenant, je pense qu'il est devenu clair que ce drapeau est activ lorsque le rsultat est zro
instruction. Les diffrentes faons d'y parvenir, nous verrons plus loin.

v) Le drapeau S ou d'un drapeau de signe

Ce drapeau est 1 lorsque le rsultat de l'opration est ngative. Que voir en action, changer la
valeur EAX peut tre rgle sur FFFFFFF8, qui est gale -8 sous la forme dcimale.

Avec origine Nouveau ici bouton et A7 peut tre fait nouveau, ADD EAX, 1 . Le
rsultat sera FFFFFFF9, soit -7 sous la forme dcimale, ce qui est un nombre ngatif, de sorte
que le drapeau de signe pour devenir actif.

Pousser et F7 est activ aprs l'excution de l'indicateur d'instruction est S , qui est
maintenant gal 1, savoir, il est clair qu'un rsultat ngatif, il active.
vi) Le drapeau C ou le drapeau de report

Elle est active lorsque la valeur maximale est dpasse, ce qui peut comprendre un registre,
par exemple, une fois mis en valeur EAX FFFFFFFF ajouter et 1, nous voyons que le drapeau
de la migration est devenue gale 1.

vii) T, D I

Je ne vais pas expliquer leur but maintenant, car il est tout fait un sujet complexe, et aussi
longtemps que nous ne sommes pas trop ineteresno. Alors que nous considrerons une des
instructions simples, et laisser ce sujet pour plus tard.

Nous avons donc eu un aperu de chaque registre et quand les drapeaux activs. Avec cette
information, nous pouvons commencer tudier les instructions une la fois, aussi longtemps
que nous venons de voir l'ADD instruction.

Si vous avez encore quelque chose inconnue, pratique pour changer la valeur du drapeau avec
l'aide des instructions que nous avons utilis ADD EAX, 1 , puis passer la partie suivante
de la Introduction ...

Il est important que vous comprenez les bases de l'essence, donc ne pas hsiter pratiquer et
peerechitat ce genre de choses encore. Ricardo Narvaha, trans. Aquila

You might also like