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

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

15.01.2012, 15:16. Просмотров 1009. Ответов 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() = 299 (C++ WinAPI):

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

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

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

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

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

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

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
Привет! Вот еще темы с решениями:

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

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

Самомодификация
Люди подскажите, есть ли на delphi самомодифицирующий код, возможно ли это?

Самомодификация
Люди подскажите самомодифицируемый код на tasm. Я знаю что на асме это...


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

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

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