Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Fusix
0 / 0 / 0
Регистрация: 08.10.2010
Сообщений: 133
1

Самомодификация. GetLastError() = 299

15.01.2012, 15:16. Просмотров 1040. Ответов 1
Метки нет (Все метки)

Решил потренироваться и изучить самомодификацию.
Написал код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int _tmain(int argc, _TCHAR* argv[])
{
    unsigned char* AddressFunc = (unsigned char*)Check;
 
 
    DWORD dwOldProtect;
    bool ret = Check(1);
    bool w;
 
    for(int i = 0; i <= 16; i++)
    {
        if( (byte)AddressFunc[i] == 0x05 &&
            (byte)AddressFunc[i+1] == 0x75 &&
            (byte)AddressFunc[i+2] == 0x04)
            {
                unsigned char *bbyte = new unsigned char[2];
                bbyte[0] = 0xEB;
 
                if(VirtualProtect((void *)&AddressFunc[i], 8, PAGE_READWRITE, &dwOldProtect))
                {
                    w = WriteProcessMemory(GetCurrentProcess(), (void *)&AddressFunc[i+1], (void*)bbyte[0], 1, NULL);
                                        DWORD E = GetLastError(); // Ошибка 299, запрос выполен частично... точнее вобще не выполнен
                    break;
                }
            }
    }
 
    system("pause");
    return 0;
}
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2012, 15:16
Ответы с готовыми решениями:

Как сделать обработку ошибок? GetLastError возвращает ошибки 203, 299, 1400
Уже три дня бьюсь :wall: не где не могу найти как делать обработку ошибок и что...

Как пользоваться GetLastError() ?
Хотел узнать, как пользоваться этой функцией? Где-то говорят вывести её на...

Отлов ошибок. GetLastError()
Отлов ошибок, ошибка регистрации окна, ошибка создания окна, ошибка создания...

Ошибка 299 при вызове GetModuleInformation()
Пытаюсь получить точку входа процесса explorer.exe, вылазит ошибка 299....

LineTo / Polyline ошибка, GetLastError() == 0
Здравствуйте. Проблема следующая: Приложение для отрисовки графики использует...

1
nxnx
Формучанин
362 / 293 / 41
Регистрация: 02.11.2010
Сообщений: 1,234
15.01.2012, 15:56 2
1.
C++
1
VirtualProtect((void *)&AddressFunc[i], 8, PAGE_EXECUTE_READWRITE, &dwOldProtect)
лучше делать так. Иначе риск словить SIGSEGV (если обе функции находятся на одной странице и DEP включён)
2.
переменная:
C++
1
2
 unsigned char *bbyte = new unsigned char[2];
                                bbyte[0] = 0xEB;
возможно имелось в виду:
C++
1
w = WriteProcessMemory(GetCurrentProcess(), (void *)&AddressFunc[i+1], (void*)&bbyte[0], 1, NULL);
((void*)bbyte[0] ) == неверный адрес == 0x000000EB
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2012, 15:56

GetLastError() ошибка 127 не могу понять почему не вызывает?
dll #include &lt;vcl.h&gt; #include &lt;windows.h&gt; #include &lt;fstream&gt; #pragma...

OpenEventLog возвращает 0, GetLastError возвращает 1314 (Недостаточно прав)
Добрый день! В программе используется OpenEventLog, она возвращает нулевой...

самомодификация
Возник достаточно нубский (учитывая опыт работы с паскалем) вопрос. В книгах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru