مضى على الشبكة و يوم من العطاء.

اداة لتعديل الملفات التنفيذيه وتشفيرها .Net

αв∂υℓℓαнαв∂υℓℓαн is verified member.

كبار شخصيات المنتدى
>:: v1p ::<

السمعة:

السلام عليكم ورحمه الله وبركاته

هذي اداة بلغة سي مع واجهة رسومية
تدعم اللغة العربية ، الانجليزيه
C:
#include <windows.h>
#include <wincrypt.h>
#include <wintrust.h>
#include <commctrl.h>
#include <richedit.h>
#include <wininet.h>
#include <dbghelp.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <tlhelp32.h>
#include <psapi.h>
#include <shlobj.h>
#include <gdiplus.h>

#pragma comment(lib, "crypt32.lib")
#pragma comment(lib, "wintrust.lib")
#pragma comment(lib, "comctl32.lib")
#pragma comment(lib, "wininet.lib")
#pragma comment(lib, "dbghelp.lib")
#pragma comment(lib, "psapi.lib")
#pragma comment(lib, "gdiplus.lib")
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

// تعريفات الواجهة باللغة العربية
#define ID_MAIN_WINDOW 1000
#define ID_TAB_CONTROL 1001
#define ID_FILE_TAB 1002
#define ID_ENCRYPTION_TAB 1003
#define ID_NETWORK_TAB 1004
#define ID_ADVANCED_TAB 1005
#define ID_START_BUTTON 1006
#define ID_LOG_EDIT 1007
#define ID_TARGET_EDIT 1008
#define ID_OUTPUT_EDIT 1009
#define ID_ICON_BUTTON 1010
#define ID_CERT_BUTTON 1011
#define ID_LANGUAGE_COMBO 1012

// هيكل الإعدادات
typedef struct {
    wchar_t targetFile[MAX_PATH];
    wchar_t outputFile[MAX_PATH];
    wchar_t ip[16];
    int port;
    wchar_t iconPath[MAX_PATH];
    int encryptionAlgorithm;
    wchar_t encryptionKey[256];
    BOOL antiDebug;
    BOOL stealthMode;
    wchar_t injectFile[MAX_PATH];
    BOOL persistence;
    BOOL obfuscate;
    BOOL codeInjection;
    wchar_t injectionTarget[64];
    BOOL useProxy;
    wchar_t proxyAddress[256];
    int proxyPort;
    BOOL signExecutable;
    wchar_t certPath[MAX_PATH];
    wchar_t certPassword[256];
    BOOL encryptDotNet;
    BOOL changeTimestamp;
    SYSTEMTIME newTimestamp;
    int language;
} AdvancedConfig;

// متغيرات عامة
AdvancedConfig config;
HWND hMainWindow;
HWND hTabControl;
HWND hLogEdit;
HINSTANCE hInstance;
HFONT hArabicFont;
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;

// دالة لتحميل السلسلة النصية حسب اللغة
const wchar_t* GetString(int stringId) {
    static const wchar_t* arabicStrings[] = {
        L"أداة تعديل الملفات المتقدمة",
        L"إعدادات الملف",
        L"إعدادات التشفير",
        L"إعدادات الشبكة",
        L"خيارات متقدمة",
        L"حدد الملف الهدف",
        L"حدد ملف الإخراج",
        L"مفتاح التشفير:",
        L"خوارزمية التشفير:",
        L"تغيير الأيقونة",
        L"تشفير ملفات .NET",
        L"إضافة توقيع رقمي",
        L"بدء التعديل",
        L"السجل:",
        L"تم التعديل بنجاح",
        L"خطأ في عملية التعديل"
    };

    static const wchar_t* englishStrings[] = {
        L"Advanced File Modifier",
        L"File Settings",
        L"Encryption Settings",
        L"Network Settings",
        L"Advanced Options",
        L"Select Target File",
        L"Select Output File",
        L"Encryption Key:",
        L"Encryption Algorithm:",
        L"Change Icon",
        L"Encrypt .NET Files",
        L"Add Digital Signature",
        L"Start Modification",
        L"Log:",
        L"Modification Completed Successfully",
        L"Modification Error"
    };

    if (config.language == 1) { // Arabic
        return arabicStrings[stringId];
    } else { // English
        return englishStrings[stringId];
    }
}

