|
5791
|
Sistemas Operativos / Windows / Re: [Duda y problema] Tengo un problema
|
en: 24 Marzo 2015, 07:46 am
|
1. El tal Spyware Terminator es un producto gratuito, muy mediocre, y con bajos índices de detección que está orientado al spyware con una pobre protección viral adicional, ese programa de poco te sirve en comparación con otros programas comerciales que ya he mencionado.
· ¿Tienes un AntiVirus eficiente instalado en tú sistema?, en caso afirmativo ...¿Cual?, y salta al siguiente punto, en caso negativo, desinstala completamente 'Spyware Terminator' para reemplazarlo, te recomiendo utilizar Malware-Bytes AntiMalware , o Avira , o NOD32, cualquiera de ellos.
2. ¿Has realizado en tu equipo algún escaneo profundo de virus con las firmas de virus actualizadas a la fecha actual?, en caso afirmativo, y suponiendo que el resultado del escaneo haya sido favorable, salta al siguiente punto, en caso negativo, no vale la pena seguir este tema hasta que realices una verificación con un software anti-viral que sea medianamente eficiente.
3. ¿Si reinicias tu equipo en 'Modo Seguro', siguen ocurriendo los problemas de saturación de red que has mencionado?, en caso afirmativo, comenta si notas cualquier diferencia en los síntomas que pueda ser de utilidad para localizar el motivo del problema, y salta al siguiente punto, en caso negativo, con mucha probabilidad puede ser síntoma de una infección de software malicioso y te sugiero volver a leer el primer punto, aunque también podría deberse a conflictos por drivers u otros servicios y/o procesos del sistema.
4. He leido varios comentarios en los cuales afirman que 'Spyware Terminator' disminuye notablemente el rendimiento general del equipo, y además, en tu log parece tener activo un proceso que estaría solicitando y/o recibiendo actualizaciones constantemente o cada "X" intervalos.
· ¿Si desinstalas el tal 'Spyware Temrinator', siguen ocurriendo los problemas de saturación de red que has mencionado?. en caso afirmativo, comenta si notas cualquier diferencia en los síntomas que pueda ser de utilidad para localizar el motivo del problema, en caso negativo, ya has dado con el origen del problema.
Saludos!
|
|
|
5792
|
Programación / .NET (C#, VB.NET, ASP) / Re: DLL en c#
|
en: 24 Marzo 2015, 06:54 am
|
pero cuando estoy usandolo en otro proyecto y ocurre una excepcion no controlada el depurador de visual me manda al codigo de donde ocurrio la exepcion en el dll. Tú mismo te estás respondiendo, eres tú quien tiene VS instalado y quien tiene el depurador de VS adjuntado, por ese motivo se te muestra el código fuente que ha generado la excepción. Cualquier otro PC que no disponga de VS instalado y que no tenga activado/adjuntado el depurador de VS en el S.O, y que además no disponga de los archivos de base de datos de depuración (PDB) entonces no debería poder acceder de forma accidental al código fuente del ensamblado al generarse una excepción, y digo de forma "accidental" por que el código fuente siempre será accesible para cualquier persona que tuviese un conocimiento básico sobre ingenieria inversa mediante Reflection (hay herramientas que facilitan la tarea, como .Net Reflector), a menos que protejas el código mediante empaquetado u ofuscación y esa persona no sea capaz de encontrar la forma de revertir dicha protección. ¿acaso tengo que controlar todas los errores de ejecucion en mi dll antes de generarlo, para que quienes lo usen no puedan acceder al codigo? Pues... hombre, si el código que estás manipulando lanza una excepción entonces desde luego que algo hay mal y eso significa que deberías tratar de corregirlo y/o controlar la excepción, todas las excepciones que haya y además las excepciones que puedas preveer, claro está. De todas formas, y aunque estas técnicas no te las aconsejo EN ABSOLUTO por ser motivo de MUY malas prácticas de programación: · En Vb.Net puedes ignorar las excecpciones de un bloque de código específico usando la declaración "On Error" (On Error Resume Next), en C# creo que no existe un equivalente. · Puedes controlar todas las excepciones de un proyecto, suscribiéndote a los siguientes eventos de la aplicación: AppDomain.CurrentDomain.FirstChanceException, AppDomain.CurrentDomain.UnhandledExceptiony Application.ThreadException, pero ten en cuenta que la ejecución se seguirá deteniendo al encontrar una excepción, y se seuirá reportando la excepción. Es algo muy sencillo pero si quieres un mayor control puedes hacer lo mismo con la librería NByg: https://nbug.codeplex.com/· Otra alternativa para ignorar las excepciones sería ejecutar todos los bloques de código pasando las instrucciones cómo parámetro de un método que recibiese cómo parámetro una expresión Lambda, por ejemplo: Public Shared Sub IgnoreExceptions(ByVal action As Action) Try action.Invoke() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub Test() IgnoreExceptions(Sub() IO. File. Open("", IO. FileMode. Open) End Sub) End Sub
· Por último, otra alternativa para ignorar todas las excepciones, y mi favorita (aunque nunca he tratado de hacerlo de esta manera), sería utilizando técnicas del paradigma AOP (Aspect Oriented Programming), te recomiendo utilizar la librería PostSharp para facilitar dicha tarea, para decorar el código fuente de tal manera que puedas añadir atributos (o Aspects) a un método para ignorar las excepciones. Aquí tienes un ejemplo: http://www.rhyous.com/2012/06/15/aop-implementing-try-catch-in-csharp-with-postsharp/PD: No se si con la versión gratuita de PostSharp se podrá hacer. Saludos
|
|
|
5795
|
Sistemas Operativos / Windows / Re: Procesos dobles
|
en: 23 Marzo 2015, 21:36 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. Los 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.htmlhttp://answers.microsoft.com/en-us/windows/forum/windows_7-security/what-is-taskengexe/526f43d3-d311-4637-a19a-a76f1ce351fbTus 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.
|
|
|
5796
|
Programación / .NET (C#, VB.NET, ASP) / Re: Agregar Recurso a un archivo EXE [F1]
|
en: 23 Marzo 2015, 19:56 pm
|
para 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
|
|
|
5797
|
Programación / .NET (C#, VB.NET, ASP) / Re: Agregar Recurso a un archivo EXE [F1]
|
en: 22 Marzo 2015, 22:05 pm
|
Luego 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. 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.
|
|
|
5800
|
Programación / Scripting / Re: Contenido de un documento de texto hacia una variable de entorno en .bat o .cmd
|
en: 21 Marzo 2015, 01:19 am
|
como 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: REM End New Line Set multiLineStr=Line1 !NewLine!Line2 SetX.exe "MyVar" !multiLineStr!
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. como 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 textoMe 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: Como 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
|
|
|
|
|
|
|