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

Активность

Лента обновляется автоматически     

  1. Сегодня
  2. youneuoy

    На чем писать GUI?

    первые попытки делать что-то, имеющее gui я начал с wpf(это c#) и с его формочками у меня всё время получались очень страшные интерфейсы. После этого я перешёл на c++ и попробовав разное пришёл к такому набору: простые приложения(где нужно одно окошко с кнопочками) пишу с использованием винапи, а для сложных использую вот эту штуку (позволяет очень быстро и относительно красиво делать как обычные менюшки, так и сложные таблицы, позволяет использовать opengl или directx и ещё всякие штуки, следовательно можно писать кроссплатформенные программы, поддерживает загрузку разных шрифтов и т.п. и т.п.). Как по мне это лучшие из возможных вариантов для человека, не очень разбирающегося в дизайне и прочих подобных вещах(кнопочки на формочках я действительно коряво делаю, без конструкторов формочек на мои программы можно смотреть без крови из глаз). Ну и вот пример - менюшка, стилизованная под игру medieval 2 total war(игра использует directX 9 и рисовать можно просто заинжектив dll-ку):
  3. Antonshka

    На чем писать GUI?

    Привет! Дочитываю книгу Щупака, по WinAPI. По словам самого автора - Петцольд, насколько я видел, пишет о том же самом что и Щупак, правда часто в более краткой форме, Фень Юань, - пишет более подробно, но у него все про GDI. Потому, дочитав Щупака, я решил перейти уже к написанию своего собственного приложения. Писать я буду на чистом WinAPI. Для того чтобы закрепить материал, в первую очередь, и для того чтобы просто уметь это делать именно на нем. Но что потом? Так и писать GUI приложения на чистом WinAPI? На чем вы пишите GUI для своих приложений? Читал сегодня, что на чистом WinAPI, приложения и весят меньше, и работают быстрее. Что MFC неудобный, с точки зрения стиля (я его еще не изучал). Что Qt тоже имеет какие-то проблемы. Вообще в будущем есть намерение писать через DIrectX. Но если не через него, то через что?
  4. LuBu

    [Cheat Engine] поиск списка

    Да вы правы, я ошибся. Я выводил адресс объекта сразу после его создания, а нужно было вначале занести в вектор, а уже после выводить. Тогда да откладываются в памяти друг за другом. P.S. Как закрывать тему?
  5. Неверно. Find what accesses найдет и чтение, и запись. А Find what writes - только запись. По теме - да, действительно, автор упоминал, что посмотрел все видео на канале. В одном из видео точно вопрос темы объяснялся. Тему закрываю.
  6. Ты как там свой инжектор писать собрался? А главное написал, судя опять же по тобою сказанному. Мне кажется, ты голову морочишь.
  7. у тебя вектор с указателями, верно? Вот они все в одном месте находятся. И ещё такие контейнеры зачастую сами расположены внутри класса. И про это ты наверняка уже знаешь из обучающего плейлиста гхл и впустую тратишь своё время(когда пишешь подобные посты) и время других пользователей(которые это читают или даже отвечают на это)🙂
  8. LuBu

    [Cheat Engine] поиск списка

    Это нормально что элементы в массиве находятся в разных областях памяти? Я думал что они будут распологаться опираясь на какой - нибудь шаг. Допустим начальный элемент в позиции 00FF, а дальше + 0A. Просто пошерстил отладчиком, а они вообще где попало лежат. Если это так, то это очень сильно меняет процесс поиска
  9. LuBu

    [Cheat Engine] поиск списка

    Точняк, как я сам не додумался до этого, спасибо)
  10. это становится понятно после прочтения названий этих функций(и это не функции поиска указателя). Одна отслеживает чтение данных по определённому адресу, вторая - запись. Т.е. есть код: mov [0x29385129],0x5141234123 mov rdx,[0x29385129] первая функция(чтение) покажет тебе адрес второй инструкции, а вторая(запись) - первой. на ютуб канале гхл есть плейлист, в котором описаны все(или почти все) возможности CE. И ты судя по посту в другой теме его весь просмотрел, быть может есть смысл повторить просмотр/заняться его изучением?
  11. в c++ возьми указатель на вектор и посмотри его значение в режиме отладки или просто выведи на экран. Скопируй это значение в поле адреса CE Dissect Data/Structures, после чего изучай структуру. Попробуй потом также сделать и с другими типами/контейнерами/классами/чем угодно вообще и повторяй до тех пор, пока не поймёшь как оно всё работает. CE+Ghidra с задачами справляются не хуже.
  12. Ты не сможешь найти то, что не знаешь как устроено, работает и хранится в памяти. Изучи указатели, контейнеры и ООП. Заодно разберёшься с хуками виртуальных методов. А потом, выкинь СЕ и начинай использовать IDA + ReClass. .
  13. LuBu

    [Cheat Engine] поиск списка

    Написал на С++ обычную программку, которая добавляет в vector 20 элементов по очередно, после нажатия кнопки. Подключил Cheat Engine и смог найти кол-во массива на текущий момент. После сделал как в видеоуроках от gamehacklab. Начал искать адрес, в надежде узнать кто использует это кол-во и все безрезультатно. Помогите мне разобраться, как находить список, массив через CheatEngine. Все бы ничего, если бы один замечательный инструмент Dissect Data/Structures в Cheat Engine работал бы правильно. А то постоянно то Pointer отображается как Float, то Byte как Int.... Так что обычным анализом в этом инструменте не получится найти. Отладчик VCH использую.
  14. Find you what access this address Find you what writes to this address В каких случаях нужно использовать 1 способ, а в каких 2 способ поиска указателя? Есть ли где - нибудь подробный туториал по этому?
  15. Вчера
  16. А какой адрес нужной искать, экранный или реальный? если я собираюсь найти адреса других игроков, на которых не могу ни как повлиять, а могу только читать данные, то наверное экранный да?
  17. Инициализировать коммон контролы, то есть выполнить этот код?
  18. Если я правильно помню, желательно инициализировать коммон контролы до создания первого окна. Но если код выше из МСДН, возможно, это требование уже не актуально.
  19. Рули в сторону списка сущностей. Как правило, это массив указателей на эти самые сущности. Поскольку твой игрок тоже является игровой сущностью, можешь отталкиваться от указателя на него. Как искать указатель на игрока не рассказываю, это ты уже должен знать, раз посмотрел все видео на канале.
  20. Забыл написать что проект на UNICODE. Итак, после нескольких часов поиска решение в интернете, стало ясно что: - элемент управления ToolTip относится к общим элементам управления (common controls). Есть еще стандартные элементы управления (user controls) - общие элементы управления определены в файле ComCtl32.dll - файл ComCtl32.dll находится в папке windows/sytem32 - файл ComCtl32.dll имеет разные собственные версии - версия файла ComCtl32.dll влияет на то с какой версией структуры TOOLINFO код API, находящийся в ComCtl32.dll, может работать - для инициализации элемента ToolTip нужно определить и заполнить структуру TOOLINFO - существует три версии структуры TOOLINFO, отличающиеся количеством полей версия 1 - TTTOOLINFO_V1_SIZE //Для ComCtl32.dll версии 4.0 и выше версия 2 - TTTOOLINFO_V2_SIZE //Для ComCtl32.dll версии 4.7 и выше версия 3 - TTTOOLINFO_V3_SIZE //Для ComCtl32.dll версии 6.0 и выше - структура TOOLINFO помимо прочих своих полей, имеет поле cbSize, которое нужно заполнить, записав в него размер самой же структуры, то есть размер структуры TOOLINFO. - поле cbSize структуры TOOLINFO используется системой для определения версии API кода, который нужно использовать для работы с ней - заголовочный файл "commctrl.h", который необходимо подключить к проекту для того чтобы работать с общим элементам управления, основываясь на значении макроса _WIN32_WINNT, выбирает для работы с ToolTip соответствующую версию структуры TOOLINFO. - _WIN32_WINNT - этот макрос определяет в каких версиях Windows может выполняться ваш код - в моем проекте макрос _WIN32_WINNT имеет значение 0x0A00, что значит Windows 10 и выше, а это значит что проект использует самую новую, самую последнюю версию структуры TOOLINFO из заголовочного файла "commctrl.h", структуру о с размеров - TTTOOLINFO_V3_SIZE - если вы явно не укажете в своем проекте что хотите использовать ComCtl32.dll версии 6.0 и выше, то по умолчанию будет использоваться версия 5.0, а это значит что будет использоваться API код для работы со структурой версии TTTOOLINFO_V2_SIZE. Таким образом, файл "commctrl.h" предоставляет нам структуру версии TTTOOLINFO_V3_SIZE, в то время как ComCtl32.dll работает с версией TTTOOLINFO_V2_SIZE. Размер структуры TTTOOLINFO_V3_SIZE на 4 байта больше чем TTTOOLINFO_V2_SIZE. Из-за этого подсказка не отображается на экране. Решение может быть одним из следующих: - либо явно указать проекту что мы хотим использовать ComCtl32.dll версии 6.0 и выше, для этого нужно создать файл манифеста, в котором это указывается, или вместо файла манифеста воспользоваться прямым обозначением нашего намерения в файле .срр - либо переопределить макрос _WIN32_WINNT, до версии Windows 2000 - либо явно заполнить поле cbSize размером структуры TOOLINFO минус 4 байта Использование ComCtl32.dll версии 6.0 и выше меняет стиль отображения элементов управления. До версии 6.0 стиль элементов как в windows 95, 98. То есть до XP.
  21. А еще он заголовки окон проверяет. Я пробовал писать Injector, но как то у меня слишком простой получился. Думаю такой спалить очень просто, даже если свой будет. На сайте есть статьи по тематике инжекторов с нуля?
  22. Здравствуйте, нашел в игре с ботами нужные адреса и их структуру. При попытке использовать эти данные в сетевой игре, все эти адреса становятся недействительными. Подскажите плиз, от какого dll нужно отталкиваться, чтобы получить нужные адреса в сетевой игре? engine.dll client.dll mp.dll Какой именно нужно использовать? Я уже 3 день мучаюсь. Дайте хотя бы совет в какую сторону рулить. Такими темпами вся мотивация угаснет 😒 P.S. Админ, спасибо за ваши видео на ютубе, посмотрел все 😉
  23. У этого инжектора исходный код открыт на гитхабе, изучай, смотри, что может быть тебе подозрительным. у VAC насколько я помню только сигнатурный поиск, то есть, паблик софт лучше не использовать и не копипастить исходники. Другие античиты, особенно платные, типа BE, EAC, и прочих по любому запалят, они ж тоже не дураки, ситуацию, так скажем, мониторят. Единственный метод -- пиши свой и ни с кем не делись. Такие дела.
  24. Привет, никто не сталкивался с проблемой отображения автономного ToolTip? Делаю как в книге, и как на MSDN. Приложение запускается, но подсказку не отображает. Примитивный код С++ Ссылка на MSDN
  1. Загрузить ещё активность
×
×
  • Создать...

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

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