String transfer from a function in GO to a code on C without memory allocation (Part 1)

CGO documentation illuminates string transfer issue rather poorly. They only mention that C.CString() function should be used in order to convert a string object into a pointer to a buffer with a zero-terminated string – char*, which is coherent for the C code. This is great; however, a memory block is being allocated during this procedure

A hook on a function call via modifying an import table

There are situations in terms of large projects when it is necessary to correct the work of one or more third-party components (such as libraries as a part of an application). The source code is rarely available in these cases and we have to use hacker approaches. I am going to consider one of the

Asynchronous COM for Windows Vista and Win7 – memory overwrite bug

COM technology (Component Object Model) has been developing for almost twenty years and work of the vast majority of system components is still based on it. I think that this will continue in the nearest future. Asynchronous COM is an option of using this technology. Some applications of the early 2000s used it to build

API DLL or COM object? Creating a COM object without registration

One of the major questions that an architector might face creating a multi-component project is how the components will interact. The mechanism of interaction could consist of COM interfaces usage and traditional import / export of functions and classes if we are talking about components that export a set of functions (in fact libraries). The way