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

Помагите довести исходник до ума - C++

Восстановить пароль Регистрация
 
mnk1
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 9
03.11.2011, 23:14     Помагите довести исходник до ума #1
Здраствуйте дорогой форум!

я новичек в этом деле , нашел исходник на c++ для игры warcraft maphack и не могу его откомпилировать

Прошу вас пожалуйста помогите мне , да бы этот исходник заработал

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <windows.h> 
#include <winbase.h>
int main()
{
//Find wc3 windows
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 ReturnLength;
 
NewState.PrivilegeCount =1;
NewState.Privileges[0].Luid =luid;
NewState.Privileges[0].Attributes=2;
 
bret=AdjustTokenPrivileges(hToken,FALSE,&NewState,28,&PreviousState,&ReturnLength);
 
DWORD PID, TID;
TID = ::GetWindowThreadProcessId (hwar3, &PID);
//Open wc3 process
HANDLE hopen=OpenProcess( PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE,FALSE,PID);
 
 
//Write memory
DWORD data=0x74;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F4069F0,&data,1,0);
data=0x8B;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F406A0E,&data,1,0);
data=0x09;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F406A0F,&data,1,0);
data=0x90;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F406A10,&data,1,0);
data=0x8B;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F406A13,&data,1,0);
data=0x09;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F406A14,&data,1,0);
data=0x90;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F406A15,&data,1,0);
data=0x90;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F29FE20,&data,1,0);
data=0x90;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F29FE21,&data,1,0);
data=0x00;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F149198,&data,1,0);
data=0x40;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F2A0803,&data,1,0);
data=0x33;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F2A0804,&data,1,0);
data=0xC0;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F2A0805,&data,1,0);
data=0x42;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F2A0806,&data,1,0);
data=0x33;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F2A0807,&data,1,0);
data=0xD2;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F2A0808,&data,1,0);
data=0xEB;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F14A0B4,&data,1,0);
data=0xEB;
bret=WriteProcessMemory(hopen,(LPVOID)0x6F2A0703,&data,1,0);
 
//Close handle
bret=CloseHandle(hopen); 
return 0;
}
Вот что пишет компилятор у меня студия 2010.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1>------ Построение начато: проект: Учеба C++, Конфигурация: Debug Win32 ------
1>Построение начато 03.11.2011 23:04:23.
1>PrepareForBuild:
1>  Создание каталога "C:\Users\Administrator\documents\visual studio 2010\Projects\Учеба C++\Debug\".
1>InitializeBuildStatus:
1>  Создание "Debug\Учеба C++.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1>  12345.cpp
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(6): error C2664: FindWindowW: невозможно преобразовать параметр 2 из "const char [13]" в "LPCWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(15): error C2664: LookupPrivilegeValueW: невозможно преобразовать параметр 2 из "const char [17]" в "LPCWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.28
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
А так же можно попробовать другой исходник

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
34
35
36
37
38
39
40
41
42
43
#include <windows.h>
 
int main()
 
(
 
   HWND hwar3=::FindWindow(NULL, "Warcraft III");
   HANDLE hcurrent = GetCurrentProcess();
   HANDLE hToken;
   BOOL process = OpenProcessToken(hcurrent, 40, &hToken);
   LUID luid;
   process = LookupPrivilegeValue(NULL, "SeDebagPrivilege",&luid);
   TOKEN_PRIVILEGES NewState, PreviousState;
   DWORD ReturnLenght;
   NewState.PrivilegeCount = 1;     
   NewState.Privileges[0].Luid = luid;
   NewState.Privileges[0].Attributes = 2;
   process = AdjustTokenPrivileges(hToken, FALSE, &NewState, 20, &PreviousState, &ReturnLength);
   
   DWORD PID, TID, JUMP;
   TID = ::GetWindowThreadProcessId(hwar3, &PID);
   HANDLE hopen = OpenProcess(
     PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE, FALSE, PID
 
   );
   
   JUMP = 0x66;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1563, &JUMP, 1, 0);
 
   JUMP = 0xB9;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1564, &JUMP, 1, 0);
 
   JUMP = 0x0F;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1565, &JUMP, 1, 0);
 
   JUMP = 0x00;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1565, &JUMP, 1, 0);
 
   process = CloseHandle(hopen);
 
   return 0;
 
   )

