programa para o V.b.

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

programa para o V.b.

Mensagempor creative » Sexta Out 21, 2005 14:52

Queria saber se existe algum programa que consiga arranjar o codigo-Fonte de um programa de Visual Basic.Net.
tipo temos o programa ja feito, e ele consegue arranjar o codigo-fonte desse mesmo programa.

Sei k deve ñ deve existir um programa dexex, mas mesmo assim era pa matar a curiosidade.

fikem bem

[-CrEaTiVe-]
ExIsTe Um MuNdO Mt MeLhOr Só K E CaRo Pa CaRaGo
creative
Aprendiz
Aprendiz
 
Mensagens: 61
Registado: Quarta Dez 29, 2004 9:13
Localização: My LiTtlE GrEaT RoOM ;p

Mensagempor deathseeker25 » Sexta Out 21, 2005 19:50

Como dizes não existe tal tipo de programas. O mais parecido com o que estás a falar é um disassembler, mas só para código em Assembly. A esse tipo de engenharia chama-se reverse-engeneering.

Se quiseres ler algo sobre os disassemblers clica aqui.

Cumps
Imagem
deathseeker25
Membro de Prata
Membro de Prata
 
Mensagens: 153
Registado: Terça Set 20, 2005 14:09

Mensagempor LuisFilipe » Sexta Out 21, 2005 20:32

deathseeker25 Escreveu:Como dizes não existe tal tipo de programas.
Claro que existem.

deathseeker25 Escreveu:O mais parecido com o que estás a falar é um disassembler, mas só para código em Assembly.
Claro que assembly tem uma relação directa de um para um com o código que os CPU's executam.

deathseeker25 Escreveu:A esse tipo de engenharia chama-se reverse-engeneering.
Estás a ver que existe. Se bem que esse termo não se aplica aqui directamente.

Por ex: tendo uma linguagem C -> OBJ -> EXE -> Assembly (ou OBJ) -> C. Agora é só comparar com o original.

Visto que o Basic é interpretado ou précompilado não existe a passagem a código máquina, existem sim protecções ao código (ténues) e alguma optimização.
Assim: BASIC -> pseudocódigo -> encapsulamento -> EXE -> desencapsulamento -> pseudocódigo -> BASIC

Eu só não postei aqui alguma coisa porque vai contra as regras do forum de resto se se googlar um pouco encontra-se tudo e mais alguma coisa. Mesmo já pronto a servir, claro que a pagar...
LuisFilipe
Membro Diamante
Membro Diamante
 
Mensagens: 1270
Registado: Domingo Set 04, 2005 22:12

Mensagempor r3pek » Quarta Out 26, 2005 16:39

LuisFilipe Escreveu:
deathseeker25 Escreveu:Como dizes não existe tal tipo de programas.
Claro que existem.

Hás de me dizer onde (para VB)? Conheço software que consegue fazer qq coisa mas para C, mas o binário (.exe) não pode ser muito complicado e é _muito_ bem pago!!

LuisFilipe Escreveu:
deathseeker25 Escreveu:O mais parecido com o que estás a falar é um disassembler, mas só para código em Assembly.
Claro que assembly tem uma relação directa de um para um com o código que os CPU's executam.

deathseeker25 Escreveu:A esse tipo de engenharia chama-se reverse-engeneering.
Estás a ver que existe. Se bem que esse termo não se aplica aqui directamente.
pk não? é o k ele ta a fazer...

LuisFilipe Escreveu:Por ex: tendo uma linguagem C -> OBJ -> EXE -> Assembly (ou OBJ) -> C. Agora é só comparar com o original.

Visto que o Basic é interpretado ou précompilado não existe a passagem a código máquina, existem sim protecções ao código (ténues) e alguma optimização.
Assim: BASIC -> pseudocódigo -> encapsulamento -> EXE -> desencapsulamento -> pseudocódigo -> BASIC

Onde é k isto é verdade?! Um processador não sabe executar mais nd a nao ser Assembler (ou mais baixo ainda, opcodes). Quer a linguagem seja interpretada ou compilada, desque que tenha um binário (.exe), este vai ter sempre o código assembler corresponde a _toda_ a aplicação compilada!
Gentoo Developer
(kernel/amd64/mobile-phone)
r3pek
Membro de Prata
Membro de Prata
 
