Ir al contenido principal

Entradas

Análisis del ransomware WannaCry

A estas alturas, ya todos los ciudadanos debemos saber casi por obligación qué es un Ransomware y más aún, en estos días (14 de Mayo de 2017) con el ataque masivo que se ha producido con el ransomware WannaCry. Un "juguete" más de los cyber-delincuentes que parece ser que han hecho uso del exploit EnternalBlue/DoublePulsar "fugado" de la NSA (National Security Agency US). Básicamente se trata de un "malware" que codifica todos tus archivos importantes para pedirte una recompensa, por supuesto económica, a cambio de devolvértelos a su estado normal. Así que, voy al grano con un pequeño y rápido análisis que acabo de hacer sobre este malware. Partimos de una muestra capturada de dicho malware, la cual es un archivo binario (un ejecutable en sistemas operativos Windows). Un primer vistazo rápido para ver que tipo de archivo tenemos entre manos nos muestra lo siguiente: Como podemos ver, se trata de un archivo PE de 32 bits, a priori ...

Parkinson Emma Project (Microsoft Build 2017)

Hoy me entero a través de la conferencia anual de desarrolladores Microsoft Build 2017 de una gran innovación que no se puede pasar por alto. Sin duda, esta es una de esas cosas que le hace a uno estar orgulloso de pertenecer a la especie humana y, sin duda nuevamente, esta otra de esas cosas que me hace sentir bien por pertenecer al mundo de las TI. Pues sí, así es, no todo lo que hacemos en el mundo de la tecnología busca destruir al ser humano (como algunos predicen), ni quitarle a la gente sus trabajos (como otros auguran), el problema en esos casos no es la tecnología, es el sistema político/económico que mueve el mundo. La tecnología ha venido para ayudarnos, ha venido para facilitarnos la vida, ha venido para que no necesitemos trabajar tanto, y por más que le pese a muchos, la tecnología a venido para quedarse. Más allá de esta apreciación personal, desde mi humilde blog no puedo menos que felicitar a Haiyan Zhang, la ingeniera que está detrás del "Proyecto ...

Transformada Rápida de Fourier (FFT) - 1

Una de las cosas (de tantas y tantas) que me ha llamado siempre la atención son los temas relacionados con DSP (Digital Signal Processing), el procesado digital de señales. Desde el diseño de filtros digitales (FIR - Finite Impulse Response e IIR - Infinite Impulse Response) hasta el análisis espectral, pasando por los conversores ADC y DAC, etc. En esta ocasión quiero plasmar aquí para futuras consultas y para todo aquel al que le pueda venir bien, un pequeño estudio sobre una de las herramientas matemáticas más importantes en el procesado digital de señales, se trata de la Transformada de Fourier y más concretamente de la FFT (Transformada Rápida de Fourier). La FFT es una herramienta o proceso matemático que nos permite transformar una señal en el dominio del tiempo al dominio de la frecuencia. Habitualmente solemos representar las señales en el dominio del tiempo, mostrando su amplitud y frecuencia en función del tiempo, pero en el caso de la transformada de Fourier de...

Error "BUG" en Microsoft-Edge (TRK:0285936)

Microsoft TRK:0285936 Microsoft Case: 31110 Recientemente he notificado a Microsoft un "error" que he localizado en su nuevo navegador Microsoft-Edge. Se trata de un fallo en el parser del campo dedicado a la dirección o URL, el cual encontramos en la parte superior de la ventana del navegador. Aunque Microsoft no lo considera una vulnerabilidad desde el punto de vista de la seguridad del sistema, si que están de acuerdo conmigo en que puede ser utilizado para realizar un ataque de Denegación de Servicio (DoS). En fallo hace que Microsoft-Edge entre en una especie de bucle infinito que se dedica a abrir de manera continuada gran cantidad de nuevas pestañas vacías en el navegador. Esto, no solamente provoca una Denegación de Servicio sobre el equipo atacado, dado que impide que el usuario pueda navegar por internet, sino que además puede llegar a provocar una sobrecarga de la memoria (Heap exhaustion), ya que por cada nueva pestaña que se abre, se consume una ca...

MIDLRT - Generate metadata files (.winmd)

If you are programming a custom Windows Runtime component by hand, one of things you must to do is generate the IDL (Interface Definition Language) file. Once you have that file, you can get the metadata file (.winmd) by using the "MIDLRT" tool. MIDLRT is a command line tool used to create metadata (.winmd) files that represent the API of your own custom Windows Runtime component. You can use this nice tool as easy as writing this command: C:>midlrt filename.idl One option you can specify is the "metadata_dir" option, like in this example: C:>midlrt MyRuntimeComponent.idl /metadata_dir "C:\windows\system32\WinMetaData" When the tool MIDLRT has finished his job, you will have the following files in your current directory: dlldata.c MyRuntimeComponent.h MyRuntimeComponent.winmd MyRuntimeComponent_i.c MyRuntimeComponent_p.c Another nice tool you can use with all this stuff is "WINMDIDL". This is also a command-line tool ...

C++/CX & Xaml Data Binding

There is a few methods that you can use to make a C++/CX class with data-bindable capability. The most simple way is by adding an attribute to the class declaration: [Windows::UI::Xaml::Data:Bindable] public ref class SampleDataClass sealed { ... }; But, What about non-public classes? With the non-public classes you can declare the class by implementing either the ICustomPropertyProvider interface or IMap : ref class SampleDataNonPublicClass sealed : Windows::UI::Xaml::Data::ICustomPropertyProvider { ... public : virtual Windows::UI::Xaml::Data::ICustomProperty^ GetCustomProperty(Platform::String^ name); virtual Windows::UI::Xaml::Data::ICustomProperty^ GetIndexedProperty(Platform::String^ name, Windows::UI::Xaml::Interop::Type type) property Windows::UI::Xaml::Interop::TypeName Type { virtual Windows::UI::Xaml::Interop::TypeName get() { return this ->GetType(); } } virtual Platform:: String ^ GetStringRepresentation() { return this ->T...

Windows Runtime DateTime to SYSTEMTIME conversion

This post is about how to make date/time conversion between Windows::Foundation::DateTime and SYSTEMTIME structure types. Let's go to see by example: // First we obtain the current DateTime from Calendar class Windows::Globalization:: Calendar ^ cal = ref new Windows::Globalization:: Calendar (); Windows::Foundation:: DateTime date= cal->GetDateTime(); // Here, we are converting DateTime to a 64bit value (UniversalTime format) ULARGE_INTEGER time; time.QuadPart = date.UniversalTime; // Now convert the ULARGE_INTEGER to a FILETIME structure FILETIME fileTime; fileTime.dwHighDateTime = time.HighPart; fileTime.dwLowDateTime = time.LowPart; // And finally we get a SYSTEMTIME value by calling the FileTimeToSystemTime Windows Api. SYSTEMTIME systemTime; FileTimeToSystemTime(&fileTime, &systemTime); With C++ and once again, we are doing many things to something simple but sometimes necessary.