Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#5061
Scripting / Re: Batch, ¿Software libre?
3 Junio 2015, 17:15 PM
Cita de: noaptebuna en  2 Junio 2015, 17:03 PMhay tantos expertos que lo califican com. virus(perteneciendo a los malwares) como expertos expertos que lo niegan.

Yo personalmente si lo califico de virus, dependiendo de si lo sabes programar bien.

He leido y releido tantos autores que lo defienden como virus, y he aprendido hacer ahi desde cosas sencillas como bucles que no dejen de abrirte pestañas programas paginas web o la misma disketera del pc automaticamente, borrar todo sin perdir permiso al usuario y tantas cosas asi basicas, como cosas mas avanzadas como crear gusanos en batch. En resumen, con batch puedes alterar el normal funcionamiento del ordenador, cualidad que tiene todo virus segun wikipedia.

No te ofendas, pero todo eso que has leido proviene de Lammers, o gente a la que Microsoft les paga, no se jaja.

Te lo comento por experiencia en Batch:
[Batch] Virulator 1.0c - By Elektro

A duras penas Batch se puede considerar cómo un lenguaje de programación, ya que es una herramienta muy limitada, según Microsoft es una herramienta diseñada y destinada a cumplir tareas básicas del sistema, y el desarrollo de un virus no es una tarea básico. Batch es un "lenguaje" de procesamiento por lotes, ¿entiendes lo que es eso?, ni siquiera es un lenguaje orientado a objetos y con el que poder manipular la API del SO, ya me dirás tú que cosas vas a hacer con Batch, cosas básicas, muy básicas y además mal hechas, por sus limitaciones siempre resulta mucho más tedioso un código desarrollado en Batch que en cualquier otro lenguaje de hoy en día, por ende, debido a su naturaleza limitada, Batch ni siquira tiene capacidad para definir un Array, ni manejar Sockets, ni nada que realmente sea útil.

Saber programar bien no excluye la realidad que acabo de comentar, Batch es inutil, puedes alterar el comportamiento del PC ...claro, los brazos y las piernas de Batch precisamente son las aplicaciones externas de Microsoft que están instaladas en el sistema (ping.exe, attrib.exe, xcopy.exe, y cientos de aplicaciones más), los mal llamados "comandos de Batch" cómo si formasen parte del lenguaje, pero no, son comandos EXTERNOS (exceptuando los comandos internos, como del, echo, etc), y esa es la especie de "framework" de Batch la cual sin ello sería una herramienta más inutil todavía, un lenguaje de verdad no necesita apoyarse en aplicaciones externas para elaborar la mayoria de las tareas que necesites llevar a cabo.

Por no decir que carece de cualquier tipo de sistema de depuración, y es imposible implementar algunas características de los Virus cómo la persistencia o la propagación (a menos que utilices herramientas EXTERNAS para ello), de verdad, cualquier persona que realmente desarrolle Virus se ofendería por decir que con Batch se puede desarrollar un virus.

Si te interesa la idea de desarrollar una bomba lógica en Batch me parece estupendo, aun debes practicar y manejar otros lenguajes para entender conceptos y sus diferencias, te vendría bien,
pero deja de pensar que en Batch puedes hacer virus y deja de leer a esos "expertos", por qué te llevará por el camibo equivocado, el del lammerismo.

Aquí en el foro, en la sección de diseño y análisis de Malware tienes expertos de verdad, personas que desarrollan RATS, Crypters, y quizás Virus tipo el virus de la policia (xD), te sugiero que busques la opinión de ellos respecto a este tema para despejarte todas tus dudas.

Saludos!
#5062
Cita de: simorg en  1 Junio 2015, 20:44 PM
LLevas un dia en el Foro y yá vienes diciendo que tenemos demasiadas Reglas,

XDDDD

Creo que ya se te dijo todo y no tiene sentido que este tema siga abierto, amigo... compórtate sin llamar demasiado la atención, aquí se viene a aprender, divertirse, ayudar... pero siempre respetando las reglas.

Saludos!
#5063
¿Por qué tienes pegas con almacenar la configuración en un archivo?, una solución sería hacer lo que te comentó @nolasco281, pero usando la infraestructura Settings para que la aletoriedad se produzca una única vez por instalación.

Ej:
Código (vbnet) [Seleccionar]
If Not My.Settings.IsRandomized Then
  My.Settings.RandomValue = ' Generar valor aleatorio
  My.Settings.IsRandomized = True
End If

lbl.text = My.Settings.RandomValue.ToString


Teniendo en cuenta que esos datos se guardan en un archivo de configuración pero es la solución menos compleja, de lo contrario las opciones que te quedan son llamar a la app mediante argumentos para pasarle un número específico (para esto debes controlar los argumentos desde la app, e iniciar la app desde la consola o un acceso directo para pasarle dicho número), automatizar la compilación de la app en tiempo de ejecución desde el instalador (editando previamente "X" valor estático del código fuente antes de compilar, para aplicar dicha aletoriedad por instalación, claro está), o automatizar el parcheo de "X" bytes de la app compilada para modificar el valor, para esto primero debes localizar los bytes que hacen referencia a ese valor "aleatorio" en un editor hexadecimal o como veas.

En realidad ninguna de esas alternativas es dificil mientras sepas cómo hacerlo.

Saludos
#5064
Una Class para administrar un archivo de recursos de .Net ( file.resx )

Código (vbnet) [Seleccionar]

' ***********************************************************************
' Author   : Elektro
' Modified : 16-March-2015
' ***********************************************************************
' <copyright file="ResXManager.vb" company="Elektro Studios">
'     Copyright (c) Elektro Studios. All rights reserved.
' </copyright>
' ***********************************************************************

