Articles of buffer overflow

«Xor eax, ebp» utilisé dans la sortie du compilateur C ++

J’ai juste essayé de comstackr quelques fragments C ++ sur VS2010 et analysé les exécutables sur IDA Pro. Quelque chose que j’ai remarqué, c’est que la plupart d’entre eux ont quelque chose comme ce qui suit au début (peu après un appel à __security_check_cookie) xor eax, ebp et quelque chose comme xor ecx, ebp au […]

Comment fonctionne un traîneau NOP?

Je ne trouve pas une bonne source qui réponde à cette question. Je sais qu’un nop sled est une technique utilisée pour contourner la randomisation de stack dans une attaque de dépassement de mémoire tampon, mais je ne peux pas comprendre comment cela fonctionne. Quel est un exemple simple qui illustre cette méthode? Que signifient […]

Comment désactiver l’optimisation du compilateur gcc pour activer le débordement de tampon

Je travaille sur un problème de devoir qui nécessite de désactiver la protection de l’optimisation du compilateur pour qu’elle fonctionne. J’utilise gcc 4.4.1 sur Ubuntu Linux, mais je n’arrive pas à déterminer quels sont les indicateurs appropriés. Je me rends compte que cela dépend de l’architecture – ma machine fonctionne avec un processeur Intel 32 […]

Java a-t-il des dépassements de tampon?

Java a-t-il des dépassements de tampon? Si oui, pouvez-vous me donner des scénarios?

Pourquoi ce code est-il vulnérable aux attaques par dépassement de mémoire tampon?

int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } Ce code est vulnérable à une attaque de dépassement de mémoire tampon et j’essaie de comprendre pourquoi. Je pense que cela a à voir avec le fait d’être déclaré short au lieu d’un […]

Pourquoi la fonction get est-elle si dangereuse qu’elle ne devrait pas être utilisée?

Lorsque j’essaie de comstackr du code C qui utilise la fonction gets() avec GCC, j’ai compris avertissement : (.text + 0x34): warning: la fonction `get ‘est dangereuse et ne doit pas être utilisée. Je me souviens que cela a quelque chose à voir avec la protection de la stack et la sécurité, mais je ne […]

Pourquoi cela pour la boucle de sortie sur certaines plates-formes et pas sur d’autres?

J’ai récemment commencé à apprendre le C et je prends un cours avec C comme sujet. Je joue actuellement avec des boucles et je rencontre des comportements bizarres que je ne sais pas comment expliquer. #include int main() { int array[10],i; for (i = 0; i <=10 ; i++) { array[i]=0; /*code should never terminate*/ […]