Die Spuren würde ich in erster Linie nicht beim Compiler, sondern beim Linker suchen. Der hinterlässt zum Beispiel eine Linker-Version im PE32 Optional Header. Sowas kombiniert man mit anderen Daten, etwa der Eigenschaft, daß "alle" Delphi-Programme im
PE Header den gleichen Timestamp tragen, der an sich ebenfalls ein gutes Kriterium ist (nach meinem
QC-Ticket hier wurde das aber gefixt, und man konnte den Header natülich auch flexibel selber patchen). Sowas wie
dieses Kriterium geben in Kombination ebenfalls Aufschluß darüber, daß es sich um ein Delphi-Programm handelt.
Ansonsten wird die
RTL Spuren hinterlassen - wer die
RTL nicht neukompiliert (also der Durchschnittsfall) wird immer die gleichen
Unit-Binärdaten einbinden. Die muss man halt ggfls. flexibel suchen (nach dem Binärpart von System.pas z.B.), und die wird in jedem Release leicht unterschiedlich sein.