#Region " Option Statements "

Option Strict On
Option Explicit On
Option Infer Off

#End Region

#Region " Usage Examples "

'Imports System.IO
'Imports System.Text

'Public Class Form1

'    Private Sub Test() Handles MyBase.Shown

'        Dim resX As New ResXManager(Path.Combine(Application.StartupPath, "MyResources.resx"))
'        With resX

'            ' Create or replace the ResX file.
'            .Create(replace:=True)

'            ' Add a string resource.
'            .AddResource(Of String)("String Resource", "Hello World!", "String Comment")
'            ' Add a bitmap resource.
'            .AddResource(Of Bitmap)("Bitmap Resource", SystemIcons.Information.ToBitmap, "Bitmap Comment")
'            ' Add a binary resource.
'            .AddResource(Of Byte())("Binary Resource", File.ReadAllBytes("C:\file.mp3"), "Binary Comment")

'        End With

'        ' *******************************************************************************************************

'        ' Get the string resource.
'        Dim stringResource As ResXManager.Resource(Of String) =
'            resX.FindResource(Of String)("String Resource", StringComparison.OrdinalIgnoreCase)

'        ' Get the bitmap resource.
'        Dim bitmapResource As ResXManager.Resource(Of Bitmap) =
'            resX.FindResource(Of Bitmap)("Bitmap Resource", StringComparison.OrdinalIgnoreCase)

'        ' Get the binary resource.
'        Dim binaryResource As ResXManager.Resource(Of Byte()) =
'            resX.FindResource(Of Byte())("Binary Resource", StringComparison.OrdinalIgnoreCase)

'        ' *******************************************************************************************************

'        ' Get the string data.
'        Dim stringData As String = stringResource.Data

'        ' Get the bitmap data.
'        Dim bitmapData As Bitmap = bitmapResource.Data

'        ' Get the binary data.
'        Dim binaryData As Byte() = binaryResource.Data

'        ' *******************************************************************************************************

'        ' Get all the resources at once.
'        Dim resources As IEnumerable(Of ResXManager.Resource) = resX.Resources

'        ' Get all the resources of specific Type at once.
'        Dim stringResources As IEnumerable(Of ResXManager.Resource(Of String)) = resX.FindResources(Of String)()

'        ' *******************************************************************************************************

'        ' Get all the resource datas at once from Resource collection.
'        Dim resourceDatas As IEnumerable(Of Object) =
'            From res As ResXManager.Resource In resX.Resources
'            Select res.Data

'        ' Get all the resource datas of specific Type at once from Resource collection.
'        Dim stringResourceDatas As IEnumerable(Of String) =
'            From res As ResXManager.Resource In resX.Resources
'            Where res.Type Is GetType(String)
'            Select DirectCast(res.Data, String)

'        ' *******************************************************************************************************

'        ' Treat the string data as you like.
'        MessageBox.Show(stringData, String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information)

'        ' Treat the bitmap data as you like.
'        Me.Icon = Icon.FromHandle(bitmapData.GetHicon)

'        ' Treat the binary data as you like.
'        File.WriteAllBytes("C:\new file.mp3", binaryData)

'        ' *******************************************************************************************************

'        ' Iterate all the resources.
'        For Each res As ResXManager.Resource In resX.Resources

'            Dim sb As New StringBuilder

'            sb.AppendLine(String.Format("Name...: {0}", res.Name))
'            sb.AppendLine(String.Format("Comment: {0}", res.Comment))
'            sb.AppendLine(String.Format("Type...: {0}", res.Type.ToString))
'            sb.AppendLine(String.Format("Data...: {0}", res.Data.ToString))

'            MsgBox(sb.ToString)
'        Next

'        ' Iterate all the resources of specific Type.
'        For Each res As ResXManager.Resource(Of String) In resX.FindResources(Of String)()

'            Dim sb As New StringBuilder

'            sb.AppendLine(String.Format("Name...: {0}", res.Name))
'            sb.AppendLine(String.Format("Comment: {0}", res.Comment))
'            sb.AppendLine(String.Format("Type...: {0}", res.Type.ToString))
'            sb.AppendLine(String.Format("Data...: {0}", res.Data.ToString))

'            MsgBox(sb.ToString)
'        Next

'        ' *******************************************************************************************************

'        ' Remove a resource.
'        resX.RemoveResource("Binary Resource")

'        '  GC.Collect()

'    End Sub

'End Class

#End Region

#Region " Imports "

Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.IO
Imports System.Resources

#End Region

''' <summary>
''' Manages a .Net managed resource file.
''' </summary>
Public NotInheritable Class ResXManager

#Region " Properties "

    ''' <summary>
    ''' Gets the .Net managed resource file path.
    ''' </summary>
    ''' <value>The .Net managed resource filepath.</value>
    Public ReadOnly Property FilePath As String
        Get
            Return Me.filePath1
        End Get
    End Property
    ''' <summary>
    ''' The .Net managed resource file path.
    ''' </summary>
    Private ReadOnly filePath1 As String

    ''' <summary>
    ''' Gets the resources contained in the .Net managed resource file.
    ''' </summary>
    ''' <value>The resources.</value>
    Public ReadOnly Property Resources As IEnumerable(Of Resource)
        Get
            Return GetResources()
        End Get
    End Property

#End Region

#Region " Types "

