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

#5482
Programación General / MOVIDO: DLL en c#
24 Marzo 2015, 00:30 AM
#5483
Windows / Re: Procesos dobles
23 Marzo 2015, 21:36 PM
Cita de: DavEmmanuel en 23 Marzo 2015, 20:26 PM¿Es normal esto?

Depende.

Un proceso puede ser single-instance, es decir, de única instancia, o multi-instance, de múltiples instancias (ej: explorer.exe).

Cómo el término multi-instance nos indica, el mismo proceso puede ser ejecutado varias veces, por ende se instanciará un proceso adicional con el mismo nombre que el proceso anteriormente instanciado,
pero para llamar "clon" a un proceso adicional, éste también debería tener asignado un mismo MUTEX, y un mismo PID o Process Identifier (entre otros factores) para identificar los 2 procesos cómo el mismo proceso, lo que es imposible debido a la naturaleza del S.O.

Lo que pretendo explicar con esto es que, encontrar dos procesos con el mismo nombre no es raro, ni mucho menos tiene por que ser síntoma de virus.

Por otro lado, un virus puede haber sido desarrollado para suplantar la identidad de otro proceso por ejemplo utilizando un nombre conocido y familiar (ej: taskmgr.exe) para hacerse pasar cómo proceso legítimo y seguro,
por ende, sin poder analizar y/o monitorear debidamente los procesos que has comentado aquí no se te puede dar ningún veredicto que sea 100% fiable sobre el origen de esos procesos.

Cita de: DavEmmanuel en 23 Marzo 2015, 20:26 PMLos nombres de los procesos son: igfxsrvc.exe y taskeng.exe

El primer proceso, igfxsrvc.exe, supuestamente se refiere a un servicio de Intel, Intel(R) Integrated Graphics Service, en ese caso no sería perjudicial.
El segundo proceso, taskeng.exe, parece ser un virus conocido.
Fuente(s):
http://www.neuber.com/taskmanager/process/igfxsrvc.exe.html
http://answers.microsoft.com/en-us/windows/forum/windows_7-security/what-is-taskengexe/526f43d3-d311-4637-a19a-a76f1ce351fb

Tus problemas de posibles virus los solucionarías muy sencillamente con un AntiVirus, así de simple, ¿a que esperas pues?, instálate MalwareBytes Anti-Malware, actualiza la base de firmas de virus a día de hoy, y realiza un escaneo profundo del sistema o simplemente escanea esos dos procesos sospechosos que comentaste.

Saludos.
#5484
Cita de: Maurice_Lupin en 23 Marzo 2015, 17:42 PMpara que sirve "Public class..." o es que en este caso no es necesario?

Es el código fuente que se va a compilar, es decir, el código que contendrá el ensamblado generado :-/,
"Public class ResourceClass : End Class" solo es una Class pública y vacía con la sintaxis de VB.Net (puesto que uso el proveedor de código de VB para compilar),
lo que escribí solo era para mostrar un ejemplo del valor que debe tomar ese parámetro, pero en realidad no sirve para nada esa Class ya que solo pretendes acceder a los recursos del ensamblado compilado,
puedes dejar el parámetro vacío si lo prefieres, compilará bien igualmente.

EDITO:
Por cierto, sobre la manipulación del PE no se practicamente nada, pero en el pasado me ayudó mucho esta librería para tareas relacionadas, es la librería que utiliza el deofuscador de4dot:
https://github.com/0xd4d/dnlib/
(mírate la class PEImage.cs en el source, aunque no he mirado su contenido, quizás te sirva para algo)

Saludos
#5485
Cita de: Maurice_Lupin en 16 Marzo 2015, 21:40 PMLuego te comento a donde llegue.

¿te rendiste, o buscaste otra alternativa?, jeje.

Te muestro un ejemplo, ya que el hecho de unir requiere dos elementos compilados, lo que hago en este ejemplo es, primero crear la tabla de recursos ResX, luego compilar una dll "vacía" de .Net añadiendo el archivo ResX cómo recurso embedido, y luego ya con esa dll puedes hacer lo que quieras, unirla a un exe, extraer/leer el archivo ResX de la dll, etc.

