2009-08-13 12 views
1

Derzeit, wenn ich eine gemeinsame Bibliothek erstellen, liegen Funktionen aus den gleichen Objektdateien gerne zusammen. Gibt es eine gute Lösung (die Quelldateien nicht aufzuteilen), um Funktionsstellen auseinander zu verteilen? Wir verwenden derzeit eine kompilierte 4.2.1-Version von gcc und den Gnu-Tools.Randomizing-Funktion, etc. Locations für gemeinsame Bibliotheken

+0

Warum möchten Sie das tun? – Nate

+0

So schrecklich wie es klingt, Sicherheit. Probleme mit der Lizenzierung usw. Ich möchte einen Angreifer in den Funktionen A, B und C, die direkt nebeneinander liegen, nicht zuordnen. Ich weiß, es ist ein schrecklicher Grund, und es wird nicht wirklich viel tun, aber sogar ein bisschen kann helfen. – vol

Antwort

0

Während Sie tun können, was Sie wollen mit GNU-ld-Linker-Skript (wenn Sie auf einer Plattform sind, für die GNU ld funktioniert), können Sie es nicht portabel tun.

Darüber hinaus ist es eine völlig vergebliche Anstrengung: Jeder Hacker, der es wert ist, wird sich nicht darum kümmern, Funktionen zu verschieben. Wenn Sie es wirklich schwer machen wollen er, um Ihren Code rückwärts zu entwickeln (oder einfach Ihr Lizenzschema zu umgehen), sollten Sie viel stärkere Techniken verwenden, beschrieben z. here.

Arguably, das ist immer noch völlig vergeblichen Aufwand.

+0

Danke. Ich verstehe die Argumente, dass die Bekämpfung von Crackern eine verlorene Schlacht ist. Das heißt, einige der Push für dieses ist Management-getrieben, nicht Entwickler getrieben. – vol