#Region " Resource "

    ''' <summary>
    ''' Defines a resource of a .Net managed resource file.
    ''' </summary>
    <Serializable>
    Public NotInheritable Class Resource

#Region " Properties "

        ''' <summary>
        ''' Gets the resource name.
        ''' </summary>
        ''' <value>The resource name.</value>
        Public ReadOnly Property Name As String
            Get
                Return Me.name1
            End Get
        End Property
        Private ReadOnly name1 As String

        ''' <summary>
        ''' Gets the resource data.
        ''' </summary>
        ''' <value>The resource data.</value>
        Public ReadOnly Property Data As Object
            Get
                Return Me.data1
            End Get
        End Property
        Private ReadOnly data1 As Object

        ''' <summary>
        ''' Gets the resource type.
        ''' </summary>
        ''' <value>The resource type.</value>
        Public ReadOnly Property Type As Type
            Get
                Return Data.GetType
            End Get
        End Property

        ''' <summary>
        ''' Gets the resource comment.
        ''' </summary>
        ''' <value>The resource comment.</value>
        Public ReadOnly Property Comment As String
            Get
                Return comment1
            End Get
        End Property
        Private ReadOnly comment1 As String

        ''' <summary>
        ''' Represents a <see cref="Resource"/> instance that is <c>Nothing</c>.
        ''' </summary>
        ''' <value><c>Nothing</c></value>
        <EditorBrowsable(EditorBrowsableState.Advanced)>
        Public Shared ReadOnly Property Empty As Resource
            Get
                Return Nothing
            End Get
        End Property

#End Region

#Region " Constructors "

        ''' <summary>
        ''' Initializes a new instance of the <see cref="Resource"/> class.
        ''' </summary>
        ''' <param name="name">The resource name.</param>
        ''' <param name="data">The resource data.</param>
        ''' <param name="comment">The resource comment.</param>
        Public Sub New(ByVal name As String,
                       ByVal data As Object,
                       ByVal comment As String)

            Me.name1 = name
            Me.data1 = data
            Me.comment1 = comment

        End Sub

        ''' <summary>
        ''' Prevents a default instance of the <see cref="Resource"/> class from being created.
        ''' </summary>
        Private Sub New()
        End Sub

#End Region

#Region " Hidden Methods "

        ''' <summary>
        ''' Determines whether the specified System.Object instances are considered equal.
        ''' </summary>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function Equals(ByVal obj As Object) As Boolean
            Return MyBase.Equals(obj)
        End Function

        ''' <summary>
        ''' Serves as a hash function for a particular type.
        ''' </summary>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function GetHashCode() As Integer
            Return MyBase.GetHashCode
        End Function

        ''' <summary>
        ''' Gets the System.Type of the current instance.
        ''' </summary>
        ''' <returns>The exact runtime type of the current instance.</returns>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function [GetType]() As Type
            Return MyBase.GetType
        End Function

        ''' <summary>
        ''' Returns a String that represents the current object.
        ''' </summary>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function ToString() As String
            Return MyBase.ToString
        End Function

#End Region

    End Class

#End Region

#Region " Resource(Of T) "

    ''' <summary>
    ''' Defines a resource of a .Net managed resource file.
    ''' </summary>
    <Serializable>
    Public NotInheritable Class Resource(Of T)

#Region " Properties "

        ''' <summary>
        ''' Gets the resource name.
        ''' </summary>
        ''' <value>The resource name.</value>
        Public ReadOnly Property Name As String
            Get
                Return Me.name1
            End Get
        End Property
        Private ReadOnly name1 As String

        ''' <summary>
        ''' Gets the resource data.
        ''' </summary>
        ''' <value>The resource data.</value>
        Public ReadOnly Property Data As T
            Get
                Return Me.data1
            End Get
        End Property
        Private ReadOnly data1 As T

        ''' <summary>
        ''' Gets the resource type.
        ''' </summary>
        ''' <value>The resource type.</value>
        Public ReadOnly Property Type As Type
            Get
                Return GetType(T)
            End Get
        End Property

        ''' <summary>
        ''' Gets the resource comment.
        ''' </summary>
        ''' <value>The resource comment.</value>
        Public ReadOnly Property Comment As String
            Get
                Return comment1
            End Get
        End Property
        Private ReadOnly comment1 As String

#End Region

#Region " Constructors "

        ''' <summary>
        ''' Initializes a new instance of the <see cref="Resource(Of T)"/> class.
        ''' </summary>
        ''' <param name="name">The resource name.</param>
        ''' <param name="data">The resource data.</param>
        ''' <param name="comment">The resource comment.</param>
        Public Sub New(ByVal name As String,
                       ByVal data As T,
                       ByVal comment As String)

            Me.name1 = name
            Me.data1 = data
            Me.comment1 = comment

        End Sub

        ''' <summary>
        ''' Prevents a default instance of the <see cref="Resource(Of T)"/> class from being created.
        ''' </summary>
        Private Sub New()
        End Sub

#End Region

#Region " Hidden Methods "

        ''' <summary>
        ''' Determines whether the specified System.Object instances are considered equal.
        ''' </summary>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function Equals(ByVal obj As Object) As Boolean
            Return MyBase.Equals(obj)
        End Function

        ''' <summary>
        ''' Serves as a hash function for a particular type.
        ''' </summary>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function GetHashCode() As Integer
            Return MyBase.GetHashCode
        End Function

        ''' <summary>
        ''' Gets the System.Type of the current instance.
        ''' </summary>
        ''' <returns>The exact runtime type of the current instance.</returns>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function [GetType]() As Type
            Return MyBase.GetType
        End Function

        ''' <summary>
        ''' Returns a String that represents the current object.
        ''' </summary>
        <EditorBrowsable(EditorBrowsableState.Never)>
        Public Shadows Function ToString() As String
            Return MyBase.ToString
        End Function

#End Region

    End Class

#End Region

#End Region

