Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - Eleкtro

#231
Cita de: didis en 18 Octubre 2019, 22:36 PM
tu por cual me recomiendas empezar??

Mi respuesta dependería de tus preferencias sintácticas a la hora de escribir en un lenguaje, y tus objetivos de programación...

De forma general y también para este problema en concreto yo te recomendaría C# o VB.NET, el que más te guste su sintaxis, aunque por supuesto hay otros lenguajes muy capaces, pero no puedo recomendarte empezar por todos al mismo tiempo y es evidente que tengo preferencia o favoritismo por los lenguajes que he mencionado ya que sus ventajas y productividad me parecen muy beneficiosas y pues de ahí surgen las recomendaiones de las personas... ¿no?.

Ambos lenguajes, C# y VB.NET tienen una curva de prendizaje relativamente facil. Puedes acceder a una extensa cantidad de documentación online oficial de Microsoft, con tutoriales y ejemplos de código, además de existir una amplía comunidad de desarrolladores de proyectos de código abierto para cubrir todo tipo de necesidades que puedas tener (y así evitar reinventar la rueda al programar).

Utilizarías el lenguaje C# o VB.NET bajo una IDE muy elegante y sofisticada por nombre 'Visual Studio', y en ambos lenguajes podrás aplicar de forma relativamente sencilla el paralelismo y la aceleración por hardware para optimizar la implementación de un algoritmo por fuerza bruta (además de un generador de permutaciones o lo que puedas necesitar), aunque para llegar a realizar eso primero deberías empezar a aprender y practicar cosas mucho más básicas sobre el uso del lenguaje que elijas hasta obtener un dominio a nivel de usuario, de lo contrario sería como empezar a construir la casa por el tejado en el sentido de que habrás logrado hacer algo "dificil" que está por encima de tus conocimientos y no sabrás hacer cosas mucho más fáciles y básicas que deberías conocer primeramente, lo cual le ocurre a mucha gente a la que veo publicar dudas de programación sobre estos y otros lenguajes.

En resumen, C# o VB.NET sería mi respuesta, pero vamos, que si elijes Java o C++ u otro lenguaje no sería mala opción tampoco. Mientras no sea Batch, ni tampoco VBS ni VB6 ya puestos...

PD: C# y VB.NET son lenguajes compilados, no lenguajes de scripting... por si eso tiene relevancia para ti.

Saludos.
#232
Cita de: didis en 18 Octubre 2019, 21:29 PMquiero hacer un script con batch para hacer fuerza bruta pero no se por donde empezar

Deberías empezar por olvidar Batch y empezar a utilizar un lenguaje de programación real. No estoy trolleando ni siendo arisco, sencillamente es el modo más directo de decirte el mejor consejo que te pueden dar, pues lo cierto es que has ido a escojer un lenguaje frustrante y extremadamente lento para el procesamiento y manipulación de datos, aparte de que se vuelve una herramienta tediosa, improductiva y practicamente inutil que cojea de todas las patas para llevar a cabo casi cualquier reto u operación que tenga un mínimo nivel de complejidad.

De todas formas no has especificado que tipo de ataque por fuerza bruta te has propuesto, puede ser el login de una página web, o la contraseña de un archivo comprimido, o vete a saber... pero eso no cambia nada de lo que dije, e insisto, deberías aprender a utilizar otro lenguaje para tus fines. Sin ir más lejos, PowerShell sería un buen comienzo si no quieres perder por completo la familiaridad con el uso de "comandos" (cmdlets), es un lenguaje que le da mil vueltas a Batch, aunque yo te recomendaría otros lenguajes como C# o VB.NET, y otras personas te recomendarían Python, Ruby o Perl entre otros, pero bueno... eso ya es cuestión de preferencias personales.

Saludos.
#233
Hay varios formatos conocidos de metadatos que se pueden incluir y combinar en un archivo MP3, por ejemplo: ID3v1, ID3v2, APEv2, Lyrics3, etc.