Mensagens: 100
Registado: Quarta Mar 03, 2004 13:22

Re: programa para o V.b.

Mensagempor xirix » Quarta Out 26, 2005 16:57

creative Escreveu:Queria saber se existe algum programa que consiga arranjar o codigo-Fonte de um programa de Visual Basic.Net.
tipo temos o programa ja feito, e ele consegue arranjar o codigo-fonte desse mesmo programa.

Sei k deve ñ deve existir um programa dexex, mas mesmo assim era pa matar a curiosidade.

fikem bem

[-CrEaTiVe-]


Procura na net por .NET Reflector. Ele traduz o IL para código C#, VB.NET ou Delphi.

Como as linguagens .NET não são como as outras linguagens que na compilação passam para código de máquina, passa para IL (intermediate language) é possivél reverter o processo e obter código fonte.

Antes que venham falar mal ".NET Microsoft tinha que ser uma m3rda", etc etc etc. JAVA em vez de IL é os bytecodes e tb há programas para isso.

PS. Este programa para .NET até os comentários ele saca

Abraços
X|r|X
=================
Não subscrevam a VIANETWORKS, TVTel ADSL, ASDL.XL, CyclopNet. A VIA aldraba todos os seus clientes iludindo-os c/ velocidades q nunca tem na realidade. Uma ligação 1024/256 (128kB/32kB) na prática é de 6kB/4kB c/ o emule.
xirix
Membro de Ouro
Membro de Ouro
 
Mensagens: 673
Registado: Terça Out 05, 2004 21:07

Mensagempor LuisFilipe » Quinta Out 27, 2005 0:40

r3pek Escreveu:
LuisFilipe Escreveu:
deathseeker25 Escreveu:Como dizes não existe tal tipo de programas.
Claro que existem.
Hás de me dizer onde (para VB)? Conheço software que consegue fazer qq coisa mas para C, mas o binário (.exe) não pode ser muito complicado e é _muito_ bem pago!!
É curioso como alguém pode dizer que não existe algo de tão simples como utilizar um conjunto 'conhecido' de regras e aplica-las ao contrário. Ora verifica lá isto Decompiler Round-Up, Regenerating Your Code

r3pek Escreveu:
LuisFilipe Escreveu:Por ex: tendo uma linguagem C -> OBJ -> EXE -> Assembly (ou OBJ) -> C. Agora é só comparar com o original.

Visto que o Basic é interpretado ou précompilado não existe a passagem a código máquina, existem sim protecções ao código (ténues) e alguma optimização.
Assim: BASIC -> pseudocódigo -> encapsulamento -> EXE -> desencapsulamento -> pseudocódigo -> BASIC
Onde é k isto é verdade?! Um processador não sabe executar mais nd a nao ser Assembler (ou mais baixo ainda, opcodes). Quer a linguagem seja interpretada ou compilada, desque que tenha um binário (.exe), este vai ter sempre o código assembler corresponde a _toda_ a aplicação compilada!
O objectivo é recuperar o código do programa e não o código que suporta o código do programa. Não faz sentido neste caso reverter o código de criação de janelas por exemplo, esse faz parte do Windows e é apenas chamado pelo programa.

Podes ter um 'Hello world' em C com uma dezena de K's e o mesmo 'Hello world' em VB com seis centenas de K's ora se o resultado final é o mesmo porque é que o VB tem tanto código ? É da linguagem ou do encapsulamento.

O primeiro VB a sair era segundo me lembro era interpretado. A possibilidade de criar um EXE (muito prático para distribuir) não passava de encapsular o código num ambiente de execução próprio. Daí o tamanho brutal dos programas executáveis aos quais ainda era somado o tamanho do VBRUNxxx.DLL. (comparativamente ao resultado 'Hello world')

Quanto ao BASIC ser interpretado e o C ser compilado parecem ser dois erros quando se fala de .NET framework.
LuisFilipe
Membro Diamante
Membro Diamante
 
Mensagens: 1270
Registado: Domingo Set 04, 2005 22:12

Mensagempor r3pek » Quinta Out 27, 2005 14:19