#Region " Constructors "

    ''' <summary>
    ''' Initializes a new instance of the <see cref="ResXManager"/> class.
    ''' </summary>
    ''' <param name="resxFilePath">The .Net managed resource filepath.</param>
    Public Sub New(ByVal resxFilePath As String)
        Me.filePath1 = resxFilePath
    End Sub

    ''' <summary>
    ''' Prevents a default instance of the <see cref="ResXManager"/> class from being created.
    ''' </summary>
    Private Sub New()
    End Sub

#End Region

#Region " Public Methods "

    ''' <summary>
    ''' Creates the .Net managed resource file.
    ''' </summary>
    ''' <param name="replace">if set to <c>true</c>, replaces any existent file.</param>
    ''' <exception cref="System.Exception"></exception>
    Public Sub Create(Optional ByVal replace As Boolean = False)

        If Not replace AndAlso File.Exists(Me.filePath1) Then
            Throw New Exception(String.Format("Resource file already exists: {0}", Me.filePath1))
            Exit Sub
        End If

        Dim resXWritter As ResXResourceWriter = Nothing
        Try
            resXWritter = New ResXResourceWriter(Me.filePath1)
            Using resXWritter
                resXWritter.Generate()
            End Using

        Catch ex As Exception
            Throw

        Finally
            If resXWritter IsNot Nothing Then
                resXWritter.Close()
            End If

        End Try

    End Sub

    ''' <summary>
    ''' Adds a resource into the .Net managed resource file.
    ''' </summary>
    ''' <param name="name">The resource name.</param>
    ''' <param name="data">The resource data.</param>
    ''' <param name="comment">The resource comment.</param>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">A resource with the same name already exists in the table.;name</exception>
    Public Sub AddResource(ByVal name As String,
                           ByVal data As Object,
                           Optional ByVal comment As String = Nothing)

        Me.AddResource(replace:=False, name:=name, data:=data, comment:=comment)

    End Sub

    ''' <summary>
    ''' Adds a specified resource of the specified type into the .Net managed resource file.
    ''' </summary>
    ''' <typeparam name="T"></typeparam>
    ''' <param name="name">The resource name.</param>
    ''' <param name="data">The resource data.</param>
    ''' <param name="comment">The resource comment.</param>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">A resource with the same name already exists in the table.;name</exception>
    Public Sub AddResource(Of T)(ByVal name As String,
                                 ByVal data As T,
                                 Optional ByVal comment As String = Nothing)

        Me.AddResource(replace:=False, name:=name, data:=data, comment:=comment)

    End Sub

    ''' <summary>
    ''' Replaces a resource by the specified name inside the .Net managed resource file.
    ''' </summary>
    ''' <param name="name">The resource name.</param>
    ''' <param name="data">The resource data.</param>
    ''' <param name="comment">The resource comment.</param>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">A resource with the same name already exists in the table.;name</exception>
    Public Sub ReplaceResource(ByVal name As String,
                               ByVal data As Object,
                               Optional ByVal comment As String = Nothing)

        Me.AddResource(replace:=True, name:=name, data:=data, comment:=comment)

    End Sub

    ''' <summary>
    ''' Replaces a resource by the specified name of the specified type inside the .Net managed resource file.
    ''' </summary>
    ''' <typeparam name="T"></typeparam>
    ''' <param name="name">The resource name.</param>
    ''' <param name="data">The resource data.</param>
    ''' <param name="comment">The resource comment.</param>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">A resource with the same name already exists in the table.;name</exception>
    Public Sub ReplaceResource(Of T)(ByVal name As String,
                                     ByVal data As T,
                                     Optional ByVal comment As String = Nothing)

        Me.AddResource(replace:=True, name:=name, data:=data, comment:=comment)

    End Sub

    ''' <summary>
    ''' Finds a resource by the specified name of specified type inside the .Net managed resource file.
    ''' </summary>
    ''' <typeparam name="T"></typeparam>
    ''' <param name="name">The resource name.</param>
    ''' <param name="stringComparison">The <see cref="StringComparison"/> to compare the resource name.</param>
    ''' <returns>The resource.</returns>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">Resource with the specified name is not found.;name</exception>
    ''' <exception cref="System.ArgumentException">The specified Type differs from the resource Type.;T</exception>
    Public Function FindResource(Of T)(ByVal name As String,
                                       Optional ByVal stringComparison As StringComparison =
                                                      StringComparison.OrdinalIgnoreCase) As Resource(Of T)

        If Not File.Exists(Me.filePath1) Then
            Throw New FileNotFoundException("Resource file not found.", Me.filePath1)
            Exit Function
        End If

        ' Read the ResX file.
        Dim resX As ResXResourceReader = Nothing
        Dim res As Resource(Of T) = Nothing
        Try
            resX = New ResXResourceReader(Me.filePath1) With {.UseResXDataNodes = True}
            Using resX

                For Each entry As DictionaryEntry In resX

                    If entry.Key.ToString.Equals(name, stringComparison) Then

                        Dim node As ResXDataNode = CType(entry.Value, ResXDataNode)

                        res = New Resource(Of T)(name:=node.Name,
                                                 data:=DirectCast(node.GetValue(DirectCast(Nothing, ITypeResolutionService)), T),
                                                 comment:=node.Comment)
                        Exit For

                    End If

                Next entry

            End Using ' resX

            Return res

        Catch ex As Exception
            Throw

        Finally
            If resX IsNot Nothing Then
                resX.Close()
            End If

        End Try

    End Function

    ''' <summary>
    ''' Finds a resource by the specified name inside the .Net managed resource file.
    ''' </summary>
    ''' <param name="name">The resource name.</param>
    ''' <param name="stringComparison">The <see cref="StringComparison"/> to compare the resource name.</param>
    ''' <returns>The resource.</returns>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">Resource with the specified name is not found.;name</exception>
    ''' <exception cref="System.ArgumentException">The specified Type differs from the resource Type.;T</exception>
    Public Function FindResource(ByVal name As String,
                                 Optional ByVal stringComparison As StringComparison =
                                                StringComparison.OrdinalIgnoreCase) As Resource

        If Not File.Exists(Me.filePath1) Then
            Throw New FileNotFoundException("Resource file not found.", Me.filePath1)
            Exit Function
        End If

        ' Read the ResX file.
        Dim resX As ResXResourceReader = Nothing
        Dim res As Resource = Nothing
        Try
            resX = New ResXResourceReader(Me.filePath1) With {.UseResXDataNodes = True}
            Using resX

                For Each entry As DictionaryEntry In resX

                    If entry.Key.ToString.Equals(name, stringComparison) Then

                        Dim node As ResXDataNode = CType(entry.Value, ResXDataNode)

                        res = New Resource(name:=node.Name,
                                           data:=node.GetValue(DirectCast(Nothing, ITypeResolutionService)),
                                           comment:=node.Comment)
                        Exit For

                    End If

                Next entry

            End Using ' resX

            Return res

        Catch ex As Exception
            Throw

        Finally
            If resX IsNot Nothing Then
                resX.Close()
            End If

        End Try

    End Function

    ''' <summary>
    ''' Finds the resources of the specified type inside the .Net managed resource file.
    ''' </summary>
    ''' <typeparam name="T"></typeparam>
    ''' <returns>The resource.</returns>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">Resource with the specified name is not found.;name</exception>
    ''' <exception cref="System.ArgumentException">The specified Type differs from the resource Type.;T</exception>
    Public Iterator Function FindResources(Of T)() As IEnumerable(Of Resource(Of T))

        If Not File.Exists(Me.filePath1) Then
            Throw New FileNotFoundException("Resource file not found.", Me.filePath1)
            Exit Function
        End If

        ' Read the ResX file.
        Dim resX As ResXResourceReader = Nothing
        Try
            resX = New ResXResourceReader(Me.filePath1) With {.UseResXDataNodes = True}
            Using resX

                For Each entry As DictionaryEntry In resX

                    Dim node As ResXDataNode = CType(entry.Value, ResXDataNode)

                    If node.GetValue(DirectCast(Nothing, ITypeResolutionService)).GetType Is GetType(T) Then

                        Yield New Resource(Of T)(name:=node.Name,
                                           data:=DirectCast(node.GetValue(DirectCast(Nothing, ITypeResolutionService)), T),
                                           comment:=node.Comment)

                    End If

                Next entry

            End Using ' resX

        Catch ex As Exception
            Throw

        Finally
            If resX IsNot Nothing Then
                resX.Close()
            End If

        End Try

    End Function

    ''' <summary>
    ''' Removes a resource by the specified name from the .Net managed resource file.
    ''' </summary>
    ''' <param name="name">The resource name.</param>
    ''' <param name="stringComparison">The <see cref="StringComparison"/> to compare the resource name.</param>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">Any resource found matching the specified name.;name</exception>
    Public Sub RemoveResource(ByVal name As String,
                              Optional ByVal stringComparison As StringComparison =
                                             StringComparison.OrdinalIgnoreCase)

        If Not File.Exists(Me.filePath1) Then
            Throw New FileNotFoundException("Resource file not found.", Me.filePath1)
            Exit Sub
        End If

        If Me.FindResource(name, stringComparison) Is Nothing Then
            Throw New ArgumentException("Any resource found matching the specified name.", "name")
            Exit Sub
        End If

        Dim resources As New List(Of ResXDataNode)
        Dim resX As ResXResourceReader = Nothing
        Dim resXWritter As ResXResourceWriter = Nothing

        Try
            resX = New ResXResourceReader(Me.filePath1) With {.UseResXDataNodes = True}
            Using resX

                For Each entry As DictionaryEntry In resX

                    If Not entry.Key.ToString.Equals(name, stringComparison) Then

                        Dim node As ResXDataNode = CType(entry.Value, ResXDataNode)
                        resources.Add(New ResXDataNode(name:=node.Name, value:=node.GetValue(DirectCast(Nothing, ITypeResolutionService))) With {.Comment = node.Comment})

                    End If

                Next entry

            End Using

            ' Add the resource in the ResX file.
            ' Note: This will replace the current ResX file.
            resXWritter = New ResXResourceWriter(Me.filePath1)
            Using resXWritter

                ' Add the retrieved resources into the ResX file.
                If resources IsNot Nothing Then
                    For Each resourceItem As ResXDataNode In resources
                        resXWritter.AddResource(resourceItem)
                    Next resourceItem
                End If

                resXWritter.Generate()

            End Using ' resXWritter

        Catch ex As Exception
            Throw

        Finally
            If resX IsNot Nothing Then
                resX.Close()
            End If

            If resXWritter IsNot Nothing Then
                resXWritter.Close()
            End If

            resources.Clear()

        End Try

    End Sub

