lizzmack Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 И снова приветствую! Продолжал разбирать KF2, пытался сейчас освоить курс уроков Михаила Ремизова о создании есп. Но вот наткнулся на тупик, не могу найти в структурах позиции (по x y z) себя, а так же мобов.(хотел попробовать аим) Выходил на структуру игрока следующим образом: нашел свое хп, указатель 1 уровня на него, добавил сам адрес указателя в таблицу. Скрытый текст Затем посмотрел что делает указатель в памяти, открыл "disserect structure", пошел по смещению, которое есть на указателе(384) и нашел свое хп. Скрытый текст "Окей" подумал я, вроде правильно иду, искал float'ы позиций (вверх и вниз по структуре), не нашел, или неправильно искал. Дальше смотрю в другие указатели, где по идее должны быть данные о здоровье врагов, но везде 0( открыл первые 10 указателей подряд). Количество врагов - вообще не понял где искать. В общем запутался по-полной в поисках этих оффсетов координат. Подтолкните на правильную дорогу Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 (изменено) 13 минуты назад, lizzmack сказал: Но вот наткнулся на тупик, не могу найти в структурах позиции (по x y z) себя, а так же мобов.(хотел попробовать аим) Не все адреса связаны в одну структуру. Ищи просто координаты через поиск. Float - неизвестное и для быстроты ищи Z координату ( Высота ). Встал повыше? Отсеиваешь значение увеличилось. Встал пониже? Отсеиваешь значение уменьшилось. И так пока не найдешь И да не стоит создавать новую тему. Ты мог в старой своей отписать Изменено 28 марта, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 12 минуты назад, what228 сказал: Не все адреса связаны в одну структуру. Ищи просто координаты через поиск. Float - неизвестное и для быстроты ищи Z координату ( Высота ). Встал повыше? Отсеиваешь значение увеличилось. Встал пониже? Отсеиваешь значение уменьшилось. И так пока не найдешь И да не стоит создавать новую тему. Ты мог в старой своей отписать Насчет темы, я долго сомневался куда написать(в новую или старую тему), ведь, вопрос должен был бы соответствовать названию темы. Поэтому создал еще одну, с общим названием, куда, если что - напишу еще вопросы. Извиняйте. Сейчас попробую отдельным поиском найти координаты. Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 Нашел 2 указателя, один с таким же адресом, что и хп второй имеет иной адрес, указывает туда же, посмотрел по 10 указателям по этим же смещениям тоже коорды. Получается, что тот который отличается - это оффсет мобов? Скрытый текст Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 38 минуты назад, lizzmack сказал: Нашел 2 указателя, один с таким же адресом, что и хп второй имеет иной адрес, указывает туда же, посмотрел по 10 указателям по этим же смещениям тоже коорды. Получается, что тот который отличается - это оффсет мобов? Что-то я туплю.. Но для чего ты искал указатель? Просто нашел координату поставил бряк посмотрел. Нашел инструкцию работающую с тобой ( ну или со всеми ). Дальше определяешь структуру на основе этой инструкции. Если инструкция работает только с тобой то фильтры не нужны если со всеми то фильтры пишешь. Можешь сказать что ты хочешь сделать? Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 Только что, what228 сказал: Что-то я туплю.. Но для чего ты искал указатель? Просто нашел координату поставил бряк посмотрел. Нашел инструкцию работающую с тобой ( ну или со всеми ). Дальше определяешь структуру на основе этой инструкции. Если инструкция работает только с тобой то фильтры не нужны если со всеми то фильтры пишешь. Можешь сказать что ты хочешь сделать? пытаюсь понять откуда у михаила ремизова в видео https://www.youtube.com/watch?v=qzh6nL85SHs взялись оффсеты, если в предыдущей части он говорил только о смещениях в структуре между указателями на игроков, и внутри них на хп этих игроков. Ибо вот у него таблица , а через момент уже адреса. Конечная цель у меня - получить оффсет мобов. а там уже с ним что-нибудь поделать. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 41 минуты назад, lizzmack сказал: пытаюсь понять откуда у михаила ремизова в видео https://www.youtube.com/watch?v=qzh6nL85SHs взялись оффсеты, если в предыдущей части он говорил только о смещениях в структуре между указателями на игроков, и внутри них на хп этих игроков. Ибо вот у него таблица , а через момент уже адреса. Конечная цель у меня - получить оффсет мобов. а там уже с ним что-нибудь поделать. Вот к примеру Vacuum: Скрытый текст [ENABLE] aobscanmodule(sl_Vacuum,KFGame.exe,F3 41 0F 10 47 08 F3 0F 5C) alloc(newmem,$1000,"KFGame.exe"+656AB1) label(code) label(return) label(BranchVacuum) label(BranchLoader) label(BranchSaver) label(sl_X) label(sl_Y) label(sl_Z) label(sl_Adder) label(sl_Loader) label(sl_Saver) registersymbol(sl_Loader) registersymbol(sl_Saver) registersymbol(sl_X) registersymbol(sl_Y) registersymbol(sl_Z) newmem: sl_Saver: dd 0 sl_Loader: dd 0 sl_X: dd 0 sl_Y: dd 0 sl_Z: dd 0 sl_Adder: dd (float)100 BranchVacuum: cmp [sl_Saver],0 jne BranchSaver cmp [sl_Loader],0 jne BranchLoader jmp code BranchSaver: cmp [r15+B0],000033FA jne code cmp [r15+AC],00000000 jne code cmp [r15+F4],#22 jne code fld dword ptr [r15] fadd dword ptr [sl_Adder] fstp dword ptr [sl_X] fld dword ptr [r15+04] fstp dword ptr [sl_Y] fld dword ptr [r15+08] fstp dword ptr [sl_Z] mov [sl_Saver],0 jmp code BranchLoader: cmp [r15+AC],00000000 je code cmp [r15+F4],4 jne code fld dword ptr [sl_X] fstp dword ptr [r15] fld dword ptr [sl_Y] fstp dword ptr [r15+04] fld dword ptr [sl_Z] fstp dword ptr [r15+08] jmp code code: movss xmm0,[r15+08] jmp return sl_Vacuum: jmp BranchVacuum nop return: registersymbol(sl_Vacuum) [DISABLE] sl_Vacuum: db F3 41 0F 10 47 08 unregistersymbol(sl_Vacuum) unregistersymbol(sl_Loader) unregistersymbol(sl_Saver) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "KFGame.exe"+656AB1 "KFGame.exe"+656A81: 41 80 BE C0 00 00 00 01 - cmp byte ptr [r14+000000C0],01 "KFGame.exe"+656A89: 75 67 - jne KFGame.exe+656AF2 "KFGame.exe"+656A8B: 41 F7 86 F0 00 00 00 00 10 00 00 - test [r14+000000F0],1000 "KFGame.exe"+656A96: 75 53 - jne KFGame.exe+656AEB "KFGame.exe"+656A98: 85 C9 - test ecx,ecx "KFGame.exe"+656A9A: 75 4F - jne KFGame.exe+656AEB "KFGame.exe"+656A9C: F3 41 0F 10 0F - movss xmm1,[r15] "KFGame.exe"+656AA1: F3 0F 5C 4D A0 - subss xmm1,[rbp-60] "KFGame.exe"+656AA6: F3 41 0F 10 57 04 - movss xmm2,[r15+04] "KFGame.exe"+656AAC: F3 0F 5C 55 A4 - subss xmm2,[rbp-5C] // ---------- INJECTING HERE ---------- "KFGame.exe"+656AB1: F3 41 0F 10 47 08 - movss xmm0,[r15+08] // ---------- DONE INJECTING ---------- "KFGame.exe"+656AB7: F3 0F 5C 45 A8 - subss xmm0,[rbp-58] "KFGame.exe"+656ABC: F3 44 0F 5E E7 - divss xmm12,xmm7 "KFGame.exe"+656AC1: F3 41 0F 59 CC - mulss xmm1,xmm12 "KFGame.exe"+656AC6: F3 41 0F 59 D4 - mulss xmm2,xmm12 "KFGame.exe"+656ACB: F3 41 0F 59 C4 - mulss xmm0,xmm12 "KFGame.exe"+656AD0: F3 41 0F 11 8E 8C 01 00 00 - movss [r14+0000018C],xmm1 "KFGame.exe"+656AD9: F3 41 0F 11 96 90 01 00 00 - movss [r14+00000190],xmm2 "KFGame.exe"+656AE2: F3 41 0F 11 86 94 01 00 00 - movss [r14+00000194],xmm0 "KFGame.exe"+656AEB: 45 89 AE 94 01 00 00 - mov [r14+00000194],r13d "KFGame.exe"+656AF2: 49 8B 8E 68 02 00 00 - mov rcx,[r14+00000268] } Фильтры на быструю руку. Репак от nemos. Насчет видео: Скрытый текст const DWORD plr_num_offset = 0x93CCB8 - Адрес библиотеки const DWORD plr_list_offset = 0x0089944C - Это адрес указателя const DWORD hp_offset = 0x214 - Это смещение const DWORD coords_offset = 0x214 - Это смещение Если не так меня поправят. Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 48 минуты назад, what228 сказал: Вот к примеру Vacuum: Скрыть содержимое [ENABLE] aobscanmodule(sl_Vacuum,KFGame.exe,F3 41 0F 10 47 08 F3 0F 5C) alloc(newmem,$1000,"KFGame.exe"+656AB1) label(code) label(return) label(BranchVacuum) label(BranchLoader) label(BranchSaver) label(sl_X) label(sl_Y) label(sl_Z) label(sl_Adder) label(sl_Loader) label(sl_Saver) registersymbol(sl_Loader) registersymbol(sl_Saver) registersymbol(sl_X) registersymbol(sl_Y) registersymbol(sl_Z) newmem: sl_Saver: dd 0 sl_Loader: dd 0 sl_X: dd 0 sl_Y: dd 0 sl_Z: dd 0 sl_Adder: dd (float)100 BranchVacuum: cmp [sl_Saver],0 jne BranchSaver cmp [sl_Loader],0 jne BranchLoader jmp code BranchSaver: cmp [r15+B0],000033FA jne code cmp [r15+AC],00000000 jne code cmp [r15+F4],#22 jne code fld dword ptr [r15] fadd dword ptr [sl_Adder] fstp dword ptr [sl_X] fld dword ptr [r15+04] fstp dword ptr [sl_Y] fld dword ptr [r15+08] fstp dword ptr [sl_Z] mov [sl_Saver],0 jmp code BranchLoader: cmp [r15+AC],00000000 je code cmp [r15+F4],4 jne code fld dword ptr [sl_X] fstp dword ptr [r15] fld dword ptr [sl_Y] fstp dword ptr [r15+04] fld dword ptr [sl_Z] fstp dword ptr [r15+08] jmp code code: movss xmm0,[r15+08] jmp return sl_Vacuum: jmp BranchVacuum nop return: registersymbol(sl_Vacuum) [DISABLE] sl_Vacuum: db F3 41 0F 10 47 08 unregistersymbol(sl_Vacuum) unregistersymbol(sl_Loader) unregistersymbol(sl_Saver) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "KFGame.exe"+656AB1 "KFGame.exe"+656A81: 41 80 BE C0 00 00 00 01 - cmp byte ptr [r14+000000C0],01 "KFGame.exe"+656A89: 75 67 - jne KFGame.exe+656AF2 "KFGame.exe"+656A8B: 41 F7 86 F0 00 00 00 00 10 00 00 - test [r14+000000F0],1000 "KFGame.exe"+656A96: 75 53 - jne KFGame.exe+656AEB "KFGame.exe"+656A98: 85 C9 - test ecx,ecx "KFGame.exe"+656A9A: 75 4F - jne KFGame.exe+656AEB "KFGame.exe"+656A9C: F3 41 0F 10 0F - movss xmm1,[r15] "KFGame.exe"+656AA1: F3 0F 5C 4D A0 - subss xmm1,[rbp-60] "KFGame.exe"+656AA6: F3 41 0F 10 57 04 - movss xmm2,[r15+04] "KFGame.exe"+656AAC: F3 0F 5C 55 A4 - subss xmm2,[rbp-5C] // ---------- INJECTING HERE ---------- "KFGame.exe"+656AB1: F3 41 0F 10 47 08 - movss xmm0,[r15+08] // ---------- DONE INJECTING ---------- "KFGame.exe"+656AB7: F3 0F 5C 45 A8 - subss xmm0,[rbp-58] "KFGame.exe"+656ABC: F3 44 0F 5E E7 - divss xmm12,xmm7 "KFGame.exe"+656AC1: F3 41 0F 59 CC - mulss xmm1,xmm12 "KFGame.exe"+656AC6: F3 41 0F 59 D4 - mulss xmm2,xmm12 "KFGame.exe"+656ACB: F3 41 0F 59 C4 - mulss xmm0,xmm12 "KFGame.exe"+656AD0: F3 41 0F 11 8E 8C 01 00 00 - movss [r14+0000018C],xmm1 "KFGame.exe"+656AD9: F3 41 0F 11 96 90 01 00 00 - movss [r14+00000190],xmm2 "KFGame.exe"+656AE2: F3 41 0F 11 86 94 01 00 00 - movss [r14+00000194],xmm0 "KFGame.exe"+656AEB: 45 89 AE 94 01 00 00 - mov [r14+00000194],r13d "KFGame.exe"+656AF2: 49 8B 8E 68 02 00 00 - mov rcx,[r14+00000268] } Фильтры на быструю руку. Репак от nemos. Насчет видео: Показать содержимое const DWORD plr_num_offset = 0x93CCB8 - Адрес библиотеки const DWORD plr_list_offset = 0x0089944C - Это адрес указателя const DWORD hp_offset = 0x214 - Это смещение const DWORD coords_offset = 0x214 - Это смещение Если не так меня поправят. Если я правильно понял скрипт - это сохранение-загрузка позиций? У меня он не сработал( видать из-за фильтра ) когда ставил на сейвер 1 а потом на лоадер 1 - ничего не произошло но в целом кажется понятно как это работает( если я правильно понял, это для игрока). Не совсем то, что я хотел узнать, наверное уже от круглосуточного лазанья в этой игре не смог правильно сформулировать вопрос. Мне свои координаты не очень нужны-то были, скорее коорды мобов, но кажется я почти понял как их записать теперь правильно в с++. За исключением адреса библиотеки - все еще не понял откуда он взялся. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 (изменено) 36 минуты назад, lizzmack сказал: Если я правильно понял скрипт - это сохранение-загрузка позиций? У меня он не сработал( видать из-за фильтра ) когда ставил на сейвер 1 а потом на лоадер 1 - ничего не произошло но в целом кажется понятно как это работает( если я правильно понял, это для игрока). Не совсем то, что я хотел узнать, наверное уже от круглосуточного лазанья в этой игре не смог правильно сформулировать вопрос. Мне свои координаты не очень нужны-то были, скорее коорды мобов, но кажется я почти понял как их записать теперь правильно в с++. За исключением адреса библиотеки - все еще не понял откуда он взялся. Скрытый текст [sl_Saver] - Сохранить координаты [sl_Loader] - Загрузить [sl_X] - Координата X [sl_Y] - Координата Y [sl_Z] - Координата Z [sl_Adder] - Число которое добавим к чему либо. Инструкция которую я взял для скрипта работает с мобами и нашим игроком. В части BracnhSaver - мы сохраняем координаты нашего игрока в [sl_X]... В части BranchLoader - мы загружаем наши координаты и замещаем координаты мобов нашей сохраненной. [] - можешь вывести их в таблицу. Как я понял из видео что ты предоставил. Keng ( Михаил ) (Если не правильно указал извините) он взял указатель HP своего игрока и с него вышел на структуру где лежали данные не только его игрока но и остальных игроков ( ботов ). Через каждые 18байт лежали данные другого игрока. Вечерком попробую в CS:GO ( Как на видео ) сделать. Отпишусь в этой теме сегодня или завтра. Изменено 28 марта, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 20 минуты назад, what228 сказал: Скрыть содержимое [sl_Saver] - Сохранить координаты [sl_Loader] - Загрузить [sl_X] - Координата X [sl_Y] - Координата Y [sl_Z] - Координата Z [sl_Adder] - Число которое добавим к чему либо. Инструкция которую я взял для скрипта работает с мобами и нашим игроком. В части BracnhSaver - мы сохраняем координаты нашего игрока в [sl_X]... В части BranchLoader - мы загружаем наши координаты и замещаем координаты мобов нашей сохраненной. Как я понял из видео что ты предоставил. Keng ( Михаил ) (Если не правильно указал извините) он взял указатель HP своего игрока и с него вышел на структуру где лежали данные не только его игрока но и остальных игроков ( ботов ). Через каждые 18байт лежали данные другого игрока. да, все верно, из указателя на хп он вышел на структуру. В начале темы я точно так же это сделал.( ты еще спросил, зачем указатели) насчет каждые 18 байт - это я понял. Сейчас думаю уже как реализовывается аим(все необходимые адреса нашел), и пошел исследовать англоязычные уроки. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 3 часа назад, lizzmack сказал: да, все верно, из указателя на хп он вышел на структуру. В начале темы я точно так же это сделал.( ты еще спросил, зачем указатели) насчет каждые 18 байт - это я понял. Сейчас думаю уже как реализовывается аим(все необходимые адреса нашел), и пошел исследовать англоязычные уроки. Если что-то не получится советую пробовать в игре Assault Cube Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 (изменено) 2 минуты назад, what228 сказал: Если что-то не получится советую пробовать в игре Assault Cube Да-да, нашел канал Guided hacks, он именно на этой игре и показывает :). Правда сегодня уже умственно исчерпал себя, поэтому только теорию смотрю. завтра уже буду пытаться реализовывать практику Изменено 28 марта, 2017 пользователем lizzmack 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 7 минут назад, lizzmack сказал: Да-да, нашел канал Guided hacks, он именно на этой игре и показывает :). Правда сегодня уже умственно исчерпал себя, поэтому только теорию смотрю. завтра уже буду пытаться реализовывать практику Удачи Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 марта, 2017 Поделиться Опубликовано 29 марта, 2017 11 час назад, lizzmack сказал: У меня он не сработал( видать из-за фильтра ) когда ставил на сейвер 1 а потом на лоадер 1 - ничего не произошло Скорее всего не там ставил 1. Хотя по коду скрипта what228, там не обязательно ставить 1 можно и 2 и 3 и 4 и т.д. - важен только 0. Ты должен был либо добавить в таблицу адреса sl_Saver: sl_Loader: либо написать скрипты на них же, на пример Скрипт "Сохранить координаты": Скрытый текст [ENABLE] sl_Saver: dd 1 [DISABLE] sl_Saver: dd 0 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения