Перейти к содержанию

holy

Пользователи+
  • Постов

    47
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

holy стал победителем дня 8 июля 2016

holy имел наиболее популярный контент!

Репутация

15 Newbie

Информация о holy

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. holy

    TrainME by Xipho

    Значения очков, я вроде искал через неизвестные значения. Т.е. изначально ищем неизвестные значения, потом в игре увеличиваются очки, и в Cheat Engine отсеиваю результаты через "Увеличилось значение"
  2. Не знаю Вроде ничем не паковал. А если и пакую, то UPX'ом
  3. Ещё как вариант , предположу что BaseAddress у модуля Game.exe смещается. У тебя на скрине статичный адрес это "Game.exe"+016*** (видны на скрине только первые 3 цифры). А в коде у тебя жестко задано число. Однако в зависимости от смещения Game.exe будет разный первоначальный адрес.
  4. По аналогии с этим: wchar_t My_Little_String[100]; swprintf(My_Little_String, L"%d - %s", 24, L"piupiu"); Все функции printf работают одинаково. Либо они выводят инфу в консоль (и тогда первый параметр является сразу форматом строки) Либо они выводят инфу в строку (и тогда первый параметр всегда строка в которую будет писаться результат)
  5. Я вообще не стал бы конкретно эту ошибку патчить. Судя по описанию ошибки, она может возникнуть во время любой рассинхронизации, а не только в момент читерства. От сюда следует, что эта ошибка, возможно, где-то выше вызывается через call. Возьми отладчик, поставь BP на место где она вызывается, и смотри на стек вызовов. Исследуй код который вызывает эту функцию, возможно найдешь как "починить", если повезет.
  6. Память выделяется динамически, в зависимости от входных данных ) А это значит, что: 1. Эти данные хранятся не в стеке, а в куче 2. Эти данные всегда имеют соответствующий входным строкам размер, а значит переполнения не может быть И именно по этому я не люблю когда Visual Studio что-то пытается решить за меня, по этому юзаю Code::Blocks и GCC компилятор )
  7. Вообще-то все эти ошибки гуглятся... Столько лишних вопросов, попробуй сам гуглить. То что студии не нравится swprintf это я знаю, по этому и не люблю Visual Studio, слишком много на себя берет. Попробуй вторым параметром передать длину строки, т.е. swprintf(My_Little_String, len_string, L"%d - %s", entry.th32ProcessID, entry.szExeFile); Может поможет. Если нет, то загугли альтернативные функции.
  8. так как у тебя ExeFile уже имеет тип WCHAR то тебе уже ничего не надо делать, можешь все что связано с переменной forExeFile удалить, а строку swprintf(My_Little_String, L"%d - %s", entry.th32ProcessID, forExeFile); заменить на swprintf(My_Little_String, L"%d - %s", entry.th32ProcessID, entry.szExeFile);
  9. У меня, в CodeBlocks, в структуре переменная szExeFile имеет тип TCHAR, скорее всего в Visual Studio другой тип. Попробуй вместо strlen использовать wcslen (она для WCHAR)
  10. Используй MessageBoxW MessageBoxA для ASCII строк (там где символы 1 байт), MessageBoxW для UNICODE строк (там символы обычно 2 байта)
  11. DWORD это 32-bit unsigned int (Т.е. целое беззнаковое число от 0x00000000 до 0xFFFFFFFF) Объясни вопрос более подробно и с примером. Иначе не понятно, причем тут число и количество символов в нем. Если более филосовско рассуждать, то DWORD это 2 WORD'а, которые состоят из 4х CHAR'ов :DD а значит 4 символа
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.