#End Region

#Region " Private Methods "

    ''' <summary>
    ''' Adds or replaces a resource into the .Net managed resource file.
    ''' </summary>
    ''' <param name="replace">if set to <c>true</c>, the resource will be replaced.</param>
    ''' <param name="name">The resource name.</param>
    ''' <param name="data">The resource data.</param>
    ''' <param name="comment">The resource comment.</param>
    ''' <exception cref="System.IO.FileNotFoundException">Resource file not found.</exception>
    ''' <exception cref="System.ArgumentException">A resource with the same name already exists in the table.;name</exception>
    Private Sub AddResource(ByVal replace As Boolean,
                            ByVal name As String,
                            ByVal data As Object,
                            ByVal comment As String)

        If Not File.Exists(Me.filePath1) Then
            Throw New FileNotFoundException("Resource file not found.", Me.filePath1)
            Exit Sub
        End If

        Dim resources As New List(Of ResXDataNode)
        Dim resX As ResXResourceReader = Nothing
        Dim resXWritter As ResXResourceWriter = Nothing

        Try
            resX = New ResXResourceReader(Me.filePath1) With {.UseResXDataNodes = True}
            Using resX

                For Each entry As DictionaryEntry In resX

                    If Not replace AndAlso entry.Key.ToString.Equals(name, StringComparison.OrdinalIgnoreCase) Then
                        Throw New ArgumentException("A resource with the same name already exists in the table.", "name")

                    Else
                        Dim node As ResXDataNode = CType(entry.Value, ResXDataNode)
                        resources.Add(New ResXDataNode(name:=node.Name, value:=node.GetValue(DirectCast(Nothing, ITypeResolutionService))) With {.Comment = node.Comment})

                    End If

                Next entry

            End Using

            ' Add the resource in the ResX file.
            ' Note: This will replace the current ResX file.
            resXWritter = New ResXResourceWriter(Me.filePath1)
            Using resXWritter

                ' Add the retrieved resources into the ResX file.
                If resources IsNot Nothing Then
                    For Each resourceItem As ResXDataNode In resources
                        resXWritter.AddResource(resourceItem)
                    Next resourceItem
                End If

                ' Add the specified resource into the ResX file.
                resXWritter.AddResource(New ResXDataNode(name, data) With {.Name = name, .Comment = comment})
                resXWritter.Generate()

            End Using ' resXWritter

        Catch ex As Exception
            Throw

        Finally
            If resX IsNot Nothing Then
                resX.Close()
            End If

            If resXWritter IsNot Nothing Then
                resXWritter.Close()
            End If

            resources.Clear()

        End Try

    End Sub

    ''' <summary>
    ''' Gets all the resources contained in the .Net managed resource file.
    ''' </summary>
    ''' <returns>IEnumerable(Of Resource).</returns>
    Private Iterator Function GetResources() As IEnumerable(Of Resource)

        ' Read the ResX file.
        Using resX As New Resources.ResXResourceReader(Me.filePath1) With {.UseResXDataNodes = True}

            For Each entry As DictionaryEntry In resX

                Dim node As ResXDataNode = CType(entry.Value, ResXDataNode)

                Yield New Resource(name:=node.Name,
                                   data:=node.GetValue(DirectCast(Nothing, ITypeResolutionService)),
                                   comment:=node.Comment)

            Next entry

        End Using ' resX

    End Function

#End Region

#Region " Hidden Methods "

    ''' <summary>
    ''' Determines whether the specified System.Object instances are considered equal.
    ''' </summary>
    <EditorBrowsable(EditorBrowsableState.Never)>
    Public Shadows Function Equals(ByVal obj As Object) As Boolean
        Return MyBase.Equals(obj)
    End Function

    ''' <summary>
    ''' Serves as a hash function for a particular type.
    ''' </summary>
    <EditorBrowsable(EditorBrowsableState.Never)>
    Public Shadows Function GetHashCode() As Integer
        Return MyBase.GetHashCode
    End Function

    ''' <summary>
    ''' Gets the System.Type of the current instance.
    ''' </summary>
    ''' <returns>The exact runtime type of the current instance.</returns>
    <EditorBrowsable(EditorBrowsableState.Never)>
    Public Shadows Function [GetType]() As Type
        Return MyBase.GetType
    End Function

    ''' <summary>
    ''' Returns a String that represents the current object.
    ''' </summary>
    <EditorBrowsable(EditorBrowsableState.Never)>
    Public Shadows Function ToString() As String
        Return MyBase.ToString
    End Function

