-
Постов
279 -
Зарегистрирован
-
Посещение
-
Победитель дней
13
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Vlad2
-
-
В твоей задаче это так принципиально?)
-
function ReadFloat(Address: Cardinal): Single;varReaden: Cardinal;Data: Double;begin ReadProcessMemory(PidHandle, Pointer(Address), @Data, SizeOf(Data), Readen); result:=Data;end;
Вывод : Edit1.Text := FloatToStr(readFloat(Adress));
-
Сигнатура у меня уникальная. Но этой функцией я могу сканировать только статическую память. А когда сканирую сигнатуру из динамической, то она ничего не находит!
-
unction ScanSignature(base: Cardinal; size: Cardinal; sign: PByte; mask: PAnsiChar): integer;var mbi: MEMORY_BASIC_INFORMATION; offset: Cardinal; buffer: PByte; BytesRead: Cardinal; i: integer;begin offset := 0; while (offset < size) do begin VirtualQueryEx(m_hProc, Pointer(base + offset), mbi, sizeof(MEMORY_BASIC_INFORMATION)); if (mbi.State <> MEM_FREE) then begin GetMem(buffer, mbi.RegionSize); ReadProcessMemory(m_hProc, mbi.BaseAddress, buffer, mbi.RegionSize, BytesRead); for i := 0 to mbi.RegionSize do begin if (DataCompare(PByte(Integer(buffer) + i), sign, mask)) then begin FreeMem(buffer); result := integer(mbi.BaseAddress) + i; exit; end; end; FreeMem(buffer); end; offset := offset + mbi.RegionSize; end; result := 0; end;
Вот функция сканирования, которая ток статические сканирует.
-
Вот нашел проект со сканером, но он сканирует только статическую память, а к динамической не притрагивается. а мне очень нужно, что делать?
-
Всем привет!)
Столкнулся с нуждой сделать произвольную форму в Delphi 7 с максимально четкой границей.
Полез в гугл и нашел такое видео:
Здесь показано, как сделать форму по заготовленной маске. И конечный результат вроде неплохой.
Но моя Дельфи отказывается устанавливать компонент shapedform, пишет: Could not create output file ...'FormsChanging.bpl'Ну так вот, подскажите, как сделать сложную произвольную форму, чтоб ее окантовка не казалась пиксельной? Повторяю, форма сложная и сделать ее через такие программы типа "Регионы 7.0" не получится.
- 1
-
lamalamaz, .С наступающим!
У меня была похожая проблема в одной игре. Долго мучился, искал, ничего не помогало. Потом психонул и в СЕ сделал такой поиск:
Допустим адрес здоровья 805E6840. Искал диапазон 4 байта в Hex, от 805E0000 до 805EFFFF (можно диапазон сделать побольше).Среди найденных адресов был один статический. Я его определил, как указатель, а смещение до жизней подвел вручную.
Попробуй, может получится -
Отладчик -> Инструменты -> Автоассемблер.
Туда вставляешь это:[ENABLE]{$LUA}writeInteger('[08B60780]+4', 1)[DISABLE]{$LUA}writeInteger('[08B60780]+4', 257)
[08B60780]+4 - это указатель. Вместо его вставь свой адрес.
Далее, Файл -> Добавить скрипт в таблицу.
Потом просто делаешь HotKey на переключения скрипта нужной кнопкой.- 1
-
Ок, а то я уже удалил что делал. Скину позже.
- 1
-
Вроде что то нашел. http://cheaton.ru/f30/poisk-signatur-bazovyh-adresov-dlya-dayz-8343/
Помогите оптимизировать под Delphi 7!- 1
-
Так он на С++ пишет.
-
Самое главное чтоб адрес возвращал и искал массивом) а где такие видео? не нашел...
-
Привет, форумчане!
Помогите, нужно в дельфи сделать AOBScan, который бы умел искать байты такого типа "00 01 ?? 03 04", и возвращал адреса по которым он находил такие байты. -
Спасибо, Все работает, код чуть-чуть подправил только)
procedure TForm1.Timer1Timer(Sender: TObject);begin if (GetAsyncKeyState(VK_UP) <> 0) then begin // Тут код end;end;
- 2
-
Всем привет!
Объясните пожалуйста, как работать с компонентом HotKey в Delphi.
И как с помощью этого компонента сделать горячие клавиши для трейнера, чтоб можно было не сворачивая игру пользоваться функционалом трейнера?Нашел пример, но он не подходит, потому что если в программе зарегистрировать клавишу, то она кроме программы нигде не сработает.
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure WMHOTKEY(var Msg: TMessage); message WM_HOTKEY; { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin RegisterHotKey(Handle, 1, 0, VK_DOWN); RegisterHotKey(Handle, 2, 0, VK_UP);end;procedure TForm1.WMHOTKEY(var Msg: TMessage);begin case Msg.WParam of 1: MessageBox(Handle, 'Down', 'WMHOTKEY', MB_OK or MB_SYSTEMMODAL); 2: MessageBox(Handle, 'Up', 'WMHOTKEY', MB_OK or MB_SYSTEMMODAL); end;end;end.
-
Вопрос: как за этими адресами наблюдать?
можно примерчик? -
Привет форумчане!
Стоит задача обезопасить трейнер написаный на Delphi.
А конкретно, предотвратить перехват читаемых и записываемых параметров и
не дать сканером памяти подключатся к процессу трейнера.
Как можно это реализовать? -
Насколько я помню, это должно было выглядеть бы так:
1. Выделяешь Edit1 (поле для ввода текста).
2. Переходишь в Events.
3. Тыкаешь на OnChange.
4. Создастся процедура, туда вставишь этот код:double Q, E, S;Q = Edit1->Text.ToDouble;E = Edit2->Text.ToDouble;S = Q*E + 320;Edit3->Text = FloatToStr(S);
5. Выделишь Edit2 и перейдешь в Events.
6. В OnChange выберешь Edit1Change.
Если что ни так, камнями не кидайтесь, Последний раз в Borland С++ 6 работал, пишу по памяти. -
-
Ах жаль((
Мнеб серийник жесткого диска запрашивать, да пару методов шифрования использовать. -
Во! Работает на 64-битной версии CE, а на 32 - нет.
Нужен способ реализации такой dllки на Delphi, исходник в студию)) -
Текст неопределённой ошибки можно увидеть?
-
Coder, A1t0r, Спасибо. С функцией вызова dllки разобрался, но вот возникла проблемма с написанием dllлок на Delphi.
library Project2; uses SysUtils, Classes; {$R *.res} function Symma(a,b:integer):Integer;stdcall;begin Result :=a+b;end; exports Symma; beginend.
Вот код dllки, функция вычисляет сумму 2 чисел, передаваемых ей и возвращает результат.
Использование в СЕ.
Symma = package.loadlib("D:\\Program Files (x86)\\Cheat Engine 6.4\\Project2.dll", "Symma")res = Symma(1, 2)print(res)
Программа сообщает о неопределенной ошибке.
Поясните, что нетак!
-
Проблемма актуальна!
Delphi AOBScan с маской
in Высокоуровневое программирование
Опубликовано
Проблема актуальна