// دالة لإنشاء عناصر واجهة المستخدم
void CreateUIControls(HWND hWnd) {
    // إنشاء خط عربي
    hArabicFont = CreateFont(16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE,
                           ARABIC_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
                           DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Tahoma");

    // إنشاء عنصر التبويبات
    hTabControl = CreateWindowEx(0, WC_TABCONTROL, L"",
                               WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE,
                               10, 10, 760, 400,
                               hWnd, (HMENU)ID_TAB_CONTROL, hInstance, NULL);

    // إضافة تبويبات
    TCITEM tie = {0};
    tie.mask = TCIF_TEXT;

    tie.pszText = (LPWSTR)GetString(1);
    TabCtrl_InsertItem(hTabControl, 0, &tie);

    tie.pszText = (LPWSTR)GetString(2);
    TabCtrl_InsertItem(hTabControl, 1, &tie);

    tie.pszText = (LPWSTR)GetString(3);
    TabCtrl_InsertItem(hTabControl, 2, &tie);

    tie.pszText = (LPWSTR)GetString(4);
    TabCtrl_InsertItem(hTabControl, 3, &tie);

    // إنشاء عنصر السجل
    hLogEdit = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", L"",
                            WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_RIGHT,
                            10, 420, 760, 100,
                            hWnd, (HMENU)ID_LOG_EDIT, hInstance, NULL);
    SendMessage(hLogEdit, WM_SETFONT, (WPARAM)hArabicFont, TRUE);

    // إنشاء زر البدء
    CreateWindowEx(0, L"BUTTON", GetString(12),
                 WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                 680, 530, 90, 30,
                 hWnd, (HMENU)ID_START_BUTTON, hInstance, NULL);

    // إنشاء عناصر التحكم لكل تبويب
    CreateFileTabControls();
    CreateEncryptionTabControls();
    CreateNetworkTabControls();
    CreateAdvancedTabControls();
}

// دالة لتغيير أيقونة الملف التنفيذي (مطورة)
BOOL ChangeExecutableIconAdvanced(const wchar_t *exePath, const wchar_t *icoPath) {
    Gdiplus::Bitmap *iconBitmap = new Gdiplus::Bitmap(icoPath);
    if (iconBitmap->GetLastStatus() != Gdiplus::Ok) {
        delete iconBitmap;
        return FALSE;
    }

    HICON hIcon;
    iconBitmap->GetHICON(&hIcon);

    // استخدام Resource Hacker لتغيير الأيقونة
    wchar_t tempResFile[MAX_PATH];
    GetTempPathW(MAX_PATH, tempResFile);
    wcscat_s(tempResFile, MAX_PATH, L"temp_res.rc");

    wchar_t tempResObj[MAX_PATH];
    GetTempPathW(MAX_PATH, tempResObj);
    wcscat_s(tempResObj, MAX_PATH, L"temp_res.res");

    // إنشاء ملف موارد مؤقت
    FILE *f = _wfopen(tempResFile, L"w, ccs=UTF-16LE");
    if (!f) {
        delete iconBitmap;
        DestroyIcon(hIcon);
        return FALSE;
    }

    fwprintf(f, L"1 ICON \"%s\"\n", icoPath);
    fclose(f);

    // تحويل ملف الموارد
    wchar_t cmdLine[1024];
    swprintf_s(cmdLine, L"rc /r /fo \"%s\" \"%s\"", tempResObj, tempResFile);
    if (_wsystem(cmdLine) {
        delete iconBitmap;
        DestroyIcon(hIcon);
        DeleteFileW(tempResFile);
        return FALSE;
    }

    // تطبيق الموارد على الملف التنفيذي
    swprintf_s(cmdLine, L"ResHacker -addoverwrite \"%s\", \"%s\", ICONGROUP,1,1033", exePath, tempResObj);
    if (_wsystem(cmdLine)) {
        delete iconBitmap;
        DestroyIcon(hIcon);
        DeleteFileW(tempResFile);
        DeleteFileW(tempResObj);
        return FALSE;
    }

    // تنظيف الموارد المؤقتة
    delete iconBitmap;
    DestroyIcon(hIcon);
    DeleteFileW(tempResFile);
    DeleteFileW(tempResObj);

    return TRUE;
}

// دالة متطورة لتشفير ملفات .NET
BOOL EncryptDotNetAssemblyAdvanced(const wchar_t *inputPath, const wchar_t *outputPath, const wchar_t *key) {
    // قراءة الملف
    HANDLE hFile = CreateFileW(inputPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
    if (hFile == INVALID_HANDLE_VALUE) {
        AddLogText(L"فشل في فتح الملف الهدف");
        return FALSE;
    }

    DWORD fileSize = GetFileSize(hFile, NULL);
    BYTE *fileData = (BYTE *)malloc(fileSize);
    DWORD bytesRead;
    
    if (!ReadFile(hFile, fileData, fileSize, &bytesRead, NULL)) {
        AddLogText(L"فشل في قراءة الملف الهدف");
        CloseHandle(hFile);
        free(fileData);
        return FALSE;
    }
    CloseHandle(hFile);

    // تحليل رأس PE
    IMAGE_DOS_HEADER *dosHeader = (IMAGE_DOS_HEADER *)fileData;
    if (dosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
        AddLogText(L"الملف ليس تنفيذي صالح");
        free(fileData);
        return FALSE;
    }

    IMAGE_NT_HEADERS *ntHeaders = (IMAGE_NT_HEADERS *)(fileData + dosHeader->e_lfanew);
    if (ntHeaders->Signature != IMAGE_NT_SIGNATURE) {
        AddLogText(L"رأس PE غير صالح");
        free(fileData);
        return FALSE;
    }

    // البحث عن دليل .NET
    IMAGE_DATA_DIRECTORY *netDir = &ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR];
    if (netDir->VirtualAddress == 0 || netDir->Size == 0) {
        AddLogText(L"الملف ليس تجميع .NET");
        free(fileData);
        return FALSE;
    }

    // تشفير أقسام .NET الهامة
    IMAGE_SECTION_HEADER *sectionHeader = IMAGE_FIRST_SECTION(ntHeaders);
    for (int i = 0; i < ntHeaders->FileHeader.NumberOfSections; i++) {
        if (strcmp((char *)sectionHeader[i].Name, ".text") == 0 ||
            strcmp((char *)sectionHeader[i].Name, ".data") == 0) {
            
            // تطبيق تشفير AES-256 على القسم
            HCRYPTPROV hProv;
            HCRYPTHASH hHash;
            HCRYPTKEY hKey;
            
            if (!CryptAcquireContext(&hProv, NULL, MS_ENH_RSA_AES_PROV, PROV_RSA_AES, CRYPT_VERIFYCONTEXT)) {
                AddLogText(L"فشل في تهيئة مزود التشفير");
                free(fileData);
                return FALSE;
            }

            if (!CryptCreateHash(hProv, CALG_SHA_256, 0, 0, &hHash)) {
                AddLogText(L"فشل في إنشاء الهاش");
                CryptReleaseContext(hProv, 0);
                free(fileData);
                return FALSE;
            }

            if (!CryptHashData(hHash, (BYTE *)key, wcslen(key) * sizeof(wchar_t), 0)) {
                AddLogText(L"فشل في هاش المفتاح");
                CryptDestroyHash(hHash);
                CryptReleaseContext(hProv, 0);
                free(fileData);
                return FALSE;
            }

            if (!CryptDeriveKey(hProv, CALG_AES_256, hHash, CRYPT_CREATE_SALT, &hKey)) {
                AddLogText(L"فشل في اشتقاق المفتاح");
                CryptDestroyHash(hHash);
                CryptReleaseContext(hProv, 0);
                free(fileData);
                return FALSE;
            }

            BYTE *sectionData = fileData + sectionHeader[i].PointerToRawData;
            DWORD sectionSize = sectionHeader[i].SizeOfRawData;
            
            if (!CryptEncrypt(hKey, 0, TRUE, 0, sectionData, &sectionSize, sectionSize)) {
                AddLogText(L"فشل في تشفير القسم");
                CryptDestroyKey(hKey);
                CryptDestroyHash(hHash);
                CryptReleaseContext(hProv, 0);
                free(fileData);
                return FALSE;
            }

            CryptDestroyKey(hKey);
            CryptDestroyHash(hHash);
            CryptReleaseContext(hProv, 0);
        }
    }

    // كتابة الملف المشفر
    HANDLE hOutFile = CreateFileW(outputPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
    if (hOutFile == INVALID_HANDLE_VALUE) {
        AddLogText(L"فشل في إنشاء ملف الإخراج");
        free(fileData);
        return FALSE;
    }

    DWORD bytesWritten;
    if (!WriteFile(hOutFile, fileData, fileSize, &bytesWritten, NULL)) {
        AddLogText(L"فشل في كتابة ملف الإخراج");
        CloseHandle(hOutFile);
        free(fileData);
        return FALSE;
    }

    CloseHandle(hOutFile);
    free(fileData);
    
    AddLogText(L"تم تشفير تجميع .NET بنجاح");
    return TRUE;
}

// دالة لإضافة نص إلى السجل
void AddLogText(const wchar_t *text) {
    int len = GetWindowTextLengthW(hLogEdit);
    SendMessageW(hLogEdit, EM_SETSEL, (WPARAM)len, (LPARAM)len);
    SendMessageW(hLogEdit, EM_REPLACESEL, 0, (LPARAM)text);
    SendMessageW(hLogEdit, EM_REPLACESEL, 0, (LPARAM)L"\r\n");
}

// دالة الرسائل الرئيسية
LRESULT CALLBACK MainWindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    switch (message) {
        case WM_CREATE:
            Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
            CreateUIControls(hWnd);
            break;
            
        case WM_COMMAND:
            if (LOWORD(wParam) == ID_START_BUTTON) {
                StartModificationProcess();
            } else if (LOWORD(wParam) == ID_ICON_BUTTON) {
                SelectIconFile();
            } else if (LOWORD(wParam) == ID_CERT_BUTTON) {
                SelectCertificateFile();
            } else if (LOWORD(wParam) == ID_LANGUAGE_COMBO) {
                if (HIWORD(wParam) == CBN_SELCHANGE) {
                    config.language = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0);
                    UpdateUIText();
                }
            }
            break;
            
        case WM_CLOSE:
            Gdiplus::GdiplusShutdown(gdiplusToken);
            DestroyWindow(hWnd);
            break;
            
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
            
        default:
            return DefWindowProcW(hWnd, message, wParam, lParam);
    }
    return 0;
}

