IzerodayI Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 Всем привет ! на днях писал код для вывода hp игрока и все прекрасно работало на созданном мной сервере(локальный , с ботами), а вот на онлайн серверах hp не отображает (код смотрел у КЕНГА (сапсибо ему за это!)) искал через "server.dll" c другими библиотеками вообще ничего не отображает даже в локальном сервере!("client.dll" , "engine.dll") "код1": Показать контент #define SERVERDLL "server.dll" #define SERVERDLL1 "client.dll"//не используется #define SERVERDLL2 "engine.dll"//не используется const DWORD hp_offset = 0x88;//hp_of = 0x88;// Структура hp в структуре игрока const DWORD distance_of_player = 0x10; // Расстояние между структурой данных каждого игрока const DWORD struct_of_players = 0x562D7C; //"server.dll" + 00562D7C 0x58C72C//1 ссылку использовал //код if (strstr(szModName, SERVERDLL) != 0) { cout << "server.dll base : " << HModProc[i] << endl; server_dll = (DWORD)HModProc[i]; //break; } //код DWORD pir_addr; DWORD addr = server_dll + struct_of_players; //read_of_memory_bytes((LPCVOID)addr, 4, &pir_addr); //int r = ReadProcessMemory(HProc, (LPCVOID)addr, 4, &pir_addr); //read_of_memory_bytes((LPCVOID)addr, 4, &pir_addr); for (;; Sleep(100)) { system("cls"); //read_of_memory_bytes((LPCVOID)(server_dll + dw_numofplayers), 4, &play_on); //cout << "play on map : " << play_on << endl; for (int i = 0; i < 7; i++) { read_of_memory_bytes((LPCVOID)(addr + i*distance_of_player), 4, &pir_addr); if ((read_of_memory_bytes((LPCVOID)(addr + i*distance_of_player), 4, &pir_addr) == 1)) { read_of_memory_bytes((LPCVOID)(pir_addr + hp_offset), 4, &hp); if (hp == (0 || 1)) { cout << "players_" << i << " hp : dead" << endl; } else { cout << "players_" << i << " hp : " << hp << endl; } } } } в СЕ отсеивал хп и нашел 2 указателя на структуры игроков. в коде использую 1 указатель (и с ботами работает), а 2 указатель не выводит hp (56563456 - такие числа) (и на онлайн сервере тоже не выводит) возможно я не в том месте "х" поставил ( как я менял : было = 00562D7C; стало = 0х562D7C; ) и еще вопрос : как использовать цикл на 64 , а выводил только реальных игроков или ботов Просто ботов со мной 6 . цикл на 64 и он все 64 hp показывает по 100 hp у несуществующих. Пытался реализовать с помощью read_of_memory_bytes , но возвращает всегда 1, что логично (так как там хранится тоже что-то) "код2": Показать контент int read_of_memory_bytes(LPCVOID addr, int num, void* buf) { SIZE_T sz = 0; int r = ReadProcessMemory(HProc, addr, buf, num, &sz); if (r == 0 || sz == 0) { cout << "Eror : " << GetLastError() << endl; return 0; } return 1; } PS : У меня Css v34 пиратка ) // @IzerodayI, посети раздел фак. Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 10:14, IzerodayI сказал: искал через "server.dll" Показать Когда ты подключаешься к онлайн-серверу, эта библиотека не используется. Она используется только для создания сервера (когда сам хостишь). Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 10:36, Xipho сказал: Когда ты подключаешься к онлайн-серверу, эта библиотека не используется. Она используется только для создания сервера (когда сам хостишь). Показать тогда не подскажешь какую библиотеку надо искать ? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 (изменено) В 04.07.2017 в 11:07, IzerodayI сказал: тогда не подскажешь какую библиотеку надо искать ? Показать client.dll В 04.07.2017 в 10:14, IzerodayI сказал: как использовать цикл на 64 Показать существуют проверки типа подключен ли игрок, жив он или нет и подобные, в цикле это все фильтруешь и выводишь только реальных игроков. Изменено 4 июля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 10:14, IzerodayI сказал: искал через "server.dll" c другими библиотеками вообще ничего не отображает даже в локальном сервере!("client.dll" , "engine.dll") Показать В 04.07.2017 в 14:12, partoftheworlD сказал: client.dll Показать пробовал , таких библиотеки даже 2 находит , не работает , может я кривой) PS и с первым клиентом и со вторым , не работает. if (strstr(szModName, SERVERDLL) != 0) { cout << "server.dll base : " << HModProc[i] << endl; server_dll = (DWORD)HModProc[i]; //break; } break использовал для 1-го клиента Может быть , что там другие оффсеты? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 (изменено) вангую, у тебя сам поиск модулей коряво работает, т.к находит steamclient.dll и client.dll В 04.07.2017 в 14:17, IzerodayI сказал: Может быть , что там другие оффсеты? Показать и да смещения там точно другие. Изменено 4 июля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 14:18, partoftheworlD сказал: и да смещения там точно другие. Показать А как их искать через СЕ, так-же? когда я отсеивал по hp , СЕ находил только server.dll (наверно , потому ,что локальный сервер был) - скрин сверху есть То есть надо искать оффесеты на онлайн сервере? И библиотека мне нужна просто client.dll ? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 (изменено) В 04.07.2017 в 14:24, IzerodayI сказал: А как их искать через СЕ, так-же? Показать ну да, поиск указателей 1 уровень, найдется 5-6 указателей, значит правильный адрес использовал. проверить значение можно высчитав смещение от m_iHealth до m_iTeamNum обычно 8 байт, но не всегда., лучше перепроверить. В 04.07.2017 в 14:24, IzerodayI сказал: То есть надо искать оффесеты на онлайн сервере? Показать Нет, достаточно локального. В 04.07.2017 в 14:24, IzerodayI сказал: И библиотека мне нужна просто client.dll ? Показать Да upd на счет проверки адреса здоровья Изменено 4 июля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 (изменено) В 04.07.2017 в 14:52, partoftheworlD сказал: Нет, достаточно локального. Показать как я сейчас сделал : 1 зашел в ксс , 2 создал сервер с ботом , 3 запустил СЕ , 4 открыл процесс ксс , 5 и поставил 8байт 6 начал искать своё хп 7 2 адреса осталось 8 попытался найти указатель на адрес и там пусто (в 2 адресах) где я ошибся ? что я сделал не так? Изменено 4 июля, 2017 пользователем IzerodayI Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 15:18, IzerodayI сказал: 5 и поставил 8байт Показать тут, значение здоровья int(4 байта) а 8 байт это разница между здоровьем и номером команды Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 (изменено) проанализировав ситуацию , я понял , что моя потенциальная жертва это client.dll как я сейчас сделал (дубль2) : 1 зашел в ксс 2 создал сервер с ботом , 3 запустил СЕ , 4 открыл процесс ксс , 5 и поставил 4байт 6 начал искать своё хп 7 обнаружил примерно 8 адресов 8 и каждого нашел указатель на адрес [spoiler= "screen" ] [img =https://cloud.mail.ru/public/Aeh6/beirRojns ] ----------------------------------------------------------------------------------------------------------------- [img =https://cloud.mail.ru/public/ApRT/c5W25qr8J ] [/spoiler] просканировал все 8 адресов , где нашел только 3 клиента, выбрав жертву , я все три адреса просканировал на структуры. "client.dll"+004035C0 и только здесь обнаружил своё хп [img =https://cloud.mail.ru/public/BfZe/ToonDaeyQ ] но я не вижу(возможно не знаю) 8байтовый сдвиг на m_iTeamNum хп находилось в 0000 структуре [img =https://cloud.mail.ru/public/4vG4/ajTgMbCC3 ] я то нашел?) Благодарю за ответы =) Изменено 4 июля, 2017 пользователем IzerodayI были ошибочки Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 В общем походу проще будет записать видео. Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 17:15, partoftheworlD сказал: В общем походу проще будет записать видео. Показать не подскажешь, когда оно примерно будет?=) Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 17:25, IzerodayI сказал: не подскажешь, когда оно примерно будет?=) Показать сейчас если на l4d2 показывать буду, либо минут через 40-60 на ксго Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 17:26, partoftheworlD сказал: сейчас если на l4d2 показывать буду, либо минут через 40-60 на ксго Показать у тебя канал на ютюбе? если да ссылку скинешь? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 17:27, IzerodayI сказал: у тебя канал на ютюбе? если да ссылку скинешь? Показать https://www.youtube.com/channel/UCCtJ20nWY7nGqCO5guv8-Jg Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 partoftheworlD благодарю , сейчас разберусь) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 В 04.07.2017 в 18:25, IzerodayI сказал: partoftheworlD благодарю , сейчас разберусь) Показать Вообще-то. вопрос уже неоднократно подымался. Посмотри ещё и этот топик. Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 Я думаю, что если возникает много однообразных вопросов по одной и той же теме (или игре), то это стоит оформлять в FAQ и закреплять где-то в верху раздела. Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 4 июля, 2017 Автор Поделиться Опубликовано 4 июля, 2017 толи я уже все.. , то ли лыжи не едут приложу все скрины с СЕ я отсеиваю хп , как на видио (я так делал и раньше) "screens": Показать контент вот , все , что осталось после отсева : [img= https://cloud.mail.ru/public/D5X8/LwobuGKWh ] дальше я читаю их память или ctrl + B (каждый) 1 [img= https://cloud.mail.ru/public/B8dn/jdaQ9GYvX ] 2 [img= https://cloud.mail.ru/public/BnXr/Vh1yDU5dL ] 3 [img= https://cloud.mail.ru/public/85hA/vJE61m8et ] 4 [img= https://cloud.mail.ru/public/CsqY/VJgBxJvfK ] 5 [img= https://cloud.mail.ru/public/L81m/oTtSrF9v7 ] 6 [img= https://cloud.mail.ru/public/BFhZ/HhR1aH27p ] 7 [img= https://cloud.mail.ru/public/L4Xs/KikneRG7q ] и ничего нету! это я такой кривой?) или здесь есть мой адрес? // @IzerodayI, вижу, что так и не разобрался, как делать спойлеры. Посмотри этот "Bидео-FAQ для новичков." Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2017 Поделиться Опубликовано 4 июля, 2017 (изменено) В 04.07.2017 в 21:11, IzerodayI сказал: это я такой кривой?) или здесь есть мой адрес? Показать Ты видимо не понял, у меня смещения для l4d2 было здоровья EC и команды E4, тебе надо в отладчике глянуть смещения m_iHealth и m_iTeamNum, а после посчитать разницу. У меня вышло так что от здоровья до номера команды -8 байт, у тебя может быть другое значение. Эта проверка не обязательна, но так ты точно будешь знать какой адрес использовать, чтобы все не прогонять ,через поиск указателей. Изменено 4 июля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 5 июля, 2017 Автор Поделиться Опубликовано 5 июля, 2017 В 04.07.2017 в 21:22, partoftheworlD сказал: Ты видимо не понял, у меня смещения для l4d2 было здоровья EC и команды E4, тебе надо в отладчике глянуть смещения m_iHealth и m_iTeamNum, а после посчитать разницу. У меня вышло так что от здоровья до номера команды -8 байт, у тебя может быть другое значение. Эта проверка не обязательна, но так ты точно будешь знать какой адрес использовать, чтобы все не прогонять ,через поиск указателей. Показать Все, я понял, все хп игроков хранится в одной структуре "client.dll"+004035C0 и уже в ней хранится игроков(ботов) хп и их команда(наверное) доказательства прилагаю. Показать контент 1) хп моё и оффсет 005с, [img=https://cloud.mail.ru/public/DFBP/qPWvRD6xU] а это номер команды выше оффсета хп? 2) бот 1 [img=https://cloud.mail.ru/public/H7E7/JNhpsdZn9] 3)бот 2 [img=https://cloud.mail.ru/public/7dQL/aAfaSuDcT] возникшие вопросы : 1) какой сдвиг между хп игроков, как его посчитать . чтобы зациклить? 2) как найти кол-во игроков ? (пытался сделать на онлайн сервере (долго отсеивая ,когда игроки заходили и выходили), получил 3 адреса , но у них не было указателей на адреса(пусто было. даже библиотеку не нашел), может он статический?) 3) и то , что выше оффсета хп это команда, и если да . то какой сдвиг? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 5 июля, 2017 Поделиться Опубликовано 5 июля, 2017 (изменено) В 05.07.2017 в 16:07, IzerodayI сказал: 1) какой сдвиг между хп игроков, как его посчитать . чтобы зациклить? Показать Смещение n игрока - смещение n-1 игрока, если здоровье находится в общей структуре часто такое бывает в одиночных играх, если же в онлайн играх, то в них используется единый класс для хранения структур всех игроков, чтобы найти сдвиг, надо вставить адрес указателя на общую структуру в программу которая работает со структурами типа Reclass или встроенного в CE Dissect Data/Structures, по 0 смещению будет указатель на структуру твоего игрока, тебе надо просто прокликать по указателям и посмотреть, есть ли по смещению твоего здоровья, ещё чье либо хп, первый найденный указатель в котором будут совпадать смещения на здоровье например и будет являться сдвигом т.е. (0x0 смещение на указатель на структуру локального игрока, 0x10 смещение на указатель на структуру 2-го игрока) 0x10 - 0x0 = 0x10 это и будет сдвиг. на примере csgo В 05.07.2017 в 16:07, IzerodayI сказал: 2) как найти кол-во игроков ? (пытался сделать на онлайн сервере (долго отсеивая ,когда игроки заходили и выходили), получил 3 адреса , но у них не было указателей на адреса(пусто было. даже библиотеку не нашел), м Показать Не помню, проще циклом прогнать с проверкой на хп и состояние подключения, можно пинг использовать для отсева. Изменено 5 июля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 июля, 2017 Поделиться Опубликовано 5 июля, 2017 В 04.07.2017 в 20:51, keng сказал: Я думаю, что если возникает много однообразных вопросов по одной и той же теме (или игре), то это стоит оформлять в FAQ и закреплять где-то в верху раздела. Показать Тык. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения