Erreur de compilation: erré ‘\ 302’ dans le programme, etc.

J’ai des problèmes pour comstackr le code d’exploitation suivi:

http://downloads.securityfocus.com/vulnerabilities/exploits/59846-1.c

J’utilise: “gcc file.c” et “gcc -O2 file.c” mais les deux erreurs suivantes sont générées:

sorbolinux-exec.c: In function 'sc': sorbolinux-exec.c:76: error: stray '\302' in program sorbolinux-exec.c:76: error: stray '\244' in program sorbolinux-exec.c:76: error: 't' undeclared (first use in this function) sorbolinux-exec.c:76: error: (Each undeclared identifier is reported only once sorbolinux-exec.c:76: error: for each function it appears in.) 

J’ai essayé de les comstackr à la fois sur Kali Linux et Ubuntu 10.04 et d’obtenir le même résultat.

Vous avez un caractère invalide sur cette ligne. Voici ce que j’ai vu:

entrez la description de l'image ici

Vous avez des caractères invalides dans votre source. Si vous n’avez pas de caractère valide non ascii dans votre source, par exemple dans un littéral de chaîne entre guillemets, vous pouvez simplement reconvertir votre fichier en ascii avec:

 tr -cd '\11\12\15\40-\176' < old.c > new.c 

Edit: la méthode avec iconv s’arrête sur des caractères erronés, ce qui n’a aucun sens. La ligne de commande ci-dessus fonctionne avec le fichier exemple. Bonne chance 🙂

Chaque fois que le compilateur a trouvé un caractère spécial .. il donne à ces roi d’erreur de compilation …. quelle erreur j’ai trouvé est comme suit

error: stray ‘\ 302’ dans le programme et error: stray ‘\ 240’ dans le programme

….

Un morceau de code que j’ai copié à partir de messagerie instantanée. Dans messanger, c’était un caractère spécial uniquement. Après avoir été copié dans l’éditeur vim, il ne changeait plus que le caractère. Mais le compilateur donnait l’erreur ci-dessus .. alors .. que stamenet j’ai écrit mannualy après .. il a résolu .. 🙂

C’est peut-être parce que vous avez copié le code de net (d’un site qui n’a peut-être pas une page codée ASCII, mais une page codée UTF-8), de sorte que vous pouvez convertir le code en ASCII à partir de ce site:

http://www.percederberg.net/tools/text_converter.html

Là, vous pouvez détecter les erreurs manuellement en le reconvertissant au format UTF-8 ou le convertir automatiquement en ASCII et supprimer tous les caractères parasites.

J’ai eu la même chose avec un personnage qui apparaissait visiblement sous la forme d’un astérisque, mais qui était plutôt une séquence UTF-8.

 Encoder * st; 

Une fois compilé retourné:

 gc:2:1: error: stray '\342' in program gc:2:1: error: stray '\210' in program gc:2:1: error: stray '\227' in program 

342 210 227 s’avère être UTF-8 pour ASTERISK OPERATOR.

Supprimer le ‘*’ et le retaper à nouveau a résolu le problème.

Le 5 octobre, Codo avait parfaitement raison de dire que & current [i] est le texte souhaité (avec le symbole monétaire introduit par inadvertance lorsque la source a été entrée en HTML (voir l’original): http://downloads.securityfocus.com/vulnerabilities/exploits/ 59846-1.c

La modification de Codo rend la compilation de ce code d’exploitation sans erreur. Je l’ai fait et j’ai pu utiliser l’exploit sur Ubuntu 12.04 pour passer au privilège root.

Les explications données ici sont correctes. Je voulais simplement append que ce problème peut être dû au fait que vous avez copié le code quelque part, à partir d’un site Web ou d’un fichier PDF, à cause de la présence de caractères non valides dans le code.

Essayez de trouver ces caractères non valides ou ressaisissez simplement le code si vous ne le pouvez pas. Il va certainement comstackr alors.

Source: raison d’erreur parasite

Avec moi, cette erreur s’est produite lorsque j’ai copié et collé un code au format texte dans mon éditeur (gedit). Le code était dans un document texte (.odt) et je l’ai copié et collé dans gedit. Si vous avez fait la même chose, vous avez réécrit manuellement le code.

J’ai remarqué un problème dans l’utilisation de la commande ci-dessus tr. La commande tr supprime COMPLÈTEMENT les “citations intelligentes” . Il serait préférable de remplacer les “citations intelligentes” par quelque chose comme ceci.

Cela vous donnera un aperçu rapide de ce qui sera remplacé.

sed s/[”“]/'"'/g File.txt

Cela fera les remplacements et mettra le remplacement dans un nouveau fichier appelé WithoutSmartQuotes.txt.

sed s/[”“]/'"'/g File.txt > WithoutSmartQuotes.txt

Cela écrasera le fichier d’origine.

sed -i ".bk" s/[”“]/'"'/g File.txt

http://developmentality.wordpress.com/2010/10/11/how-to-remove-smart-quotes-from-a-text-file/

Ce problème survient lorsque vous avez copié du texte à partir de HTML ou que vous avez modifié l’environnement Windows et essayé de le comstackr dans l’environnement Unix / Solaris.

S’il vous plaît faire ” dos2unix ” pour supprimer les caractères spéciaux du fichier:

dos2unix nomFichier.ext nomFichier.ext

Changez le nom du fichier.c en un autre fichier423.c. cela peut être dû au conflit de nom entre les fichiers c.