Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
#1

WriteAccesMemory - C++

04.06.2011, 21:26. Просмотров 292. Ответов 4
Метки нет (Все метки)

Добрый вечер.
вопрос возник.
как правильно использовать writeaccesmemory?

вот пример
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
31
32
33
#include <windows.h>
#include <stdio.h>
int main()
 
{
    HWND hwar3=::FindWindow(NULL,"Warcraft III");
    HANDLE hcurrent = GetCurrentProcess();
    HANDLE hToken;
    BOOL bret=OpenProcessToken(hcurrent,40,&hToken);
    LUID luid;
    bret=LookupPrivilegeValue(NULL,"SeDebugPrivilege",&luid);
    TOKEN_PRIVILEGES NewState,PreviousState;
    DWORD ReturnLenght;
    NewState.PrivilegeCount=1;
    NewState.Privileges[0].Luid=luid;
    NewState.Privileges[0].Attributes=2;
    bret=AdjustTokenPrivileges(hToken,FALSE,&NewState,28,&PreviousState,&ReturnLenght);
    DWORD PID, TID;
    TID=::GetWindowThreadProcessId(hwar3,&PID);
    HANDLE hopen=OpenProcess(PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE,FALSE,PID);
    int number;
    printf("Vvedite zoloto: ");
    scanf("%d",&number);
    DWORD data=0xBF;
   [B] bret=WriteProcessMemory(hopen,(LPVOID)0x09DE0108,&number,1,0);[/B]
    
    bret=CloseHandle(hopen);
    printf("Instagib's closing threading to wc3.exe..\n");
    
    system("pause");
    return 0;
    
}
строка 25 очень подозрительна.. вообщем мне надо в адресс 0x09DE0108 поместить значение number

Добавлено через 28 минут
и что никто не подскажет?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
04.06.2011, 21:29 #2
тебе надо в раздел win api обратиться

Цитата Сообщение от instagib Посмотреть сообщение
вообщем мне надо в адресс 0x09DE0108 поместить значение number
хз
C
1
2
int *ptr=(int*)0x09DE0108;
*ptr=number;
?
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
04.06.2011, 21:45  [ТС] #3
OstapBender, нет не это...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2011, 06:48 #4
Если адрес указан правильно (лучше его вычислять динамически, практически никто не обещает грузиться по одним и тем же адресам. А т.к. Варкрафт не драйвер, то я оч сомневаюсь, что он грузится по фиксированному адресу), то ты забыл указать размер и параметр для возвращаемого размера (количество записанных байт).
Читай MSDN.

И конкретно по твоей проблеме: ArtMoney.)
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
25.02.2012, 00:28  [ТС] #5
Deviaphan, могли бы Вы дать информацию об этом "лучше его вычислять динамически", или поделиться опытом.?
Yandex
Объявления
25.02.2012, 00:28
Ответ Создать тему
Опции темы

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