Código (vbnet) [Seleccionar]
Imports System.CodeDom.Compiler
Imports System.IO
Imports System.Reflection

Public Class Form1

Private Sub Test() Handles MyBase.Shown

    ' Create the ResX file.
    Dim resX As New ResXManager(Path.Combine(Application.StartupPath, "C:\MyResources.resx"))
    With resX
        .Create(replace:=True)
        .AddResource(Of String)("String Resource", "Hello World!", "String Comment")
    End With

    ' Compile an assembly.dll that contains the ResX file as an embedded resource.
    Dim codeProvider As CodeDomProvider = CodeDomProvider.CreateProvider("VB") ' or New VBCodeProvider()
    Dim parameters As CompilerParameters = New CompilerParameters()
    With parameters
        .GenerateExecutable = False
        .OutputAssembly = "C:\Assembly.dll"
        .EmbeddedResources.Add("C:\MyResources.resx")
    End With
    Dim results As CompilerResults = codeProvider.CompileAssemblyFromSource(parameters, "Public class ResourceClass : End Class")

    ' Read the assembly.
    Dim assembly As Assembly = assembly.LoadFile("c:\Assembly.dll")

    ' Extract/read the ResX file from assembly.
    Dim embeddedFileName As String = "MyResources.resx"
    Dim targetFilePath As String = "C:\NewMyResources.resx"
    Using s As Stream = assembly.GetManifestResourceStream(embeddedFileName)
        Dim buffer As Byte() = New Byte(CInt(s.Length - 1)) {}
        Dim read As Integer = s.Read(buffer, 0, CInt(s.Length))
        Using fs As New FileStream(targetFilePath, FileMode.Create)
            fs.Write(buffer, 0, buffer.Length)
        End Using
    End Using

End Sub

End Class


Saludos.
#5487
Toma esto, ya no me acordaba que lo tenía xD:
http://www.mediafire.com/view/ff377ft3j8ppe25/Batch_syntax.pdf

Ahí encontrarás documentación sobre Setx, el redireccionamiento de comandos, y otras cosas.

Saludos
#5488
Cita de: 4dr14n31t0r en 20 Marzo 2015, 23:59 PMcomo podria, como dice el titulo de la pregunta, introducir la parte que yo eliga de un documento de texto en una variable de entorno para guardar datos y poder utilizarlos de nuevo la proxima vez sin tener que introducirlos nuevamente

El título de tu pregunta da a entender algo distinto, asignar el contenido de un archivo de texto ..el cual pueden ser varias lineas, a una variable de entorno del sistema, pero sencillamente eso no es posible, ya que para empezar, las variables de entorno no son multi-linea, y Batch no acepta de forma natural la asignación ni el uso de variables multi-linea, aunque se puede asignar una variable multi-linea con una conocida técnica bastante indocumentada, pero la variable de entorno solo conservará la primera linea:

Código (dos) [Seleccionar]
@Echo OFF & SetLocal EnableDelayedExpansion
Set NewLine=^



REM End New Line

Set multiLineStr=Line1!NewLine!Line2
Echo !multiLineStr!
SetX.exe "MyVar" !multiLineStr!

Pause&Exit /B 0


Si por lo contrario solo quieres asignar una linea de dicho archivo de texto a una variable de entorno pues ...¿cual es el problema que encuentras?, solo debes usar un FOR para iterar las lineas y utilizar el comando externo SetX cómo en el ejemplo de arriba.

Cita de: 4dr14n31t0r en 20 Marzo 2015, 23:59 PMcomo dirigir la salida de un comando hacia un lugar concreto de un archivo sin que sea necesariamente al final, es decir entre dos renglones determinados o incluso detras de un determinado caracter de uno de los renglones.

Es imposible, no puedes redireccionar el flujo de datos de la salida estándar/error de un comando hacia una posición en concreto del stream de "X" archivo o hacia una linea de un archivo de texto plano, en una herramienta tan limitada cómo es Batch NO.

