Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2011, 18:59
Аватар для PaHaNjkee
PaHaNjkee PaHaNjkee вне форума
Начинающий
 
Регистрация: 13.10.2010
Адрес: Ульяновск
Сообщения: 115
Репутация: 10
Радость Лажа с трейнером

Вообщем делал трейнер без юнита вот весь код (взял с чимакса.ру):

Код:
//Немного оптимизации 
{$R-} {проверка диапазона} 
{$S-} {проверка стека} 
{$A+} {"выравнивание слов"} 
program FlatOut; 
uses 
windows, messages, commctrl; //Используемые модули,только самое нужное! 
var 
WinClass : TWndClass; //переменная класса TWndClass для создания главного окна 
hInst : HWND; //Хендл приложения 
Handle : HWND; //локальный хендл 
Com1 : HWND; //TGroupBox 
Com2 : HWND; //TButton 
Com3 : HWND; //TButton 
Com4 : HWND; //TStaticText 
Com5 : HWND; //TStaticText 
Com6 : HWND; //TStaticText 
Msg : TMSG; //сообщения 
hFont : HWND; //хендл шрифта 
win : hwnd; //хендл данного окна 
var 
WindowName : integer; //имя окна 
ProcessId : integer; //ID процесса 
ThreadId : integer; //Поток
buf : PChar; 
HandleWindow : Integer; //хендл окна игры 
write : cardinal; 
const //id наших контролов 
id_1 = 1; //TGroupBox 
id_2 = 2; //TButton 
id_3 = 3; //TButton 
id_4 = 4; //TStaticText 
id_5 = 5; //TStaticText 
id_6 = 6; //TStaticText 
const 
WindowTitle = 'Flat-Out'; //конец формы, начало формы, точный заголовок игры 
Address = $01B40C64; //адрес нашего значения в памяти игры 
PokeValue = $FFFFFFFF; //значение на которое мы будем менять 
NumberOfBytes = 4; //кол-во байт 
{$R XPMan.res} //Здесь у меня лежит иконка моего трейнера и манифес, 
//это для того что бы все контролы были в стиле XP 
procedure Cheating; //Собственно сама процедура изменения значения 
begin 
WindowName := FindWindow(nil,WindowTitle); //находим окно игры 
If WindowName = 0 then //или,обьясняем пользователю чтобы 
begin //он запустил игру 
MessageBox(win,'Вначале игра,а потом трейнер.','Ошибка',MB_OK or MB_ICONINFORMATION); 
end; 
ThreadId := GetWindowThreadProcessId(WindowName,@ProcessId); 
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId); 
GetMem(buf,1); 
buf^ := Chr(PokeValue); 
WriteProcessMemory(HandleWindow,ptr(Address),buf,NumberOfBytes,write);//пишем в наш адресс наше значение 
FreeMem(buf); 
CloseHandle(HandleWindow);//конец формы, началоформы, закрываем хэндл, чтобы не вылететь с ошибкой 
end; 
procedure ShutDown; //процедура выхода из программы 
begin 
DeleteObject(hFont); //удаляем шрифт 
UnRegisterClass('Sample Class', hInst); //удаляем окно 
ExitProcess(hInst); //закрываем окно 
Halt; //на всякий случай :) 
end; 
procedure About; //наше окно о программе 
begin 
MessageBox(win, ' [C0DED]: bY g-l-u-k [TeaM - X] ' +#13#10+ 
' ' +#13#10+ 
' GreatZzz....: ' +#13#10+ 
' ' +#13#10+ 
' Baron_Gede,6aHguT,AllexY ' +#13#10+ 
' And all TeaM - X Members ! ' +#13#10+ 
' ' +#13#10+ 
' Write on pure Delphi (WinAPI) ' +#13#10+ 
' Сopyright (g-l-u-k)R 2004-2005 ' +#13#10+ 
' ' +#13#10+ 
' http://www.team-x.ru ' +#13#10+ 
' e-mail : g-l-u-k@rambler.ru ' +#13#10+ 
' ' +#13#10+ 
' GEngine v0.1 ' +#13#10+ 
' All Right Reserved ',
'About',MB_OK or MB_ICONINFORMATION); 
end; 
function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall; //обработчик сообщений 
begin 
Result := DefWindowProc(hwnd, msg, wparam, lparam); 
case Msg of 
WM_COMMAND: 
case LoWord(wParam) of 
id_2 : 
if HiWord(wParam) = bn_Clicked then 
About; //если пользователь нажимает на кнопку "About",получат свой About 
id_3 : 
if HiWord(wParam) = bn_Clicked then 
ShutDown; //если выход то...... 
end; 
WM_DESTROY: 
ShutDown; 
end; 
end; 
begin 
hInst := GetModuleHandle(nil); 
with WinClass do 
begin 
Style := CS_PARENTDC; //стиль класса главного окна 
hIcon := LoadIcon(hInstance, IDI_APPLICATION); //иконка программы 
lpfnWndProc := @WindowProc; //назначение обработчика сообщений 
hInstance := hInst; 
hbrBackground := COLOR_BTNFACE + 1; //цвет окна 
lpszClassName := 'Sample Class'; //класс окна 
hCursor := LoadCursor(0, IDC_ARROW); //активный курсор 
end; 
InitCommonControls; 
RegisterClass(WinClass); //регистрация класса в сис-ме 
{Создание главного окна программы} 
Handle := CreateWindowEx(0, 'Sample Class', '[FlatOut] Trainer +1', 
WS_OVERLAPPED or WS_SYSMENU or 
WS_VISIBLE, 
503, 345, 234, 222, 
0, 0, 
hInst, nil); 
{Создание шрифта} 
hFont := CreateFont( 
-12, 0, 0, 0, 0, 0, 0, 0, 
DEFAULT_CHARSET, 
OUT_DEFAULT_PRECIS, 
CLIP_DEFAULT_PRECIS, 
DEFAULT_QUALITY, 
DEFAULT_PITCH or FF_DONTCARE, 'Terminal'); 
Com1:=CreateWindow( 
'Button', 
'Trainer Options:' , 
WS_CHILD or BS_GROUPBOX or WS_VISIBLE, 
2,2,222,165, Handle, id_1, hInst,nil); 
SendMessage(Com1,WM_SETFONT,hFont,0); 
Com2 := CreateWindow( 
'Button', 
'About', 
WS_CHILD or BS_TEXT or WS_VISIBLE, 
3, 171, 74, 20,Handle, id_2, hInst, nil); 
SendMessage(Com2,WM_SETFONT,hFont,0); 
Com3 := CreateWindow( 
'Button', 
'Quit', 
WS_CHILD or BS_TEXT or WS_VISIBLE, 
148, 171, 74, 20,Handle, id_3, hInst, nil); 
SendMessage(Com3,WM_SETFONT,hFont,0); 
Com4 :=CreateWindow( 
'Static', 
'[F1] :...: More Money' , 
WS_CHILD or SS_LEFT or SS_NOTIFY or WS_VISIBLE, 
51,25,117,17,Handle, id_4, hInst,nil); 
SendMessage(Com4,WM_SETFONT,hFont,0); 
Com5:=CreateWindow( 
'Static', 
'[C0DED] :...: g-l-u-k [TeaM - X]' , 
WS_CHILD or SS_LEFT or SS_NOTIFY or WS_VISIBLE or WS_DISABLED, 
32,145,180,17,Handle, id_5, hInst,nil); 
SendMessage(Com5,WM_SETFONT,hFont,0); 
Com6:=CreateWindow( 
'Static', 
'[R.Mouse] :...: About Box ' , 
WS_CHILD or SS_LEFT or SS_NOTIFY or WS_VISIBLE, 
26,50,190,17,Handle, id_6, hInst,nil); 
SendMessage(Com6,WM_SETFONT,hFont,0); 
//Цикл сбора сообщений 
while(GetMessage(Msg, Handle, 0, 0)) do 
begin 
TranslateMessage(Msg); //приём сообщений 
if (GetAsyncKeyState(vk_f1 ) <> 0) then Cheating; //если нажата клавиша F1,читим игру 
if (GetAsyncKeyState(vk_RButton) <> 0) then About; //если нажата правая кнопка мыши,то показываем About 
if (GetAsyncKeyState(vk_Escape ) <> 0) then ShutDown; 
DispatchMessage(Msg); //удаление сообщений из очереди 
end; 
end.


