SQL Server – Como exportar o assembly de um CLR como DLL e fazer engenharia reversa para código-fonte C#

SQL Server – Como exportar o assembly de um CLR como DLL e fazer engenharia reversa para código-fonte C#
5 (100%) 1 voto

Olá pessoal,
Tudo bem com vocês ?

Neste post vou demonstrar como exportar o assembly de um CLR no SQL Server como DLL e fazer engenharia reversa para código-fonte C#. A primeira vez que precisei utilizar esse recurso foi quando existia um assembly já criado e compilado no banco e precisei alterar o código-fonte de uma procedure, mas a versão que estava no banco não parecia ser a mesma que estava no TFS (Team Foundation Server).

Como exportar o assembly de um CLR do banco para DLL

O primeiro passo para realizar essa atividade, é exportar o Assembly do banco de dados para DLL. Para isso, você precisará identificar o nome do assembly e executar um dos scripts abaixo.

Identificando o nome do assembly

Exportando o assembly para DLL com OLE Automation

Uma forma de exportar o Assembly para DLL é utilizando OLE Automation. Para isso, utilize o código abaixo:

Exportando o assembly para DLL com CLR

Uma outra forma de exportar o Assembly para DLL é utilizando o próprio CLR.

Exemplo de uso:

Resultado:

Como fazer engenharia reversa da DLL para código-fonte

Uma vez que você conseguiu exportar o assembly da sua biblioteca CLR para um arquivo DLL, você poderá fazer a engenharia reserva do código fonte. Para fazer isso, existem diversas ferramentas, mas sugiro a ferramenta JetBrains dotPeek.

Uma vez instalada, você poderá abrir a ferramenta dotPeek, clicar no menu e selecionar a opção “Open…”

Agora que a sua CLR vai aparecer na lista, basta clicar no botão destacado na imagem abaixo, ou clicar com o botão direito sobre a biblioteca e selecionar a opção “Export to Project” ou acessar o menu File > “Export to Project”.

Selecione onde você deseja salvar o código-fonte e pode deixar as opções padrão marcadas.

Pronto. O dotPeek fez a engenharia reversa da sua DLL e gerou novamente o código-fonte original, conforme exemplo abaixo:

Vale ressaltar que algumas formatações, espaçamentos e comentários não são recuperados através da engenharia reserva, uma vez que isso é perdido quando o código é compilado. Além disso, essa técnica só se aplica a DLL’s que não sofreram o processo de ofuscação (criptografia do código-fonte).

É isso aí, pessoal.
Espero que tenham gostado deste post.

Abraço!

SQL Server database como export save exportar o assembly de um CLR como DLL e fazer engenharia reversa para source code código-fonte C# csharp disassembly reverse engineering JetBrains dotPeek

SQL Server database como export save exportar o assembly de um CLR como DLL e fazer engenharia reversa para source code código-fonte C# csharp disassembly reverse engineering JetBrains dotPeek

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

Deixe uma resposta