Aparte de eso, insertar texto en una linea específica de un archivo de etxto es complicado, no por la tarea en si misma, sino por que Batch fue diseñado para automatizar tareas básicas y, aunque la manipulación de texto es algo muy simple en otros lenguajes, en Batch se vuelve una tarea muy tediosa además de muy, muy ineficiente debido a sus limitaciones.

Puedes ver este pequeño set de herramientas que desarrollé hace tiempo en Batch con el que podrá realizar algunas operaciones que te pueden resultar interesantes, entre ellas, insertar texto en una linea específica:
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto

Cita de: 4dr14n31t0r en 20 Marzo 2015, 23:59 PMMe he fijado que aunque escribes help para obtener todos los comandos, en realidad no estan todos (como el comando choice). Como puedo saber cuales son todos los comandos que hay realmente sin tener que mirarlo en internet? Donde estan guardados realmente?

Choice no es un comando, es un programa externo a Batch, es una aplicación commandline (choice.exe).

La mayoría de este tipo de aplicaciones externas se utilizan en scripts Batch para intentar compensar la ausencia de brazos y piernas de este limitado "lenguaje de programación" y entonces se les suelen llamar inapropiadamente comandos (o comandos externos).

Lo mismo ocurre con find.exe, findstr.exe, xcopy.exe, y un montón de herramientas externas más, no son comandos internos de batch cómo lo es por ejemplo el comando 'Echo', aunque algunas de estas aplicaciones externas si que están documentados en la ayuda de la CMD, no están todas las aplicaciones documentadas en la CMD cómo te has dado cuenta, pero las aplicaciones commandline de Microsoft tienen su propia ayuda commandline, por ejemplo:
Choice.exe /?

Cita de: 4dr14n31t0r en 20 Marzo 2015, 23:59 PMComo puedo saber cuales son todos los comandos que hay realmente sin tener que mirarlo en internet? Donde estan guardados realmente?

En el directorio del sistema, es decir, en 'C:\Windows\System32', encontrarás expandidos los archivos .dll, .com, y .exe que se utilizan por o en la CMD.

Saludos
#5489
Cita de: luis456 en 20 Marzo 2015, 17:14 PM"resultss3' no es un miembro de 'WindowsApplication1.Form1'.

Por qué resultss3 no es pública, es un miembro inaccesible ya que la declaras DENTRO de un Sub y su tiempo de vida es solo ese.

Resetea las que declares FUERA de los Subs.

Saludos!
#5490
Es lo que ocurre cuando tienes 100 membros en un mismo código con nombres casi identicos, te lo he dicho mil veces, tanto "resultsss" es un completo lio :-/

Tienes que hacerlo cómo lo estás haciendo, solo que debes fijarte mejor para añadir los controles que falten ya que supuestamente te estás olvidando de limpiar algún control, y por si acaso te diría que añadieses también los objetos públicos que hayas inicializado fuera de los Subs para resetear sus valores.

Ejemplo:
Código (vbnet) [Seleccionar]
   Private Sub Button2_Click_1(ByVal sender As Object, ByVal e As EventArgs) _
   Handles Button2.Click

       Me.CleanUp()

   End Sub

   Private Sub CleanUp()

       ' Tus famosos results y otras variables públicas, cómo se llamen:
       Me.Resultss1 = Nothing
       Me.Resultss2 = Nothing
       Me.Resultss3 = Nothing
       Me.VariableInteger = 0
       'etc...

       ' Tus controles:
       For Each tb As TextBox In Me.Controls.OfType(Of TextBox)()
           tb.Clear()
       Next tb
       For Each gb As GroupBox In Me.Controls.OfType(Of GroupBox)()
           For Each tb As TextBox In gb.Controls
               tb.Clear()
           Next
       Next gb
       Me.ListBox1.Items.Clear()
       Me.ListBox2.Items.Clear()
       Me.ListBox3.Items.Clear()
       Me.ListBox7.Items.Clear()

   End Sub


Poco más se puede hacer por ayudarte en eso, debes revisarlo tú :P