LuisFilipe Escreveu:
r3pek Escreveu:
LuisFilipe Escreveu:
deathseeker25 Escreveu:Como dizes não existe tal tipo de programas.
Claro que existem.
Hás de me dizer onde (para VB)? Conheço software que consegue fazer qq coisa mas para C, mas o binário (.exe) não pode ser muito complicado e é _muito_ bem pago!!
É curioso como alguém pode dizer que não existe algo de tão simples como utilizar um conjunto 'conhecido' de regras e aplica-las ao contrário. Ora verifica lá isto Decompiler Round-Up, Regenerating Your Code

1º que nd, não é assim nao simples converter um 10/15 instruções assembler para um if em C/VB/java/whatever. Ha muitas considerações a ter em conta e nunca se vai ter um resultado igual ao original (nomes de variaveis eskece). A unica coisa que um gajo tira disso é a lógica... (o que normalmente é o k se ker)

LuisFilipe Escreveu:
r3pek Escreveu:
LuisFilipe Escreveu:Por ex: tendo uma linguagem C -> OBJ -> EXE -> Assembly (ou OBJ) -> C. Agora é só comparar com o original.

Visto que o Basic é interpretado ou précompilado não existe a passagem a código máquina, existem sim protecções ao código (ténues) e alguma optimização.
Assim: BASIC -> pseudocódigo -> encapsulamento -> EXE -> desencapsulamento -> pseudocódigo -> BASIC
Onde é k isto é verdade?! Um processador não sabe executar mais nd a nao ser Assembler (ou mais baixo ainda, opcodes). Quer a linguagem seja interpretada ou compilada, desque que tenha um binário (.exe), este vai ter sempre o código assembler corresponde a _toda_ a aplicação compilada!
O objectivo é recuperar o código do programa e não o código que suporta o código do programa. Não faz sentido neste caso reverter o código de criação de janelas por exemplo, esse faz parte do Windows e é apenas chamado pelo programa.

Podes ter um 'Hello world' em C com uma dezena de K's e o mesmo 'Hello world' em VB com seis centenas de K's ora se o resultado final é o mesmo porque é que o VB tem tanto código ? É da linguagem ou do encapsulamento.

O primeiro VB a sair era segundo me lembro era interpretado. A possibilidade de criar um EXE (muito prático para distribuir) não passava de encapsular o código num ambiente de execução próprio. Daí o tamanho brutal dos programas executáveis aos quais ainda era somado o tamanho do VBRUNxxx.DLL. (comparativamente ao resultado 'Hello world')

Quanto ao BASIC ser interpretado e o C ser compilado parecem ser dois erros quando se fala de .NET framework.

O código que gera as janelas, cm tu dizes, não é um encapsulamento para o codigo k tu escreveste. Esse codigo é todo gerado, compilado, linkado (com as dll's e afins) e por fim gerado o executavel com esse codigo. Ele não funciona meramente como uma maneira de encapsular o código... ele _é_ o código. A unica coisa que as linguagens "visuais" fazem é abreviar a criação desse código. Tu não tens que o escrever, mas ele é gerado e posto no .exe da mesma maneira que todo o código k tu escreveste.
Gentoo Developer
(kernel/amd64/mobile-phone)
r3pek
Membro de Prata
Membro de Prata
 
Mensagens: 100
Registado: Quarta Mar 03, 2004 13:22

Mensagempor xirix » Quinta Out 27, 2005 15:39

Pessoal não comecem em discussões em off-topic. Para .NET e JAVA existem programas desse tipo muito eficientes (em .NET saca até os comentários do código, JAVA não sei). Para outras linguagens que não se baseem em bytecodes/IL, etc é mais dificil, mas não foi isso que o creative perguntou né pessoal???


Abraços
X|r|X
=================
Não subscrevam a VIANETWORKS, TVTel ADSL, ASDL.XL, CyclopNet. A VIA aldraba todos os seus clientes iludindo-os c/ velocidades q nunca tem na realidade. Uma ligação 1024/256 (128kB/32kB) na prática é de 6kB/4kB c/ o emule.
xirix
Membro de Ouro
Membro de Ouro
 
Mensagens: 673
Registado: Terça Out 05, 2004 21:07


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 2 visitantes

cron