Aion & Delphi - Общение и обсуждение Aion - События, информация, вопросы и ответы по Aion
21.05.2014, 22:56
#1
Рыцарь-лейтенант
Регистрация: 10.06.2011
Сообщений: 467
Популярность: 31147
Сказал(а) спасибо: 231
Поблагодарили 488 раз(а) в 226 сообщениях
Aion & Delphi
Как-то давно грезил о своем чите, но руки дошли только до считывания памяти.
В архиве две версии исходного кода:
1. В виде DLL'ки, инжектится в процесс.
2. Обычный EXE'шник.
Чтоб не пылился, делюсь для общего пользования.
Пример кода, что в архиве.
Код:
function GetModuleAddress(iProcId: Cardinal; DllName: String): NativeUInt;
var
hSnap: THandle;
cModule: ModuleEntry32;
begin
Result := 0;
hSnap := CreateToolHelp32Snapshot(TH32CS_SNAPMODULE, iProcId);
cModule.dwSize := SizeOf(cModule);
if Module32First(hSnap, cModule) then
begin
while Module32Next(hSnap, cModule) do
if cModule.szModule = DllName then
Result := Cardinal(cModule.modBaseAddr);
end;
CloseHandle(hSnap);
end;
Код:
// Ник
ZeroMemory(@name[0], sizeof(name));
address := $10A490C;
HandleWindow := FindWindow(nil, WindowTitle);
GetWindowThreadProcessId(HandleWindow,@ProcessId);
HandleProc := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
BaseAddress := GetModuleAddress(ProcessId, 'Game.dll');
ReadProcessMemory(HandleProc, Ptr(BaseAddress + Address), @name[0], sizeof(name), readwrite);
label1.caption := (WideCharToString(@name[0]));
// ХП
ZeroMemory(@name[0], sizeof(name));
address := $10ADAF8{10A4B44} ;
HandleWindow := FindWindow(nil,WindowTitle);
GetWindowThreadProcessId(HandleWindow,@ProcessId);
HandleProc := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
BaseAddress := GetModuleAddress(ProcessId, 'Game.dll');
ReadProcessMemory(HandleProc, Ptr(BaseAddress + Address), @b, 4, readwrite);
label2.Caption := (inttostr(b));
Offsets сами найдете для своего сервера. Заменять в переменной
address := $10A490C;
[
Ссылки могут видеть только зарегистрированные пользователи. ]
22.05.2014, 11:44
#2
Старший сержант
Регистрация: 09.09.2012
Сообщений: 207
Популярность: 1191
Сказал(а) спасибо: 24
Поблагодарили 131 раз(а) в 56 сообщениях
Re: Aion & Delphi
А зачем перед ХП выделенную память под ник снова заполняешь нулями?
________________
Не стремлюсь в подполье...
22.05.2014, 13:04
#3
Рыцарь-лейтенант
Регистрация: 10.06.2011
Сообщений: 467
Популярность: 31147
Сказал(а) спасибо: 231
Поблагодарили 488 раз(а) в 226 сообщениях
Re: Aion & Delphi
Чтобы быть уверенным, что в памяти (куда указывает переменная) не осталось данных от предыдущего использования. Хотя на деле - это лишний вызов.
22.05.2014, 16:05
#4
Старший сержант
Регистрация: 09.09.2012
Сообщений: 207
Популярность: 1191
Сказал(а) спасибо: 24
Поблагодарили 131 раз(а) в 56 сообщениях
Re: Aion & Delphi
Я понимаю, просто ты второй раз затираешь память по адресу, где name, но этот учвсток уже не используешь. Тогда уж затирал бы участок по адресу переменной b. А вообще перед числами (байт, 2, 4, 8 и т.д.) я думаю этого делать нет смысла. Ну это лично мое мнение)
________________
Не стремлюсь в подполье...
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 10:53 .