Como remover dados sensíveis de compilado binário (.dll)? Visual Studio 2015 (CPP)

votos
0

Estou construindo uma DLL, e eu quero fazer a análise estática desta .dll mais difícil possível. Mas o que é o inferno, eu posso ver caminhos completos para o meu (SOME) .cpp e .h como é se eu abrir compilado .dll no bloco de notas. Eu posso ver definições de funções (alguns), não decompilation necessários lol, sua visível. Amostra:

void __cdecl Core::Context::Shutdown(void)
void __cdecl U::Read(unsigned __int64,unsigned __int64,char *)
C:\Git\Repo\Games/XXX/GameApi.h

e etc, etc. Eu não sou um novato e eu entendo a diferença entre Debug compilação / Release. Eu não me importo sobre minhas cordas hardcoded em binário, eu sei como escondê-lo. Mas comuns, protótipos de função e caminhos para arquivos? Eles não devem estar em .dll compilado.

estou a usar

  • Lançamento de configuração,
  • x64 Platform,
  • C / C ++ -> Geral -> Debug formato de informações -> Nenhum
  • C / C ++ -> Geração de código -> biblioteca Runtime -> DLL Multi-threaded (/ MD)
  • C / C ++ -> Idioma -> Ativar Run-Time Type Information -> Não (/ GR-)
  • Linker -> Depuração -> Gerar informações de depuração -> Não

ESSAS OPÇÕES REMOVIDO A LOT INFO sensíveis de DLL mas não todos!

linha de comando completo para compilador:

/GS /GL /W3 /Gy- /Zc:wchar_t /Gm- /O1 /sdl- /Fdx64\Release\vc140.pdb 
/Zc:inline /fp:precise /D _WINDLL /D _UNICODE /D UNICODE 
/errorReport:prompt /WX- /Zc:forScope /GR- /Gd /MD /Fax64\Release\ /EHsc 
/nologo /Fox64\Release\ /Os /Fpx64\Release\Dll_x64.pch 

linha de comando completo para vinculador:

/OUT:C:\Git\Repo\Games\XXX\Dll_x64.dll /MANIFEST /LTCG:incremental 
/NXCOMPAT /DYNAMICBASE kernel32.lib user32.lib gdi32.lib 
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib 
oleaut32.lib uuid.lib odbc32.lib odbccp32.lib 
/IMPLIB:C:\Git\Repo\Games\XXX\Dll_x64.lib /DLL /MACHINE:X64 /OPT:REF 
/MANIFESTUAC:level='asInvoker' uiAccess='false' 
/ManifestFile:x64\Release\Dll_x64.dll.intermediate.manifest /OPT:ICF 
/ERRORREPORT:PROMPT /NOLOGO /TLBID:1 

Alguém por favor explique, por que meus protótipos de função e caminhos para arquivos CPP / H são apareceu em .dll compilado. Como posso evitá-lo.

Publicado 20/09/2018 em 04:26
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more