#End Region

End Class
#5065
Scripting / Re: Batch, ¿Software libre?
1 Junio 2015, 13:11 PM
¿Qué tendrá que ver Batch, con el Malware?, ¿Malware desarrollado en Batch... Bombas lógicas?, Batch nada tiene que ver con los virus de verdad. ( Intenta publicar futuras dudas sobre Scripting en la sección apropiada. )

Batch con el software libre tampoco tiene nada que ver, de hecho, Batch no tiene que ver con nada, es un lenguaje aislado de los demás (el patito feo), una herramienta manca e inutil para cualquier propósito del programador corriente.

Si empaquetas un script del que tú eres el autor (ya sea .bat, .py, .rb, o el que sea, un archivo de texto plano) y distribuyes ese .exe, estás ligado a la licencia + los términos y condiciones del software que utilizaste para empaquetar, si es de licencia libre, pues estás distribuyendo software libre.

Para determinar en que lenguaje ha sido desarrollado un binario puedes analizar las secciones del formato PE (Portable Executable), hay herramientas cómo PeID y TridNet que llevan a cabo esta tarea con una base de firmas para disminuir el porcentaje de error de la comprobación.

Saludos!
#5066
Es extraño que la instalación de Windows te de ese error, ya que el mínimo real de espacio requerido por la instalación son alrededor de 12 GB que es lo que ocupa el sistema de archivos de Windows en su totalidad (dependiendo de si instalas o no actualizaciones, y de si estás utilizando una versión modificada/capada de Windows),
el mínimo recomendado por Microsoft para Windows 7 de 32 Bits son 16 GB, y para Windows 7 de 64 Bits son 20 GB, por lo tanto no debería darte problemas con una partición de 30 GB cómo indicas.

Windows 7 system requirements

