Théorie:petit overflow sur les jeux incrémentaux
Théorie:petit overflow sur les jeux incrémentaux
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
- thelinekioubeur
- Glitchologue confirmé
- Messages : 108
- Enregistré le : mar. 3 juin 2014 10:02
Re: Théorie:petit overflow sur les jeux incrémentaux
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
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
- Buglitch
- Webmaster
- Messages : 469
- Enregistré le : sam. 22 sept. 2012 21:38
- Localisation : La ville de Perma en Italie
- Contact :
Re: Théorie:petit overflow sur les jeux incrémentaux
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.)
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).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
XeR a écrit :Buglitch, un homme, un humour, une légende.