
Easy and complete Anti Tamper and Anti Debug framework to protect native applications developed in C, C++ or any other language that produces native applications and is capable to invoke C based functions.
Stop your work from being stolen or used without payment! SKA protects your intellectual property in a powerful and reliable way. Simply link the static library provided by SKA and invoke ska_init() in your code. That's it.
Many products available on the market today are designed to protect applications (for mobiles or desktops) designed with high level languages. None on the marked provides this feature for native applications.
The reverse engineering of native applications is complex and almost impossible if compiled with compiler standard optimizations and without debugging symbols. But optimized and release versions could be tampered just examining the binary and changing values. This option is blocked with SKA tamper detection system.
And if application is with debug symbols and without optimization it's hard to perform reverse engineering if it's not possible to attach the process with a debugger. The debugger attach is detected and blocked with SKA debugger detection system

Your apps will then be able to detect unauthorized use, like debugging or tampering. Despite the name, SKA do more than just detect these states; they can also react in pre-specified ways, such as by exiting the app. SKA can also call into application code, allowing for custom behavior based on the SKA's result. These reporting and response features are configurable, so all your apps can detect unauthorized uses in the same way, but each app can respond to that detection differently.
Additionally it's easy to integrate the SKA license system w/o any relevant effort.
/*
**
**
main.c : example for ska
**
**
Project by: WHILE1
**
**
/|
**
\ ||
**
\ /\ ||
**
\/ \||
**
**
the measure of quality
**
**
** Authors : While1
**
** Note:
**
best viewed with tabstop = 4
**
** Module description:
** module with main
** All Rights reserved.
**
** History:
**
*/
/*
** Standard Includes
*/
#ifdef WIN32
#include <windows.h>
#include <direct.h>
#include <process.h>
#include <io.h>
#endif
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#ifdef UNIX
#ifdef AIX
#include <sys/time.h>
#endif
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <sys/ioctl.h>
#include <pthread.h>
#include <dlfcn.h>
#include <stdarg.h>
#endif
#include "ska.h"
SKA_APPINSTANCEDESCRIPTOR skaAppInstanceDescriptor;
int
placeHolder()
{
return 0;
}
/*
**
** Function Name:
main()
**
** Subject......: main
of the app
**
** output
: as standard
**
** input
: as standard
**
*/
int
main( int argc, char
**argv)
{
int rc;
rc = ska_init( &(skaAppInstanceDescriptor),
fprintf, /* could be any logger function with fprintf
interface */
stderr, /* could be any log descriptor */
flush, /* could be any flush for logging */
placeHolder, /* just a code pointer as reference */
"placeHolder", /* description of code pointer */
0 /* run unlimited, could be a time limit for execution */
);
if (rc) {
/* we are not protected */
return (rc);
}
/* we are protected, do whatever */
/* exiting, stop protection */
ska_end(&(skaAppInstanceDescriptor));
return rc;
}