Yo, cuando instalo una máquina Virtual con Windows 7/8.1 x64, se instala perfectamente con tan solo 20 GB de espacio libre,
pero eso en una máquina virtual, para un disco físico es una muy mala idea instalar Windows 7 con solo 30 GB de espacio como estás intentando, ya que un tercio se lo come la instalación de Windows, el otro tercio se lo comen los programas que instales y todos los archivos temporales generados por dichos programas y por los servicios de Windows cómo el Prefetch o los puntos de restauración de sistema, o el pagefile, etc, así que te quedará un tercio o menos de espacio para tus cosas con lo que te vas a sentir muy limitado ...por no decir que en todo momento es recomendable y se precisa entre un 15%-20% de espacio libre para que el S.O vaya fluido al evitar el exceso de fragmentación del sistema de archivos, así que yo te recomendaría que lo instalases cómo te ha comantado @Saberuneko con un mínimo de +60 GB de espacio libre.

Te sugiero utilizar la aplicación Partition Wizard (hay varias con el mismo nombre, me refiero a la de MiniTool) para redimensionar el tamaño de la partición de forma sencilla e intuitiva.

MiniTool Partition Wizard

Saludos!
#5067

Tema reabierto a petición de El_Andaluz.






#5068
Cita de: nolasco281Que es Linq y...?

Introduction to LINQ - MSDN




Cita de: nolasco281 en 31 Mayo 2015, 18:05 PM1. Cuáles son las formas de implementar Linq en vb.net y cómo?

Hay tres formas de utilizar LINQ en .Net.

1. Mediante extensiones.
Código (vbnet) [Seleccionar]
Dim col As IEnumerable(Of Integer) = {3, 3, 3}.Distinct

2. Mediante métodos.
Código (vbnet) [Seleccionar]
Dim col As IEnumerable(Of Integer) = Linq.Enumerable.Distinct(Of Integer)({3, 3, 3})

3. Mediante la sintaxis específica de LINQ/SQL.
Código (vbnet) [Seleccionar]
Dim col As IEnumerable(Of Integer) = From value As Integer In {3, 3, 3} Distinct

Enumerable Methods




Cita de: nolasco281 en 31 Mayo 2015, 18:05 PM2. Ya viene integrado en vb.net por lo que veo si o hay que instalar algo más?

Querrás decir que si viene integrado en .Net framework, no mezcles el lenguaje con el core (la librería de classes de .Net Framework), también se puede usar LINQ desde C#.

Lo único que necesitas para poder usar LINQ es desarrollar la app bajo .Net Framework 3.5 o superior, ya que esta tecnología fue implementada en la versión 3.5 y aparece a partir de dicha versión, por ende, en versiones anteriores no existe LINQ, si tienes pensado hacer alguna app en .Net Framework 2.0 por temas de compatibilidad entonces olvida LINQ.




Cita de: nolasco281 en 31 Mayo 2015, 18:05 PM3. Con referencia a la primer pregunta es conveniente utilizarlo trae alguna ventaja en el uso de VB.net?

Trae sus ventajas y sus desventajas.

( En internet o MSDN puedes informarte sobre muchos más detalles que seguramente serán más técnicistas. )

• Ventajas:

· La mayor ventaja es que optimiza el tiempo de desarrollo, el rendimiento del programador ...simplificando el código, ya que LINQ hace posible resolver problemas complejos en una serie de cortos métodos comprensibles.

· La IDE de VisualStudio provee Auto-completado e IntelliSense para la sintaxis LINQ, por lo tanto es secillo diseñar una consulta eficiente en poco tiempo, es decir, sabiendo lo que haces en cada momento gracias a la documentación y las descripciones de cada método en tiempo de diseño.



· La inicialización vaga (Lazy) de una colección Enumerable, que evita la ejecución inmediata de la consulta hasta que iteres los datos.

· El uso de expresiones Lambda en las extensiones de LINQ, siempre es más cómodo y más simplificado que si hubiese que usar delegados creando funciones adicionales solo para "X" consulta.



· La relación de types se resuelve automáticamente, pro LINQ es type safe y esto evita errores comunes.



· La depuración (debugging) por parte del programador a una query siempre es más sencillo que tener que depurar un procedimiento lleno de Fors entre anidaciones de condicionales y de su p*** madre.


• Desventajas:

· Con LINQ tienes que iterar todos los datos, mantener los datos que quieres, y deshechar el resto, manejando así más datos de los los que realmente serían necesarios, causando una disminuición de rendimiento, pero esta diferencia de rendimiento entre el uso de un FOR y LINQ no se nota a menos que manejes muchos, muchos datos. Yo personalmente uso LINQ siempre que surge la oportunidad.

· Al programador inexperto que se está iniciando en .Net, el excesivo uso de LINQ puede acostumbrarle a malos hábitos de programación, me explico, si alguien quiere aprender las bases de programación para resolver problemas entonces LINQ no es la solución, ya que LINQ es una especie de "dámelo todo hecho en dos lineas de código, ¡gracias!", y si no entiendes la mécanica de LINQ, entonces no has aprendido nada, pero por otro lado, opino que si LINQ existe es para usarlo, usar LINQ es muy cómodo o vago pero la base del buen programador es saber desenvolverse en el entorno utilizando las herramientas que el lenguaje te ofrezca para resolver problemas, y LINQ es una de esas herramientas que están ahí.




Cita de: nolasco281 en 31 Mayo 2015, 18:05 PM4. Estas consultas se pueden hacer a cualquier tipo de control seria a cualquier conjunto de datos que tenga en vb.net?

Puedes utilizar los métodos de LINQ con cualquier Class que implemente la interfáz IEnumerable, que suele ser cualquier Type genérico.

LINQ to Objects




