Fórum Problema ao Ofuscar código fonte de Aplicação .net (Compact Framework) #14269
19/01/2010
0
O exemplo mostra uma classe de nome rota que é interpretada pela classe persistente e é gerado uma string contendo o script (select ). Assim se vc testar esta aplicação vc vera que funcionará perfeitamente, porem se vc ofuscar o executável e tentar rodar a aplicação novamente o sistema vai deixar de funcionar. Espero que vcs possam me ajudar, pois tenho que entregar esta aplicação para meu cliente + não queria entregar a aplicação sem ofuscar o código fonte para evitar pirataria. Obrigado Alan
Alan Assis
Curtir tópico
+ 0Posts
21/01/2010
Alan Assis
Gostei + 0
21/01/2010
Fabio Mans
Gostei + 0
21/01/2010
Alan Assis
Gostei + 0
21/01/2010
Fabio Mans
Gostei + 0
21/01/2010
Devmedia
esse assunto não está no escopo da consultoria, por se tratar de componente de terceiros.
Por isso o chamado será cancelado para não debitar dos seus créditos.
Gostei + 0
21/01/2010
Alan Assis
Gostei + 0
22/01/2010
Alan Assis
Bom, para quem passar pela mesma situação la vai a solução: Para aplicações móbile em c# vc tem que incluir a referencia a um arquivo de nome ObfuscationAttributes.cs (este arquivo esta disponível na instalação do software Eazfuscator.NET ), também na classe program.cs inclua após declaração do uses a linha abaixo: [assembly: ObfuscateAssemblyAttribute(true, StripAfterObfuscation = false)] Ex: using System.Reflection; using System.IO; using Global; using Modelo; [assembly: ObfuscateAssemblyAttribute(true, StripAfterObfuscation = false)] namespace Mobile_Empresarial { static class Program { Tambem será necessário incluir nas classes que não devem ser ofuscadas (as classes que representam as tabelas do banco de dados) a linha de código abaixo: [System.Reflection.ObfuscationAttribute(Feature = "renaming", ApplyToMembers = true)]
Ex:
namespace Modelo { [System.Reflection.ObfuscationAttribute(Feature = "renaming", ApplyToMembers = true)] [Table("ROTAS)] public class Rota { private int? _iD = null; [Key("ID")] public int? ID { get { return _iD; } set { _iD = value; } } private int? _ordem = null; [Column("ORDEM", ColumnType.Int32, 11, false)] public int? Ordem { get { return _ordem; } set { _ordem = value; } } Pronto, mesmo depois de ofuscar o executável o script sql continua sendo montado dinamicamente
Gostei + 0
22/01/2010
Fabio Mans
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)