El más común es el formato ID3v2, el cual en la versión ID3v2.2.0 provee un campo llamado DATE (TDAT), en el que se puede especificar la fecha completa:

Dicho campo es probablemente el que se representa en el programa Foobar (es una suposición, yo no utilizo ese programa). Nótese que el campo DATE está descontinuado en posteriores versiones del formato ID3v2, y entonces se debe representar en su lugar el campo YEAR (TYER).

Una vez aclarado tus dudas, aparte de lo mencionado debes tener en cuenta que no todos los programas que procesan y muestran metadatos tienen por que representarlos de la misma manera (el desarrollador puede decidir libremente si quiere mostrar la fecha completa, o solo el año para hacerlo más legible), y no todos los campos tienen por que ser leidos/procesados y mostrados, de hecho, ese tal "mp3Tag" no muestra ni un tercio de los campos disponibles en el formato ID3v2, y es normal, ya que la mayoría de campos nadie los usa, ni siquiera los programas que generan metadatos...

Saludos.
#234
Citarel servicio técnico de Windows, no ayuda mucho. Dice que Windows 10 funciona perfecto y que eso lo causa un programa que tengo que buscar por mi cuenta...

No te ofendas, por favor, pero es que si te explicas así al servicio técnico entonces no me extraña que este se limpie las manos para no perder el tiempo y te manden a buscar por tu cuenta. xD

Intenta especificar claramente cual de estos problemas es el que estás sufriendo:

a) Al iniciar sesión de usuario en el sistema operativo, los iconos del escritorio aparecen en un ordén/posición/alineación distinto a como los colocaste antes de cerrar sesión.

b) Al iniciar sesión de usuario en el sistema operativo y seguidamente utilizar el explorador de ventanas (Explorer.exe) para navegar al directorio "de usuario" (¿'C:\Users\{usuario}'?), este diectorio no conserva el modo de vista para los elementos/iconos que especificaste para ese directorio antes de cerrar sesión.

En el primer caso, primero confirma que ese sea el problema y ya intentaremos averiguar la causa del problema y buscar su posible solución. En el segundo caso, debería ser muy sencillo de solucionar, de hecho, podrías hacerlo con una limpieza del programa CCleaner (seleccionando cierta opción de la limpieza avanzada que afecta a configuraciones temporales del explorador de ventanas), y el problema reside en que Windows tiene un límite (el cual se especifica en un valor del registro de Windows) para guardar una cantidad específica de la configuración de vista de iconos/elementos para cada directorio. Dicho límite lo puedes agrandar, y las configuraciones actualmente guardadas las puedes eliminar desde el registro, o usando CCleaner como ya dije, así que ya sabes... confirma si este es el problema para proporcionarte información más detallada.

Si tienes un problema distinto a los que he mencionado, acláralo. Y en ese caso también deberías especificar la versión de compilación de tu sistema operativo, por si pudiera ser un problema conocido de esa compilación. Para averiguar la versión de compilación de Windows 10 puedes utilizar el comando ver.exe en la CMD, por ejemplo.

Saludos.
#235
Lee detenidamente la documentación del enlace de GitHub que he compartido:

Cita de: https://github.com/dotnet/corert/tree/master/samples/NativeLibrary#exporting-methodsExporting methods

For a C# method in the native library to be consumable by external programs, it has to be explicitly exported using the [NativeCallable] attribute. First define the System.Runtime.InteropServices.NativeCallableAttribute in your project, see here. The local definition of the NativeCallableAttribute is a temporary workaround that will go away once the attribute is added to the official .NET Core public surface.

Next, apply the attribute to the method

Es decir, tu tienes que definir la clase 'NativeCallableAttribute', de la misma manera en como está definida aquí:
Cita de: Elektro

Y por último, simplemente aplicas dicho atributo al método que quieras exportar, especificando el nombre del punto de entrada, es decir, lo que ya has mostrado en esa imagen.

