I have a commercial application that links statically with cryptlib.lib. I built both cryptlib.lib and my app with Visual Studio 2010, Release settings, optimized for speed (/O2), and *no debug info*. When I simply inspect my executable with a hex viewer, I see a plethora of Crypto++ names in plain ASCII. Here's an example:
Offset(d) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 00444416 6F 6E 40 32 40 40 43 72 79 70 74 6F 50 50 40 40 00 00 00 00 00 00 00 00 18 A4 45 00 00 00 00 00 on@2@@CryptoPP@@.........¤E..... 00444448 2E 3F 41 56 3F 24 54 46 5F 53 69 67 6E 65 72 49 6D 70 6C 40 55 3F 24 54 46 5F 53 69 67 6E 61 74 .?AV?$TF_SignerImpl@U?$TF_Signat 00444480 75 72 65 53 63 68 65 6D 65 4F 70 74 69 6F 6E 73 40 56 3F 24 54 46 5F 53 53 40 55 50 53 53 52 40 ureSchemeOptions@V?$TF_SS@UPSSR@ 00444512 43 72 79 70 74 6F 50 50 40 40 56 53 48 41 31 40 32 40 55 52 53 41 40 32 40 48 40 43 72 79 70 74 CryptoPP@@VSHA1@2@URSA@2@H@Crypt 00444544 6F 50 50 40 40 55 52 53 41 40 32 40 56 3F 24 50 53 53 52 5F 4D 45 4D 40 24 30 30 56 50 31 33 36 oPP@@URSA@2@V?$PSSR_MEM@$00VP136 00444576 33 5F 4D 47 46 31 40 43 72 79 70 74 6F 50 50 40 40 24 30 3F 30 24 30 41 40 24 30 41 40 40 32 40 3_MGF1@CryptoPP@@$0?0$0A@$0A@@2@ 00444608 56 53 48 41 31 40 32 40 40 43 72 79 70 74 6F 50 50 40 40 40 43 72 79 70 74 6F 50 50 40 40 00 00 VSHA1@2@@CryptoPP@@@CryptoPP@@.. 00444640 18 A4 45 00 00 00 00 00 2E 3F 41 56 4E 6F 74 43 6F 70 79 61 62 6C 65 40 43 72 79 70 74 6F 50 50 .¤E......?AVNotCopyable@CryptoPP 00444672 40 40 00 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 52 61 6E 64 6F 6D 4E 75 6D 62 65 72 47 65 6E 65 @@...¤E......?AVRandomNumberGene 00444704 72 61 74 6F 72 40 43 72 79 70 74 6F 50 50 40 40 00 00 00 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 rator@CryptoPP@@.....¤E......?AV 00444736 52 61 6E 64 6F 6D 50 6F 6F 6C 40 43 72 79 70 74 6F 50 50 40 40 00 00 00 18 A4 45 00 00 00 00 00 RandomPool@CryptoPP@@....¤E..... 00444768 2E 3F 41 56 41 75 74 6F 53 65 65 64 65 64 52 61 6E 64 6F 6D 50 6F 6F 6C 40 43 72 79 70 74 6F 50 .?AVAutoSeededRandomPool@CryptoP 00444800 50 40 40 00 00 00 00 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 3F 24 50 53 53 52 5F 4D 45 4D 40 24 P@@......¤E......?AV?$PSSR_MEM@$ 00444832 30 30 56 50 31 33 36 33 5F 4D 47 46 31 40 43 72 79 70 74 6F 50 50 40 40 24 30 3F 30 24 30 41 40 00VP1363_MGF1@CryptoPP@@$0?0$0A@ 00444864 24 30 41 40 40 43 72 79 70 74 6F 50 50 40 40 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 3F 24 50 53 $0A@@CryptoPP@@..¤E......?AV?$PS 00444896 53 52 5F 4D 45 4D 5F 42 61 73 65 57 69 74 68 48 61 73 68 49 64 40 24 30 41 40 40 43 72 79 70 74 SR_MEM_BaseWithHashId@$0A@@Crypt 00444928 6F 50 50 40 40 00 00 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 50 4B 5F 53 69 67 6E 61 74 75 72 65 oPP@@....¤E......?AVPK_Signature 00444960 4D 65 73 73 61 67 65 45 6E 63 6F 64 69 6E 67 4D 65 74 68 6F 64 40 43 72 79 70 74 6F 50 50 40 40 MessageEncodingMethod@CryptoPP@@ 00444992 00 00 00 00 00 00 00 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 50 4B 5F 52 65 63 6F 76 65 72 61 62 .........¤E......?AVPK_Recoverab 00445024 6C 65 53 69 67 6E 61 74 75 72 65 4D 65 73 73 61 67 65 45 6E 63 6F 64 69 6E 67 4D 65 74 68 6F 64 leSignatureMessageEncodingMethod 00445056 40 43 72 79 70 74 6F 50 50 40 40 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 50 53 53 52 5F 4D 45 4D @CryptoPP@@..¤E......?AVPSSR_MEM 00445088 5F 42 61 73 65 40 43 72 79 70 74 6F 50 50 40 40 00 00 00 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 _Base@CryptoPP@@.....¤E......?AV 00445120 52 61 6E 64 6F 6D 69 7A 65 64 54 72 61 70 64 6F 6F 72 46 75 6E 63 74 69 6F 6E 49 6E 76 65 72 73 RandomizedTrapdoorFunctionInvers 00445152 65 40 43 72 79 70 74 6F 50 50 40 40 00 00 00 00 18 A4 45 00 00 00 00 00 2E 3F 41 56 54 72 61 70 e@CryptoPP@@.....¤E......?AVTrap 00445184 64 6F 6F 72 46 75 6E 63 74 69 6F 6E 49 6E 76 65 72 73 65 40 43 72 79 70 74 6F 50 50 40 40 00 00 doorFunctionInverse@CryptoPP@@.. Does anyone know how to eliminate those? Note that they are in the .exe file, not the .pdb file; because of that, I think they may not even be actual debugging symbols. Are they perhaps baked into the library somewhere? (The reason I want to eliminate them is obvious: it should not be possible to determine through simplest visual inspection of the binary that it uses cryptography, let alone Crypto++ specifically) Thanks, Albert -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