вот что пишет компилятор к этому исходнику

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
1>------ Построение начато: проект: Учеба C++, Конфигурация: Debug Win32 ------
1>Построение начато 03.11.2011 23:12:29.
1>InitializeBuildStatus:
1>  Обращение к "Debug\Учеба C++.unsuccessfulbuild".
1>ClCompile:
1>  12345.cpp
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(7): error C2664: FindWindowW: невозможно преобразовать параметр 2 из "const char [13]" в "LPCWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(7): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(7): error C2091: функция возвращает функцию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(12): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(12): error C2374: process: переопределение; множественная инициализация
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(10): см. объявление "process"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(12): error C2664: LookupPrivilegeValueW: невозможно преобразовать параметр 2 из "const char [17]" в "LPCWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(15): error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(15): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(15): error C2371: NewState: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(13): см. объявление "NewState"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(16): error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(16): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(16): error C2371: NewState: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(13): см. объявление "NewState"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(17): error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(17): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(17): error C2371: NewState: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(13): см. объявление "NewState"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(18): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(18): error C2374: process: переопределение; множественная инициализация
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(10): см. объявление "process"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(18): error C2065: ReturnLength: необъявленный идентификатор
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(21): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(21): error C2371: TID: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(20): см. объявление "TID"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(21): error C2065: hwar3: необъявленный идентификатор
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(27): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(27): error C2371: JUMP: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(20): см. объявление "JUMP"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(28): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(28): error C2374: process: переопределение; множественная инициализация
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(10): см. объявление "process"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(30): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(30): error C2371: JUMP: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(20): см. объявление "JUMP"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(31): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(31): error C2374: process: переопределение; множественная инициализация
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(10): см. объявление "process"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(33): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(33): error C2371: JUMP: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(20): см. объявление "JUMP"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(34): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(34): error C2374: process: переопределение; множественная инициализация
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(10): см. объявление "process"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(36): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(36): error C2371: JUMP: переопределение; различные базовые типы
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(20): см. объявление "JUMP"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(37): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(37): error C2374: process: переопределение; множественная инициализация
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(10): см. объявление "process"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(39): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(39): error C2374: process: переопределение; множественная инициализация
1>          c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(10): см. объявление "process"
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(41): error C2059: синтаксическая ошибка: return
1>c:\users\administrator\documents\visual studio 2010\projects\учеба c++\учеба c++\12345.cpp(43): error C2059: синтаксическая ошибка: )
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.56
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
а так же мейк файл к этому исходнику
C++
1
2
3
4
5
6
# Makefile
mh: mh.o
    g++ -o mh mh.o -static-libgcc
 
mh.o: mh.cpp
    g++ -c mh.cpp -mwindows
Буду очень благодарен вашему форуму и людям в частности кто откликнулся на помощь спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
04.11.2011, 00:05     Помагите довести исходник до ума #2
В первом случае в 6 и 15 строке добавь перед строками L. То есть чтобы было L"текст".
Во втором случае тело main должно стоять в фигурных скобках {}, с L аналогично.
Bers
Заблокирован
04.11.2011, 00:11     Помагите довести исходник до ума #3
в вижал студии, в настройках проекта можно сделать поддержку многобайтовой кодировки и забыть все все эти буковки 'L'
mnk1
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 9
04.11.2011, 08:07  [ТС]     Помагите довести исходник до ума #4
Вообщем решил второй исходник выбрать но осталась одна ошибка проверьте исходник еще разок пожалуйста

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
34
35
36
37
38
39
40
41
42
43
#include <windows.h>
 
int main()
{
 
   HWND hwar3=::FindWindow(NULL, "Warcraft III");
   HANDLE hcurrent = GetCurrentProcess();
   HANDLE hToken;
   BOOL process = OpenProcessToken(hcurrent, 40, &hToken);
   LUID luid;
   process = LookupPrivilegeValue(NULL, "SeDebagPrivilege",&luid);
   TOKEN_PRIVILEGES NewState, PreviousState; 
   DWORD ReturnLenght;
   NewState.PrivilegeCount = 1;         
   NewState.Privileges[0].Luid = luid;
   NewState.Privileges[0].Attributes = 2;
   process = AdjustTokenPrivileges(hToken, FALSE, &NewState, 20, &PreviousState, &ReturnLength);
   
   DWORD PID, TID, JUMP;
   TID = ::GetWindowThreadProcessId(hwar3, &PID);
   HANDLE hopen = OpenProcess(
     PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE, FALSE, PID
 
   );
 
 
   JUMP = 0x66;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1563, &JUMP, 1, 0);
 
   JUMP = 0xB9;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1564, &JUMP, 1, 0);
 
   JUMP = 0x0F;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1565, &JUMP, 1, 0);
 
   JUMP = 0x00;
   process = WriteProcessMemory(hopen, (LPVOID)0x6F3A1565, &JUMP, 1, 0);
 
   process = CloseHandle(hopen);
 
   return 0;
 
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
1>------ Построение начато: проект: Rampage, Конфигурация: Debug Win32 ------
1>Построение начато 04.11.2011 8:05:41.
1>InitializeBuildStatus:
1>  Обращение к "Debug\Rampage.unsuccessfulbuild".
1>ClCompile:
1>  MainFaile.cpp
1>c:\users\administrator\documents\visual studio 2010\projects\rampage\rampage\mainfaile.cpp(17): error C2065: ReturnLength: необъявленный идентификатор
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.28
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
вообщем не знаю как объявить индификатор , напишите пожалуйста если не сложно , заранее спасибо!
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.11.2011, 09:21     Помагите довести исходник до ума #5
Он объявлен, опечатка в коде:
C++
1
2
3
4
//13 line
DWORD ReturnLenght;
//17 line 
...&ReturnLength...
исправь.
Yandex
Объявления
04.11.2011, 09:21     Помагите довести исходник до ума
Ответ Создать тему
Опции темы

Текущее время: 10:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru