Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Почините код

Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2760 синтаксическая ошибка: ожидался токен "объявление", а не "константа" Apex 101
Пофиксил же byte, теперь фикси handle :LUL:
 
C#:
Expand Collapse Copy
void* syscall(LPCWSTR module, LPCWSTR name,    Args... pee)
{
    BYTE yyas{} =
    {
        0x4C, 0x8B, 0xD1,
        0xB8, 0x00, 0x00, 0x00, 0x00,
        0x0F, 0x05,
        0xC3

    };

    static BYTE* poop = (BYTE*)VirtualAlloc(NULL, sizeof(yyas), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);

    memcpy(poop, yyas, sizeof(yyas));
    char* app;
    wcstombs(app, name, wcslen(name));
    *(DWORD*)(poop + 4) = *(DWORD*)((DWORD*)GetProcAddress(GetModuleHandleW(module), app) + 4);

    auto fn = reinterpret_cast<void*(*)(Args...)>(&poop);
    return fn(Args...);
}
Возможно,это поздний ответ xD,но функция
GetProcAddress
не принимает значение char* => можно убрать это в жопу
Код:
Expand Collapse Copy
 char* app;
    wcstombs(app, name, wcslen(name));
и просто туда подставить name.

Код:
Expand Collapse Copy
BYTE yyas{} = {}
- зачем там 2 раза писать скобки?
Можно же просто написать yyas = {}

+
Код:
Expand Collapse Copy
auto fn = reinterpret_cast<void*(*)(Args...)>(&poop);
эта строчка у тебя вообще неправильна

Поправьте меня,если я долблюсь в мозг.
 
Если я не ошибаюсь,то такая функция
Код:
Expand Collapse Copy
wcslen
есть только в C (в C++ ,вроде, ее нету).

Если разбираться,то это пиздец. Лучше самому написать с комментами.
 
Скорее всего этот софт написан на C,а ты нам говоришь,что на C++
Давайте просто всё будем пастить,нихуя не понимая.
Я конечно соглашусь,что заново велосипед создавать не охота (да и нахуй кому это нужно),но если берете готовый велосипед,то умейте его чинить.
 
Последнее редактирование:
Назад
Сверху Снизу