Recuerda que puedes descargar el ejemplo oficial en C# desde GitHub para analizarlo y/o convertir el código a VB.NET:

EDITO: ahora que me doy cuenta, si el espacio de nombres donde definir la clase NativeCallableattribute debe ser estrictamente System.Runtime.InteropServices para que funcione de forma correcta, entonces en VB.NET podrías tener problemas, ya que a diferencia de C#, los miembros añadidos se representarían en un espacio de nombres local, diferente a Global.System.Runtime.InteropServices pero con el mismo nombre. Así que al final quizás VB.NET no te sirva para hacer eso, aunque no estoy seguro, solo es una suposición, pero de todas formas si tienes problemas siempre puedes hacerlo en C#.

Saludos.
#236
Cita de: **Aincrad** en 17 Octubre 2019, 19:41 PMen c++ se pueden hacer llamados a una dll creada en vb?

Tiene que ser una dll NATIVA, con las funciones que quieras utilizar, exportadas.

Si te empeñas en hacerlo utilizando VB.NET, (para esto he tenido que investigar) en teoría con .NET Core / CoreRT puedes compilar una dll nativa y crear los exports (funciones exportadas) muy facilmente mediante la clase de atributo 'NativeCallable', aquí tienes un ejemplo y creo que lo necesario para documentarte y practicar:



Para instalar los runtimes de .NET Core junto a las plantillas de proyecto (para el desarrollo de una dll) y demás, puedes hacerlo desde el instalador de Visual Studio.

PD: El ejemplo de arriba es para C#, pero .NET Core soporta VB.NET también...
Cita de: https://www.amarinfotech.com/difference-between-net-core-2-0-vs-net-framework.html.NET Core is the new cross-platform and open-source .NET framework to develop applications for all major operating system including Mac, Linux, and Windows. .NET Core supports UWP and ASP.NET Core only. ASP.NET Core is used to build browser-based web applications and currently, it does not support a desktop application with the user interface. Programmers can develop applications and libraries in C#, VB.NET, and F# in both runtimes.
#237
Sencillamente debes utilizar el operador += (el equivalente al método AddHandler que mencionó NEBIRE) ...


#238
Ese programa al parecer trabaja con librerías nativas (código nativo), no con ensamblados .NET (código IL)...

Cita de: https://support.microsoft.com/es-es/help/815065/what-is-a-dllUn ensamblado es una unidad lógica de funcionalidad que se ejecuta bajo el control de .NET common language runtime (CLR). Un ensamblado existe físicamente como un archivo .dll o como un archivo .exe. Sin embargo, internamente un ensamblado es muy diferente desde un archivo DLL Win32 de Microsoft.

En resumen, para compilar ese tipo de archivo dll deberías usar C++ como en el ejemplo que encontraste. En VB.NET es imposible, aunque cabe mencionar que en Visual C++ puedes compilar una DLL "mixta"...


pero eso seguiría siendo practicamente una dll con instrucciones IL, así que no creo que ese programa lo pueda cargar... pero bueno, lo cierto es que nunca lo he intentado ni tampoco he analizado el interior de este tipo de dll de código "mixto" para saber cuan compatible es nativamente hablando.

Saludos.
#239
No parece facil de determinar el motivo sin poder reproducir el problema, pero quizás podría ser un problema de herencia de permisos. Asegúrate de ejecutar tu programa como administrador, o en su defecto prueba a crear/modificar el manifiesto de tu aplicación especificando el nivel deseado en el elemento requestedExecutionLevel...


Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
   ...
   <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
       <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
   </requestedPrivileges>
   ...
</assembly>


Aquí tienes un ejemplo más detallado:

Saludos.
#240
Si lo quieres resolver por ti mismo, entonces ya te respondieron. Si no quieres reinventar la rueda y además buscas algo óptimo, entonces deberías usar un algoritmo Diff para .NET (el cual te devuelva las diferencias entre una cadena de texto y otra, y sus índices), por ejemplo:


Saludos.