
#include <iostream>
#include "ADVobfuscator\MetaString.h"

//
// Helper macrodefintions to easily plug ADVobfuscator/MetaString.h
// 

#ifndef _DEBUG
#define OBF(x) ADV_OBF_W(x)
#define OBFI(x) ADV_OBF_W(x)
#define OBF_ASCII(x) ADV_OBF(x)
#define OBFI_ASCII(x) ADV_OBF(x)
#else
#define OBF(x) x
#define OBFI(x) x
#define OBF_ASCII(x) x
#define OBFI_ASCII(x) x
#define ADV_OBF(x) x
#define ADV_OBF_W(x) x
#define OBF_WSTR(x) std::wstring(x)
#define OBF_STR(x) std::string(x)
#endif

void foobar()
{
    std::cout << "String Obfuscation demo!\n\n";

    std::cout << "== Test 1: Below line is not obfuscated and can be extracted from compiled EXE:\n";

    std::cout << "\t__malware_string_1234__\n\n";

    std::cout << "== Test 2: Now below line is obfuscated and cannot be easily extracted from EXE:\n";

    std::cout << OBF_ASCII("\t__malware_string_5678__\n");
    std::cout << OBF_ASCII("\tX5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*\n");

    std::cout << "\nCompleted.\n";

}

int main()
{
    foobar();
    getchar();
}