Вообщем вот код который нужен:

Код:
WindowTitle = 'GTA:SA:MP'; //Сдесь подставил точное имя своей игры
Address = $0C126JG2; //подставил свой
PokeValue = $FFFFFFFF; // ...
NumberOfBytes = 4; //... 

А вот на последних 2-х строк завис. Вообщем открыл станд. калькулятор (Пуск=>Все программы=>Стандартные=>Калькулятор), выбираю Dec, ввожу 100 000 и потом нажимаю на Hex, пишет "186A0" и я после $ подставил это число. Ну вообщем там рядом стояло 8 байт ну я и ввел:
Код:
WindowTitle = 'GTA:SA:MP'; //Сдесь подставил точное имя своей игры
Address = $0C126JG2; //подставил свой
PokeValue = $186A0; //адресс найденный в калькуляторе
NumberOfBytes = 8; //там рядом выбрано 8 байт

Вообщем дает не 100 000, а 25 (Хотя трейнер работает, он изменяет значение но не на то что нужно) . Помогите исправить.
__________________
Начинающий Delphi
Помогаю за Спасибо!
Ответить с цитированием
  #2  
Старый 09.01.2011, 21:25
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Попробуй где NumberOfBytes поставить 4. А то для игры переменная в 8 байт - это как-то слишком...
И еще - она точно целочисленная?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 10.01.2011, 13:51
Аватар для PaHaNjkee
PaHaNjkee PaHaNjkee вне форума
Начинающий
 
Регистрация: 13.10.2010
Адрес: Ульяновск
Сообщения: 115
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Попробуй где NumberOfBytes поставить 4. А то для игры переменная в 8 байт - это как-то слишком...
И еще - она точно целочисленная?
Попробую...
Насчет целочисленности я не знаю...
__________________
Начинающий Delphi
Помогаю за Спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025