Cita de: nolasco281 en 31 Mayo 2015, 18:05 PM5. La última lo recomendarían usar?

Teniendo en cuenta las ventajas de LINQ, personalmente Sí, usar LINQ siempre es un beneficio a menos que manejes muchos datos.

Saludos
#5069
Foro Libre / Re: Ganar Dinero en internet?
31 Mayo 2015, 09:28 AM
El tiempo que he invertido no ha sido solo para explicarte a ti, sino para todos los que le den por pensar que el comentario de scott era cierto cómo pareciste pensarlo tú al agradecer dicho consejo de los auto-clicks, entenderás que cite tu mensaje y te hayas dado por aludido.
No pongo en duda la buena intención de scott, solo afirmo que ese tipo de consejo es una equivocación.

Ahora, que si te parece mal demostrar la realidad para evitar que tanto tú cómo otras personas puedan cometer un error, pues vale.

Saludos!
#5070
Foro Libre / Re: Ganar Dinero en internet?
31 Mayo 2015, 09:12 AM
Cita de: gecko1 en 31 Mayo 2015, 08:31 AMGracias por el consejito @scott_, ahora mismo monto los banners en un blog que tengo y al toque aviso cualquier cosa.

De verdad que no doy crédito a las cosas que leo.

Todas las advertencias que se han comentado en este hilo se lo pasan por el forro por que una persona, UNA, diga todo lo contrario, y encima sin argumento.




¿Pero por qué narices en lugar de hacer caso a la primera opinión positiva que leen, no se leen primero los términos y condiciones del servicio, y de paso intentan buscar opiniones de otras personas en Google?, sería lo lógico, y por ese orden, vaya.

Obviamente cualquier sistema automatizado de auto-click se considera fraudulento en este tipo de servicios y un claro motivo de cancelación de la cuenta,
¿en serio ustedes creen que alguna compañia va a permitir que los usuarios hagan auto-click para pasarse los banners por el culo, cuando la gran mayoría de este tipo de servicios se mantienen gracias a la compra de los productos de esos banners por parte de los usuarios?, no me entra en la cabeza tanta ingenuidad,
si a alguien le funciona esto de hacer auto-clicks es por el simple hecho de que aun no le han pillado, pero ya le pillarán a esa persona en el momento que ésta quiera hacer el pago de lo que supuestamente lleva ganado cuando revisen su actividad antes de pagarle, ahí perderá la cuenta, junto a todas las horas invertidas, y el supuesto dinero ganado (fraudulentamente).

¿Cuantas veces hay que explicar que el 90% de este tipo de servicios son fraudulentos, y el resto son tan estrictos que no se gana ningún dinero siendo una persona normal?,
en serio, ¿CUANTAS VECES Y CUANTAS MÁS PRUEBAS NECESITAN USTEDES?, que el dinero facil por internet no existe, joder, y ExoClick no es ninguna excepción.

Términos y condiciones de ExoClick
Cita de: https://www.exoclick.com/terms-conditions/4.4. Fraudulent Impressions. Any method to artificially and/or fraudulently inflates the volume of impressions or clicks is strictly forbidden.
Counts of impressions or clicks will be decided solely on the basis of reports generated by ExoClick Advertising Network.
These prohibited methods include but are not limited to: framing an ad-banner's click-through destination, auto-spawning of browsers, running 'spiders' against the Publisher's own Website, automatic redirecting of users or any other technique of generating automatic or fraudulent (as determined by ExoClick, acting reasonably, or based on industry practices) click-through and/or impressions. Advertising Material may not be placed on a page which reloads automatically.
Publisher may not require users to click on Advertising Material prior to entering a Website or any area therein or provide incentives of any nature to encourage or require users to click on Advertising Material. Publisher's clicks-throughs of any link other than ExoClick's Advertising Material, or use of any other means of artificially enhancing click results shall be a material breach of this Agreement, and upon such occurrence, ExoClick may terminate this Agreement without prior notification. Such termination is at the sole discretion of ExoClick and is not in lieu of any other remedy available at law or equity. ExoClick's ad server will be the official counter for determining the number of Advertising Material delivered under and amounts payable under this Agreement.

Traducción: Cualquier método que artificial y/o fradulentamente infle el volumen de clicks está estrictamente prohibido.

Además de eso, para los que sigan aun en sus trece con su escepticismo:

Consulta al soporte de ExoClick
Cita de: https://www.exoclick.com/contact/Contact Us

Fullname: Elektro

Subject: Is auto-click allowed?

Message:
A person told me that auto-click is allowed in this service to make money, I'm interested in know whether this is true.
Please, could you clarify whether auto-click systems are allowed to click on other banners?.

Traducción:
Una persona me dijo que el auto-click está permitido en este servicio para ganar dinero, estoy interesado en saber si esto es cierto.
Por favor, pueden ustedes aclararme si los sistemas de auto-click están permitidos para clickar en otros banners?.


Respuesta:
CitarDear Elektro,

Thank you for contacting ExoClick Customer Services in regards to working with us.

The use of any auto-click tools is strictly forbidden and anyone found using said method will be banned from out network.

ExoClick only allows websites who have natural organic traffic.

Thank you for your kind understanding and consideration.

For any other questions you may have, we are more than happy to help you 24/7.

Kind regards.

Mo
ExoClick Customer Services

I am assigned to your ticket and I will be available for you Sun-Thurs 7am-15:30pm

Traducción parcial de la respuesta:
El uso de cualquier herramienta auto-click está estrictamente prohibida, y cualquier persona que encontremos usando dicho método será baneado de nuestro servicio.

Usen un poco la cabeza, no es tan dificil, infórmense por su cuenta antes de hacer NADA.

Saludos.