2016-07-25 4 views
5

Wie man Stack Smashing Protection in pure swift Anwendung aktiviert?Swift and Stack Zerschlagungsschutz

Ich habe versucht, "-fstack-protector-all" -Flag auf andere C++ - Flags unter Projekt erstellen Einstellungen Registerkarte in xCode, aber scheint, dass dieses Flag ist nicht verwendet oder hat keine Auswirkungen auf builded Anwendung.

Um zu verifizieren, verwende ich otool -Iv AppBinary | grep stack.

+0

Haben Sie die Antwort auf diese Frage – nkp

+0

Nein. Ich habe nicht. Um die Kundenanforderungen zu erfüllen, habe ich UIView als Objective-C-Klasse hinzugefügt. Dadurch werden Schirmköpfe zu objective-c erstellt und Projekt wurde als gemischtes Swift-Obj-c-Projekt (kein reines Swift-Projekt) erstellt. Diese Ansicht wurde keine Ware verwendet ... Es war einfach. –

+0

Danke für Ihre Eingabe ... – nkp

Antwort

3

In Swift ist Stack-Zerschlagung standardmäßig aktiviert. Sie müssen lediglich das Flag "-fstack-protector-all" unter den Build-Einstellungen in objective-c-Anwendungen hinzufügen.

So prüfen Sie, ob Stack-Smashing aktiviert ist. Führen Sie den Otool-Befehl und die Anwesenheit von stack_chk_guard und stack_chk_fail bedeutet der Code ist Stack-Smashing geschützt.

$ otool -Iv <appname>|grep stack 
0x0013dfg 520 ___stack_chk_fail 
0x001d009 521 ___stack_chk_guard 
0x001fd345 520 ___stack_chk_fail 
0x000000010087efd 513 ___stack_chk_fail 
0x0000000100098hf3 514 ___stack_chk_guard 
0x00000001000897gfr 513 ___stack_chk_fail