Como o ofuscador .net é usado no projeto, muitos modelos são pesquisados online, como Dotfuscator, xeoncode, foxit, etc.
Mas a maioria das taxas, claro, são versões crackeadas, e a empresa exige que softwares piratas não possam ser usados.
Depois de procurar por muito tempo, finalmente encontrei o ConfuserEX, e estava ok usar, então rapidamente o tirei e compartilhei com você.
Como há poucas introduções chinesas na Internet, farei um teste aqui para demonstrar a você:
1. Crie uma nova biblioteca de classes em C#, não vou mudar o nome, apenas chamar de ClassLibrary1 e adicionar um método simples sob a classe Class1.cs:
2. Crie outro aplicativo de console, ConsoleTest, adicione um ClassLibrary1.dll de referência e chame o método de teste em ClassLibrary1.Class1 no método Main:
Após compilar, abra o ConsoleTest.exe com o ILSpy, e você poderá ver o código-fonte conforme mostrado abaixo:
3, Agora vamos tentar confundir com o ConfuserEx:
Após baixar o ConfuserEx, descompacte e abra a ConfuserEx.exe, como mostrado na figura a seguir:
4. Veja o prompt "Arrastar módulos de entrada aqui"?
Então coloque a ConsoleTest.exe agora mesmo, como mostrado na foto abaixo:
5. Clique em Configurações
- Selecionar Packer
- Módulos->ConsoleTest.exe
- Clique no sinal + para Regras, verdadeiro
Como mostrado abaixo:
6. Clique em Protestar!->Proteger! , provocando exportação bem-sucedida (no diretório Confused),
7. Abra com o ILspy... Confuso, olhe ConsoleTest.exe o código-fonte:
Se o método estiver vazio, copie o ClassLibrary1.dll das dependências de ConsoleTest.exe para o diretório Confused, clique em Executar ConsoleTest.exe e apresente o resultado correto.
Nota
8. Se você apenas confundir o arquivo exe, tudo bem; se você apenas confundir um arquivo dll, verá o seguinte erro:
Erro: Sem módulo executável, sem corpo executável?
Não existe um arquivo exe? Vamos colocar a ConsoleTest.exe e confundir com ClassLibrary1.dll, olha.
9. De acordo com o método anterior, arrastei e soltei o ConsoleTest.exe e ClassLibrary1.dll no ConfuserEx para confundi-los juntos.
Como mostrado abaixo:
Sucesso rápido.
10. Mas abrimos de novo... Confuso, só encontrei arquivos confusos ConsoleTest.exe, para onde ClassLibrary1.dll foi?
Você não consegue confundir o arquivo dll?
Não se preocupe, vamos clicar ConsoleTest.exe tentar, ah, estou indo, roda com sucesso, como mostrado na foto abaixo:
A única explicação aqui é que o ConfuserEx incorpora o DLL no exe.
Agora o ConsoleTest.exe confuso tem 17KB, enquanto o ConsoleTest.exe original tem 5KB e o ClassLibrary1.dll também tem 5KB.
11. Vamos usar o ILSpy para ver o ConsoleTest.exe gerado após confundir ConsoleTest.exe e ClassLibrary1.dll ao mesmo tempo.
Não consigo ver o método, nem o arquivo dll referenciado.
Bem, é isso por hoje.
Anexado: Como não encontrei uma forma de confundir a dll separadamente ao meio-dia, essa aluna encontrou uma maneira na @四毛的家 da tarde, e vou acrescentar como confundir a dll separadamente.
De acordo com o passo 8, encontramos que um erro foi reportado ao confundir a DLL de acordo com o método EXE, e deveríamos ter seguido os passos abaixo:
Depois de arrastar a dll para o ConfuserEx, você não pode selecionar Packer nas Configurações, mas clique no botão lápis à direita, como mostrado abaixo.
Depois de clicar no botão lápis, a caixa de diálogo Editar regra aparece, seleciono um item no Preset, seleciono Máximo aqui, clico no botão "+" abaixo, seleciono anti-ildasm (acho que para evitar compilação pelo IL), e então a exportação é bem-sucedida.
Estamos usando o ILSpy para verificar o ClassLibrary1.dll que acabou de ser confundido, como mostrado na figura abaixo,
Nada pode ser visto.
Para testar a DLL ofuscada disponível, coloco a ConsoleTest.exe não ofuscada e a ClassLibrary1.dll ofuscada em um único diretório, clico em Executar ConsoleTest.exe e consigo ter sucesso.
|