Гайд Фикс nosmoke в индиго

nixware.cc
Эксперт
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
1,631
Реакции[?]
1,534
Поинты[?]
31K
Последнее редактирование:
В отставке.
Эксперт
Статус
Оффлайн
Регистрация
5 Окт 2016
Сообщения
1,686
Реакции[?]
1,222
Поинты[?]
1K
Переменная интересная ,мне понравилось (Открываешь сурс индиго и она сразу true :CoolStoryBob::CoolStoryBob:)
 
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
Пользователь
Статус
Оффлайн
Регистрация
3 Авг 2016
Сообщения
186
Реакции[?]
252
Поинты[?]
0
Я лучше тебя
Участник
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
383
Реакции[?]
448
Поинты[?]
1K
Добавляем в painttraverse хук это:
зачем искать паттерн внутри функции которая будет выполнятся в цикле если наличие паттерна говорит что адресс статический и не изменится? моя мысленная оптимизация кода сказала что ваши стандарты параша. Вместо того чтобы единожды найти все паттерны и записать их в коллекцию для дальнейшего использования - надо делать лишнюю и ненужную нагрузку, процессор же резиновый.
 
nixware.cc
Эксперт
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
1,631
Реакции[?]
1,534
Поинты[?]
31K
зачем искать паттерн внутри функции которая будет выполнятся в цикле если наличие паттерна говорит что адресс статический и не изменится? моя мысленная оптимизация кода сказала что ваши стандарты параша. Вместо того чтобы единожды найти все паттерны и записать их в коллекцию для дальнейшего использования - надо делать лишнюю и ненужную нагрузку, процессор же резиновый.
А в чем проблема использовать static?
 
Я лучше тебя
Участник
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
383
Реакции[?]
448
Поинты[?]
1K
А в чем проблема использовать static?
нецелесообразно создавать долговременную область для хранения переменной которая будет использоваться при немалом ряде условий.
Тупо засоряешь код и память когда можно этого не делать.
разница в систематическом обусловленном доступе - и постоянном для которого статик и придуман (пример счетчики/синглтоны).
 
Пользователь
Статус
Оффлайн
Регистрация
28 Апр 2018
Сообщения
134
Реакции[?]
35
Поинты[?]
0
можно же так , через спец паттерн
Код:
if (Interfaces::Engine()->IsConnected() && Interfaces::Engine()->IsInGame())
Utils::LineGoesThroughSmoke(viewtarget,eyetarget);
и сама функция
Код:
bool Utils::IsLineGoesThroughSmoke(Vector vStartPos, Vector vEndPos)
{
using LineGoesThroughSmokeFn = bool(__cdecl*)(Vector,Vector);
static auto offset = CSX::Memory::FindPatternV2(GetClientModule(), "55 8B EC 83 EC 08 8B 15 ? ? ? ? 0F 57 C0");
return reinterpret_cast<LineGoesThroughSmokeFn>(offset)(vStartPos,vEndPos);
}
 
Забаненный
Статус
Оффлайн
Регистрация
21 Авг 2018
Сообщения
9
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
можно же так , через спец паттерн
Код:
if (Interfaces::Engine()->IsConnected() && Interfaces::Engine()->IsInGame())
Utils::LineGoesThroughSmoke(viewtarget,eyetarget);
и сама функция
Код:
bool Utils::IsLineGoesThroughSmoke(Vector vStartPos, Vector vEndPos)
{
using LineGoesThroughSmokeFn = bool(__cdecl*)(Vector,Vector);
static auto offset = CSX::Memory::FindPatternV2(GetClientModule(), "55 8B EC 83 EC 08 8B 15 ? ? ? ? 0F 57 C0");
return reinterpret_cast<LineGoesThroughSmokeFn>(offset)(vStartPos,vEndPos);
}
красав
 
Пользователь
Статус
Оффлайн
Регистрация
28 Апр 2018
Сообщения
134
Реакции[?]
35
Поинты[?]
0
нецелесообразно создавать долговременную область для хранения переменной которая будет использоваться при немалом ряде условий.
Тупо засоряешь код и память когда можно этого не делать.
разница в систематическом обусловленном доступе - и постоянном для которого статик и придуман (пример счетчики/синглтоны).
ну как бы статик нужен для инкременации переменной в классе, хотя синглтон так и робит, насчет счетика не уверен
 
Я лучше тебя
Участник
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
383
Реакции[?]
448
Поинты[?]
1K
можно же так , через спец паттерн
Код:
if (Interfaces::Engine()->IsConnected() && Interfaces::Engine()->IsInGame())
Utils::LineGoesThroughSmoke(viewtarget,eyetarget);
и сама функция
Код:
bool Utils::IsLineGoesThroughSmoke(Vector vStartPos, Vector vEndPos)
{
using LineGoesThroughSmokeFn = bool(__cdecl*)(Vector,Vector);
static auto offset = CSX::Memory::FindPatternV2(GetClientModule(), "55 8B EC 83 EC 08 8B 15 ? ? ? ? 0F 57 C0");
return reinterpret_cast<LineGoesThroughSmokeFn>(offset)(vStartPos,vEndPos);
}
вообще искать паттерны в самих функциях херня идея с точки зрения структуризации кода, все поинтеры и оффсеты должны быть определены и готовы к использованию заранее в одном месте/функции предназначенной для добычи данных, это гарантирует успешность выполнение и предупреждение краша, если паттерн сменится с обновой. если вдруг вернет залупу конскую, а не нужный адрес - готовь ведро вазелина и бегай как ослина по всему исходнику ищи какой паттерн пидорасит, вместо того чтобы заглянуть в одно единственное место и быстро найти проблему)
 
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
вообще искать паттерны в самих функциях херня идея с точки зрения структуризации кода, все поинтеры и оффсеты должны быть определены и готовы к использованию заранее в одном месте/функции предназначенной для добычи данных, это гарантирует успешность выполнение и предупреждение краша, если паттерн сменится с обновой. если вдруг вернет залупу конскую, а не нужный адрес - готовь ведро вазелина и бегай как ослина по всему исходнику ищи какой паттерн пидорасит, вместо того чтобы заглянуть в одно единственное место и быстро найти проблему)
Что ты напридумал тут))) не проще в функцию find_pattern добавить вывод если паттерн не найден?)

Ну а так да, делайте паттерны в одном месте чтобы облегчить работу с ними.
 
Я лучше тебя
Участник
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
383
Реакции[?]
448
Поинты[?]
1K
не проще в функцию find_pattern добавить вывод если паттерн не найден?)
нет вообщето, фишка в том что оно может найти, но не то что ты ишешь. (паттерн может находить не ту функцию/участок кода)
 
Пользователь
Статус
Оффлайн
Регистрация
28 Апр 2018
Сообщения
134
Реакции[?]
35
Поинты[?]
0
нет вообщето, фишка в том что оно может найти, но не то что ты ишешь. (паттерн может находить не ту функцию/участок кода)
тогда можно сделать так в find_pattern типа такого если не найден паттерн нужный вернуть S_FALSE
 
Пользователь
Статус
Оффлайн
Регистрация
28 Апр 2018
Сообщения
134
Реакции[?]
35
Поинты[?]
0
Код:
if(scanBytesofmodule[i] != data[i]) {
found = false;
break;
}
if(found) {
 return &scanBytesofmodule[i];
}
else{
return S_FALSE;//or FALSE
}
}
типа такого
 
Сверху Снизу