Page 1 sur 1

Théorie:petit overflow sur les jeux incrémentaux

Posté : sam. 23 mars 2019 22:44
par DuDono
Si vous ne le saviez pas, dans la plupart des pc et gsm actuels, les nombres sont codés sur 1024 bits,donc leur valeur max est 2^1024-1.Que se passerait-il si un nombre dépassait cette valeur

Re: Théorie:petit overflow sur les jeux incrémentaux

Posté : jeu. 25 avr. 2019 14:35
par thelinekioubeur
Il reviendrait à 0 ? Mais as tu un cas d'exploit concret ?

Ceci dit ça me semble incorrect, la valeur max d'un entier peu dépendre notamment selon le langage du code source. Et puis 2^1024-1 c'est déjà très grand.
Perso je code principalement en python, et le type entier n'a pas de valeur max, sur mon pc ça commence à ramer à partir de 2^1000000000

Re: Théorie:petit overflow sur les jeux incrémentaux

Posté : sam. 24 août 2019 17:30
par Buglitch
DuDono a écrit :
sam. 23 mars 2019 22:44
Si vous ne le saviez pas, dans la plupart des pc et gsm actuels, les nombres sont codés sur 1024 bits
Je sais pas d'où tu sors cette info mais non, aujourd'hui sur la plupart des langages compilés on est plutôt sur 32 bits pour des entiers de base, mais si le développeur a besoin de plus il utilisera un type adapté (il peut même en soit utiliser plusieurs entiers et ne pas avoir de limite autre que la taille de la mémoire).

Sinon d'un point de vue hardware il ne se passera rien, le processeur gère très bien ça, sur la plupart des architectures la valeur retournera à 0 et le flag "overflow" sera activé pour que le programme puisse savoir que c'est arrivé.

Mais oui d'un point de vue software, si le programme est mal foutu et ne pense pas à gérer ce cas (ce qui arrive souvent) alors ça peut potentiellement être exploité.

Comme par exemple à chaque fois qu'on parle d'overflow d'entier sur les pages du site, la console n'a aucun problème et fait simplement ce qu'on lui demande, mais si le jeu est assez con pour faire 255 + 1 sur 8 bit et s'attendre à autre chose que 0 avec un overflow alors ça peut mal se passer.
(Après sur le site on parle souvent d'overflow en parlant d'accès mémoire donc c'est différent, genre avoir 6 Pokémon dans ton équipe et accéder au 7e.)
thelinekioubeur a écrit :
jeu. 25 avr. 2019 14:35
Perso je code principalement en python, et le type entier n'a pas de valeur max, sur mon pc ça commence à ramer à partir de 2^1000000000
Python est un interpréteur donc coté hardware les entiers sont codés sur plusieurs entiers qui eux ont bien une limite, en soit on est sur un autre problème, mais on peux toujours avoir un overflow si on a une faille dans python (qui lui n'utilise que des entiers limités).