库名和函数名混淆

Library name and function name obfuscation

我有包含字符串常量的 C 代码,通过#pragma comment(lib, "urlmon.lib") 和#includes 导入的库。我的任务是混淆所有字符串、导入的库名称和相关函数,以便在调试器中不容易看到它们,比如 OllyDbg 等。 我对字符串有一定的了解,但是库和函数名称的混淆让我很头疼。

这是代码

#include <stdio.h>
#include <windows.h>

#pragma comment(lib, "urlmon.lib")

int main(void)
{
    int op1, op2, n;
    HRESULT res;

    printf("some string- Version 0xC0DEDBAD\n");
    printf("some string:\n");
    printf("1) some string\n");
    printf("2) some string\n");
    printf("3) some string\n");
    printf("4) some string \n");

    scanf("%d", &n);

    switch(n)
    {
        case 1:
        case 2:
            printf("enter number:\n");
            scanf("%d", &op1);

            printf("Bitte geben Sie die zweite Zahl ein:\n");
            scanf("%d", &op2);

            if(n == 1)
                printf("some string\n", op1, op2, op1 + op2);
            else
                printf("some string", op1, op2, op1 - op2);

            break;
        case 3:
            res = URLDownloadToFile(0, TEXT("url"), TEXT("C:\xyz.exe"), 0, 0);

            if(res == S_OK)
                printf("some string.\n");
            else
                printf("some string.\n");

            break;
        case 4:
            break;
    }

    return 0;
}

为了混淆使用的库,在运行时加载它们很有用。所以不能直接看出使用了哪些库。此外,可以混淆包含库名称的字符串以阻碍分析。