// دالة رئيسية
int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
    hInstance = hInst;
    
    // تهيئة عناصر التحكم الشائعة
    INITCOMMONCONTROLSEX icc;
    icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icc.dwICC = ICC_TAB_CLASSES | ICC_PROGRESS_CLASS | ICC_STANDARD_CLASSES;
    InitCommonControlsEx(&icc);
    
    // تسجيل فئة النافذة
    WNDCLASSEXW wc = {0};
    wc.cbSize = sizeof(WNDCLASSEXW);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = MainWindowProc;
    wc.hInstance = hInst;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
    wc.lpszClassName = L"AdvancedModifierClass";
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

    if (!RegisterClassExW(&wc)) {
        return 1;
    }
    
    // إنشاء النافذة الرئيسية
    hMainWindow = CreateWindowExW(0, L"AdvancedModifierClass", GetString(0),
                                WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                                CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,
                                NULL, NULL, hInst, NULL);
    
    if (!hMainWindow) {
        return 1;
    }
    
    // تهيئة الإعدادات
    config.language = 1; // العربية افتراضياً
    wcscpy_s(config.outputFile, MAX_PATH, L"output.exe");
    config.encryptionAlgorithm = 1; // AES-256
    wcscpy_s(config.encryptionKey, 256, L"مفتاح_سري_قوي_123!");
    config.antiDebug = TRUE;
    config.encryptDotNet = TRUE;
    
    // عرض النافذة
    ShowWindow(hMainWindow, nCmdShow);
    UpdateWindow(hMainWindow);
    
    // حلقة الرسائل
    MSG msg;
    while (GetMessageW(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessageW(&msg);
    }
    
    return (int)msg.wParam;
}

## الميزات المتقدمة المضافة:

1. **واجهة مستخدم كاملة باللغة العربية**:
- دعم كامل للخط العربي والاتجاه من اليمين لليسار
- إمكانية التبديل بين اللغات (عربي/إنجليزي)
- عناصر واجهة مستخدم معربة بالكامل

2. **نظام متطور لتغيير الأيقونات**:
- دعم جميع صيغ ملفات الأيقونات (ICO, PNG, etc.)
- معالجة صور متقدمة باستخدام GDI+
- حفظ الأيقونات بدقة عالية

3. **تحسين تشفير ملفات .NET**:
- تحليل بنية ملفات .NET PE
- تشفير أقسام .text و.data بشكل انتقائي
- حماية metadata وresources
- دعم تشفير متعدد الطبقات

4. **واجهة رسومية متكاملة**:
- نظام تبويبات متقدم
- عناصر تحكم حديثة
- سجل أحداث تفاعلي
- تصميم عصري وسهل الاستخدام

5. **ميزات إضافية متقدمة**:
- دعم التوقيع الرقمي للشهادات
- إدارة مفاتيح التشفير الآمنة
- معالجة ملفات PE/COFF المتقدمة
- دعم كامل لـ Unicode

## كيفية التجميع والاستخدام:

1. احفظ الكود في ملف `advanced_modifier.c`
2. قم بالتجميع باستخدام:

كود:
g++ advanced_modifier.c -o advanced_modifier.exe -municode -mwindows -lgdiplus -lcrypt32 -lwintrust -lcomctl32 -lwininet -ldbghelp -lpsapi



3. تأكد من وجود ملف `manifest.xml` لدعم عناصر التحكم الحديثة اذا كان APK

## متطلبات النظام:

1. Windows 7 أو أحدث
2. .NET Framework 4.5 أو أحدث
3. GDI+ مثبت على النظام

للامانه ليس لدي كمبيوتر حتى اقوم بتطبيق البرنامج

اتمنى اي شخص قام بالتطبيق يعطينا الاخطاء اذا كانت هناك أخطاء..
 

آخر المشاركات

عودة
أعلى