<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Взлом игр (начинающим)]]></title><description><![CDATA[Статьи, уроки, вопросы-ответы для начинающих геймхакеров]]></description><link>https://gamehacklab.ru/bb/category/9</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 14:20:01 GMT</lastBuildDate><atom:link href="https://gamehacklab.ru/bb/category/9.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 27 Sep 2025 14:40:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Для чего может понадобиться карта строк?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/370">@Hakor</a> Генерирует список строк, которые хранятся в .data/.rdata, возможно ещё в .text, но тут не скажу. Полезная вещь, если знаешь, что программа использует какие-нибудь строки, иногда можно найти в играх отладочную информацию или что-то в этом духе.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/458/для-чего-может-понадобиться-карта-строк</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/458/для-чего-может-понадобиться-карта-строк</guid><dc:creator><![CDATA[__fastcall]]></dc:creator><pubDate>Sat, 27 Sep 2025 14:40:51 GMT</pubDate></item><item><title><![CDATA[Rise of Nations. Поиск значения, которое постоянно меняется]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/588">@HardGuitar</a> Я эту игра смотрел, уж забыл даже когда... На СЕ форуме таблицы есть. или всем знакомым Pg</p>
]]></description><link>https://gamehacklab.ru/bb/topic/441/rise-of-nations-поиск-значения-которое-постоянно-меняется</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/441/rise-of-nations-поиск-значения-которое-постоянно-меняется</guid><dc:creator><![CDATA[LIRW]]></dc:creator><pubDate>Thu, 27 Mar 2025 10:30:09 GMT</pubDate></item><item><title><![CDATA[Soulmask. Вылет при подключении отладчика.]]></title><description><![CDATA[<p dir="auto">Пользователь <a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/690">@consononir</a> написал в <a href="/bb/post/1141">Soulmask. Вылет при подключении отладчика.</a>:</p>
<blockquote>
<p dir="auto">Всем доброго времени суток.<br />
Игра Soulmask, одиночный режим. После нохождения искомого значения в CE, при подключении отладчика игра сразу вылетает. Защита вроде VAC. Имеется ли возможность обойти эту неприятность? Конечно, возможно потом придется бороться с сохранением целостности данных, но это следующий этап. Буду очень признателен за помощь.</p>
</blockquote>
<p dir="auto">Вам нужно просто на канале в ютюб посмотреть на канале GamehacklabRu  детальную настройку чит енджин <a href="https://www.youtube.com/watch?v=hb8w3mOQwp8&amp;list=PL1rFTirh2a0OiFJerJUT3a7UXEL5M7xxD" target="_blank" rel="noopener noreferrer nofollow ugc">https://www.youtube.com/watch?v=hb8w3mOQwp8&amp;list=PL1rFTirh2a0OiFJerJUT3a7UXEL5M7xxD</a></p>
]]></description><link>https://gamehacklab.ru/bb/topic/436/soulmask-вылет-при-подключении-отладчика</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/436/soulmask-вылет-при-подключении-отладчика</guid><dc:creator><![CDATA[BLooDDooGS]]></dc:creator><pubDate>Thu, 27 Feb 2025 08:07:40 GMT</pubDate></item><item><title><![CDATA[warcarft 3]]></title><description><![CDATA[<p dir="auto">Мне нужна помощь<br />
есть один lua скрипт, мне нужно написать к нему stealthedit, понимание у меня не очень, мне нужно чтобы в этом скрипте  антимак rabotal церес stealthedit, помогите мне warcraft 3</p>
]]></description><link>https://gamehacklab.ru/bb/topic/431/warcarft-3</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/431/warcarft-3</guid><dc:creator><![CDATA[vaqif]]></dc:creator><pubDate>Fri, 07 Feb 2025 22:08:24 GMT</pubDate></item><item><title><![CDATA[Обход анти-чита]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/26">@LIRW</a> Не получалось никак с помощью Cheat Engine, но в конечном итоге я открыл всё с помощью Bit Slicer, патроны на 16 bit. Так что всё отлично! Спасибо за ответы и участие всем! Трейнеры делать не реально на Мак, но и не нужно, временно поменять значение вполне достаточно. Ресурсы тоже открылись через Bit Slicer.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/430/обход-анти-чита</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/430/обход-анти-чита</guid><dc:creator><![CDATA[Ariondragon]]></dc:creator><pubDate>Fri, 07 Feb 2025 13:39:25 GMT</pubDate></item><item><title><![CDATA[warcarft 3]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/666">@vaqif</a>  На Ru если можно, повторите запрос. А то у нас тут EN плохо понимают люди!</p>
]]></description><link>https://gamehacklab.ru/bb/topic/429/warcarft-3</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/429/warcarft-3</guid><dc:creator><![CDATA[LIRW]]></dc:creator><pubDate>Tue, 04 Feb 2025 03:29:52 GMT</pubDate></item><item><title><![CDATA[Как при отключении скрипта вернуть или (записать) в адрес значение ?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/21">@garik66</a>, оо, попытаюсь сделать,спасибо большое.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/412/как-при-отключении-скрипта-вернуть-или-записать-в-адрес-значение</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/412/как-при-отключении-скрипта-вернуть-или-записать-в-адрес-значение</guid><dc:creator><![CDATA[Asusih]]></dc:creator><pubDate>Tue, 26 Nov 2024 13:57:01 GMT</pubDate></item><item><title><![CDATA[Zombie Driver]]></title><description><![CDATA[<p dir="auto">Совсем забыл что обещал поковыряться.<br />
Какая версия была уже не помню. Но вроде последняя.<br />
Из интерсного наверно только NoClip.</p>
<p dir="auto"><a href="/bb/assets/uploads/files/1732969379866-34b5b028-255d-44bc-9aa1-cdf1ada9e683-zombiedriverhd.7z">ZombieDriverHD.7z</a></p>
]]></description><link>https://gamehacklab.ru/bb/topic/406/zombie-driver</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/406/zombie-driver</guid><dc:creator><![CDATA[Partizan1078]]></dc:creator><pubDate>Mon, 11 Nov 2024 15:48:46 GMT</pubDate></item><item><title><![CDATA[Pocket Rogues 1 убийство = +1 лвл]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/531">@CoinsDMG</a> Замечательно.:+1:</p>
]]></description><link>https://gamehacklab.ru/bb/topic/400/pocket-rogues-1-убийство-1-лвл</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/400/pocket-rogues-1-убийство-1-лвл</guid><dc:creator><![CDATA[garik66]]></dc:creator><pubDate>Thu, 03 Oct 2024 10:05:08 GMT</pubDate></item><item><title><![CDATA[Textorcist взлом для импорта сохранений]]></title><description><![CDATA[<p dir="auto">Пользователь <a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/527">@magrega</a> написал в <a href="/bb/post/995">Textorcist взлом для импорта сохранений</a>:</p>
<blockquote>
<p dir="auto">Запилил гайд в стиме, тебя упомянул <a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/1">@StoneWeaver</a>, если вдруг интересно<br />
<a href="https://steamcommunity.com/sharedfiles/filedetails/?id=3341265745" target="_blank" rel="noopener noreferrer nofollow ugc">Гайд</a></p>
</blockquote>
<p dir="auto">Прикольный гайд и спасибо, что упомянул )) Но я бы копнул дальше, и пореверсил бы игру, чтобы понять, как кодируется и декодируется этот айдишник. Возможно, на досуге так и сделаю ))</p>
]]></description><link>https://gamehacklab.ru/bb/topic/398/textorcist-взлом-для-импорта-сохранений</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/398/textorcist-взлом-для-импорта-сохранений</guid><dc:creator><![CDATA[StoneWeaver]]></dc:creator><pubDate>Sun, 29 Sep 2024 10:54:10 GMT</pubDate></item><item><title><![CDATA[Hollow Knight скорость персонажа]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/521">@quane</a>  Ищите fall speed</p>
]]></description><link>https://gamehacklab.ru/bb/topic/397/hollow-knight-скорость-персонажа</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/397/hollow-knight-скорость-персонажа</guid><dc:creator><![CDATA[Partizan1078]]></dc:creator><pubDate>Fri, 27 Sep 2024 10:02:13 GMT</pubDate></item><item><title><![CDATA[C++ Internal DLL Hack &#x2F;&#x2F; Pattern Scanner]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/522">@BiNooos</a></p>
<p dir="auto">C++ Code to Find an Address by Signature<br />
This code includes:</p>
<p dir="auto">A function to compare bytes against a signature and mask.<br />
A function to iterate over the memory of the module and find the pattern.<br />
cpp<br />
Copy code<br />
#include &lt;Windows.h&gt;<br />
#include &lt;Psapi.h&gt;<br />
#include &lt;iostream&gt;</p>
<p dir="auto">// Function to compare memory bytes with the pattern and mask<br />
bool CompareBytes(const BYTE* data, const BYTE* pattern, const char* mask) {<br />
for (; *mask; ++mask, ++data, ++pattern) {<br />
if (*mask == 'x' &amp;&amp; *data != *pattern) {<br />
return false;  // Byte mismatch<br />
}<br />
}<br />
return (*mask == 0);  // Pattern fully matched<br />
}</p>
<p dir="auto">// Function to find the pattern in the memory of the module<br />
DWORD64 FindSignature(HMODULE hModule, const BYTE* pattern, const char* mask) {<br />
MODULEINFO moduleInfo = { 0 };<br />
GetModuleInformation(GetCurrentProcess(), hModule, &amp;moduleInfo, sizeof(MODULEINFO));</p>
DWORD64 baseAddress = (DWORD64)moduleInfo.lpBaseOfDll;  // Base address of the module
DWORD64 moduleSize = (DWORD64)moduleInfo.SizeOfImage;   // Size of the module

BYTE* moduleBytes = (BYTE*)baseAddress;

for (DWORD64 i = 0; i &lt; moduleSize; i++) {
    if (CompareBytes(moduleBytes + i, pattern, mask)) {
        return (DWORD64)(moduleBytes + i);  // Return address if pattern found
    }
}
return 0;  // Pattern not found

<p dir="auto">}</p>
<p dir="auto">// Example usage of the pattern scanner<br />
int main() {<br />
// Example signature (byte pattern) and mask<br />
const BYTE pattern[] = { 0x89, 0x45, 0xFC, 0x48, 0x89 };<br />
const char* mask = "xxxxx";  // 'x' indicates exact match; '?' indicates any byte</p>
// Replace with the target module handle (e.g., "example.exe" or a DLL)
HMODULE hModule = GetModuleHandleA("example.dll");  
if (hModule == NULL) {
    std::cerr &lt;&lt; "Module not found!" &lt;&lt; std::endl;
    return -1;
}

// Find the address of the pattern in the module
DWORD64 foundAddress = FindSignature(hModule, pattern, mask);
if (foundAddress != 0) {
    std::cout &lt;&lt; "Pattern found at address: 0x" &lt;&lt; std::hex &lt;&lt; foundAddress &lt;&lt; std::endl;
} else {
    std::cout &lt;&lt; "Pattern not found!" &lt;&lt; std::endl;
}

return 0;

<p dir="auto">}<br />
Explanation:<br />
CompareBytes():</p>
<p dir="auto">This function checks whether the bytes in memory match the pattern provided. The mask string is used to define how strictly each byte should match. An 'x' in the mask indicates that the corresponding byte should match exactly, while a '?' allows for any byte to be considered valid in that position.<br />
FindSignature():</p>
<p dir="auto">This function scans through the memory of the module (hModule), comparing each section of memory against the provided pattern and mask. If it finds a match, it returns the address where the pattern starts.<br />
Usage:</p>
<p dir="auto">In the main() function, we search for a simple example byte pattern ({ 0x89, 0x45, 0xFC, 0x48, 0x89 }) in a module (example.dll). The mask xxxxx indicates that all bytes in the pattern must match exactly.<br />
Replace "example.dll" with the actual module you want to scan (e.g., the target process or DLL you're interested in).<br />
Notes:<br />
GetModuleHandleA() is used to obtain the handle of the module (DLL or EXE). If you're scanning an external process, you will need to obtain the module handle from the target process using methods like EnumProcessModules() or CreateToolhelp32Snapshot().<br />
You may want to adjust memory protections or handle reading memory from other processes using functions like ReadProcessMemory() if you are working with a process other than your own.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/396/c-internal-dll-hack-pattern-scanner</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/396/c-internal-dll-hack-pattern-scanner</guid><dc:creator><![CDATA[rus13_Q]]></dc:creator><pubDate>Fri, 27 Sep 2024 09:46:37 GMT</pubDate></item><item><title><![CDATA[Code Filter крашит игру]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/279">@Haarfus</a> Да было бы за что )) Тему закрываю, раз вопрос исчерпан.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/390/code-filter-крашит-игру</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/390/code-filter-крашит-игру</guid><dc:creator><![CDATA[StoneWeaver]]></dc:creator><pubDate>Tue, 10 Sep 2024 08:33:59 GMT</pubDate></item><item><title><![CDATA[Шифровка]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/492">@Templar</a> если не изменяет мне память, горячая клавиша не нужна.<br />
а ну вот, вторая галочка сверху в настройках 11.jpg</p>
]]></description><link>https://gamehacklab.ru/bb/topic/383/шифровка</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/383/шифровка</guid><dc:creator><![CDATA[garik66]]></dc:creator><pubDate>Thu, 11 Jul 2024 00:16:45 GMT</pubDate></item><item><title><![CDATA[[ПОМОЩЬ] Обнаружение ИИ]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/1">@StoneWeaver</a> Не волнуйся, чувак, я все понял! Спасибо большое, ваш совет мне очень помог. Я проследил, почему было показано сообщение, и добрался до функции... Я не менял никаких значений и не "nop"... Это было простое преобразование "jne" в "jmp".</p>
<p dir="auto">А еще лучше то, что я нашел функции, которые могут задавать статус животного... Например, сделать так, чтобы оно утомилось, чтобы оно заснуло, сделать его голодным и начать есть, а также разозлить его, что учитывается при прохождении. миссии...</p>
<p dir="auto">Вот скриншот того, как это работает, а животные обо мне не заботятся</p>
<p dir="auto"><a href="https://streamable.com/xiy00c" target="_blank" rel="noopener noreferrer nofollow ugc">Streamable видео</a></p>
<p dir="auto">ОписаниеОписание</p>
<p dir="auto">Спасибо за ваше время! Надеюсь, я вернусь, когда на ум придет еще одно сомнение</p>
]]></description><link>https://gamehacklab.ru/bb/topic/374/помощь-обнаружение-ии</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/374/помощь-обнаружение-ии</guid><dc:creator><![CDATA[Nomad]]></dc:creator><pubDate>Wed, 29 May 2024 23:56:06 GMT</pubDate></item><item><title><![CDATA[как узнать смещение?]]></title><description><![CDATA[<p dir="auto">Выложи весь лог. Посмотри что находится в rdi и в r12. Наверняка в одном из двух будет структура. А дальше. Либо сканер. Либо смотри что пишет в эти регистры выше по коду.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/371/как-узнать-смещение</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/371/как-узнать-смещение</guid><dc:creator><![CDATA[Partizan1078]]></dc:creator><pubDate>Fri, 24 May 2024 09:06:36 GMT</pubDate></item><item><title><![CDATA[Как правильно сделать call в своём скрипте?]]></title><description><![CDATA[<p dir="auto">В качестве некого заключения данной темы хочу предложить кусочек своего скрипта, который демонстрирует как передачу параметров в функцию, так и получение от неё результата в случаях, если оные передаются через регистр.</p>
  // начало скрипта (flgRain выведен в таблицу и назначена горячая клавиша на установку значения в 1)
  cmp byte ptr [flgRain],0              // проверяем не было ли команды на смену дождя
  je endRain                            // если нет - завершаем скрипт
  mov byte ptr [flgRain],0              // если была, то сначала сбрасываем флаг обратно (нам не нужно беспрерывно менять дождь туда-сюда, нужно выполнить код лишь единожды)
  pushad                                // сохраняем все регистры в стек
  call Terraria.Main::get_IsItRaining   // проверяем идёт ли сейчас дождь (результат вернётся в регистр EAX)
  test eax,eax                          // 0 - не идёт, 1 - идёт
  je @f                                 // прыжок к секции начала дождя (пропустить остановку дождя) если EAX==0
  call Terraria.Main::StopRain          // останавливаем дождь
  popad                                 // восстанавливаем регистры из стека
  jmp endRain                           // выход из скрипта (не нужно запускать дождь)
@@:
  call Terraria.Main::StartRain         // запустить дождь
  popad                                 // восстановить регистры из стека
endRain:

<p dir="auto">За идею использования инструкций pushad/popad хочу поблагодарить пользователя "youneuoy" с Discord канала GamehackLab[RU].</p>
]]></description><link>https://gamehacklab.ru/bb/topic/369/как-правильно-сделать-call-в-своём-скрипте</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/369/как-правильно-сделать-call-в-своём-скрипте</guid><dc:creator><![CDATA[paracetamol]]></dc:creator><pubDate>Wed, 22 May 2024 08:28:37 GMT</pubDate></item><item><title><![CDATA[не могу понять почему не выводиться базовый адрес игры в трейнере]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/414">@android</a> Возможно некая функция в игре постоянно туда пишет своё значение.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/367/не-могу-понять-почему-не-выводиться-базовый-адрес-игры-в-трейнере</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/367/не-могу-понять-почему-не-выводиться-базовый-адрес-игры-в-трейнере</guid><dc:creator><![CDATA[__fastcall]]></dc:creator><pubDate>Fri, 10 May 2024 14:44:20 GMT</pubDate></item><item><title><![CDATA[таймер в игре веселая ферма 4]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/3">@Partizan1078</a> да</p>
]]></description><link>https://gamehacklab.ru/bb/topic/363/таймер-в-игре-веселая-ферма-4</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/363/таймер-в-игре-веселая-ферма-4</guid><dc:creator><![CDATA[alena20]]></dc:creator><pubDate>Fri, 19 Apr 2024 17:05:11 GMT</pubDate></item><item><title><![CDATA[Взлом Unturned (Unity, Mono)]]></title><description><![CDATA[<p dir="auto">Если главная цель найти указатель на структуру и способ не имеет значения, то я бы рекомендовал сменить подход к задаче.<br />
К примеру у меня была цель найти указатель на класс игрока в Terraria (.NET) - я нашёл здоровье, потом нашёл инструкцию, которая в него пишет, в инструкции адрес куда писать регистр+смещение, предположил, что в регистре искомый адрес и проверил эту гипотезу через dissect data/structure всё в том же CE, делаю инъекцию, которая вытаскивает его в символ который выводится в CE и который можно использовать в других скриптах, что я и делал.<br />
Думаю dissect будет одинаково работать и в вашем случае.<br />
22406b65-4727-463b-9cd5-c608a5766fe7-image.png<br />
1 - игра сама вычисляет адрес структуры<br />
2 - и потом прибавляя смещения находит то ей сейчас из этой структуры нужно</p>
<p dir="auto">Коротко: ваша игра как-то догадывается как искать стамину и прочее, нужно просто за ней проследить и перехватить на моменте, когда она найдёт то что и вам тоже нужно.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/360/взлом-unturned-unity-mono</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/360/взлом-unturned-unity-mono</guid><dc:creator><![CDATA[paracetamol]]></dc:creator><pubDate>Sat, 13 Apr 2024 15:23:01 GMT</pubDate></item><item><title><![CDATA[поиск структуры]]></title><description><![CDATA[<p dir="auto">Могу подсказать только если .NET игрушка (хотя для Mono в инетах пишут тоже работает) - в CE в этом плане есть инструмент:<br />
91efe7dc-0bb8-4891-a545-80d6170b339a-image.png<br />
Далее уже всё должно быть понятно интуитивно<br />
94c7bee7-e0d2-4339-866f-0d3c5ce0b55b-image.png<br />
В частности по кнопке можно получить адреса всех структур выбранного класса<br />
2bf6503a-78e6-4ce3-9138-ef9e1ebec252-image.png</p>
<p dir="auto">Если в вашей игрушке такой менюшки не показывается, то давайте разбираться. Для начала откуда знание названия структуры?</p>
]]></description><link>https://gamehacklab.ru/bb/topic/355/поиск-структуры</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/355/поиск-структуры</guid><dc:creator><![CDATA[paracetamol]]></dc:creator><pubDate>Fri, 29 Mar 2024 06:44:15 GMT</pubDate></item><item><title><![CDATA[ultimap 2 на amd]]></title><description><![CDATA[<p dir="auto">Пользователь <a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/381">@123qwer</a> написал в <a href="/bb/post/815">ultimap 2 на amd</a>:</p>
<blockquote>
<p dir="auto">Подскажите что нужно сделать.</p>
</blockquote>
<p dir="auto">Ответ вот тут <a href="https://www.cheatengine.org/forum/viewtopic.php?p=5507316&amp;sid=623a79bbf716c4e4934aa5e7f09f0463" target="_blank" rel="noopener noreferrer nofollow ugc">Чпок</a></p>
]]></description><link>https://gamehacklab.ru/bb/topic/354/ultimap-2-на-amd</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/354/ultimap-2-на-amd</guid><dc:creator><![CDATA[LIRW]]></dc:creator><pubDate>Tue, 19 Mar 2024 17:01:22 GMT</pubDate></item><item><title><![CDATA[Как получить всё оружие в начале игры?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://gamehacklab.ru/bb/uid/370">@Hakor</a> Ида про или чит энжин - выбор за тобой и он зависит в основе от знаний, если по асм коду умеешь понимать, то через СЕ/x64dbg и подобные, если нет, то лучше ида, мне не принципиально через что смотреть, но это надо тебе.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/306/как-получить-всё-оружие-в-начале-игры</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/306/как-получить-всё-оружие-в-начале-игры</guid><dc:creator><![CDATA[__fastcall]]></dc:creator><pubDate>Sat, 09 Mar 2024 16:58:39 GMT</pubDate></item><item><title><![CDATA[Debug меню в Cheat Engine неактивно.]]></title><description><![CDATA[<p dir="auto"><strong>Неактивные элементы меню говорят о том, что нет сработавшего брейка</strong>.<br />
Если после установки breakpoint'а (F5) и возвращения в игру - игра играется и он не срабатывает, то видно поставили брейк на участок кода, который пока никак не участвовал в игре.</p>
]]></description><link>https://gamehacklab.ru/bb/topic/305/debug-меню-в-cheat-engine-неактивно</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/305/debug-меню-в-cheat-engine-неактивно</guid><dc:creator><![CDATA[paracetamol]]></dc:creator><pubDate>Thu, 07 Mar 2024 10:37:03 GMT</pubDate></item><item><title><![CDATA[Вызов игровой функции, принимающей в качестве аргумента массив или указатель на него]]></title><description><![CDATA[<p dir="auto">Здравствуйте, пытаюсь вызвать функцию в одной игре с помощью C++, раньше эта игра не была зашифрована(можно было спокойно изменять Assembly-CSharp.dll), но сейчас игра уже IL2CPP, поэтому у меня есть <code>Assembly-CSharp.dll</code> старой версии этой игры. Вот как на C# задается функция(SendMessage), которую я хочу вызвать(повторюсь, она из незашифрованной версии игры).  Cразу говорю, вызывать ее на C# для меня не вариант.</p>
<pre><code class="language-c#">			this._connectionManager.SendMessage(new NetworkMessage
			{
				MessageType = MessageType.InputBuildRequest,
				Content = new InputBuildRequest
				{
					Angle = angle,
					BuildType = (uint)this._buildingDef.EntityType,
					Id = 0,
					TestPass = false,
					X = vector.x,
					Y = vector.y
				}
</code></pre>
<p dir="auto">А вот как выглядит InputBuildRequest:</p>
<pre><code>public InputBuildRequest(InputBuildRequest other) : this()
{
	this.id_ = other.id_;
	this.buildType_ = other.buildType_;
	this.x_ = other.x_;
	this.y_ = other.y_;
	this.angle_ = other.angle_;
	this.testPass_ = other.testPass_;
	this._unknownFields = UnknownFieldSet.Clone(other._unknownFields);
}
</code></pre>
<p dir="auto">В дампе эта функция выглядит следующим образом:</p>
<pre><code>    {
      "Address": 3252048,
      "Name": "Game.Managers.ConnectionManager.ConnectionManager$$SendMessage",
      "Signature": "void Game_Managers_ConnectionManager_ConnectionManager__SendMessage (Game_Managers_ConnectionManager_ConnectionManager_o* __this, ServerDefinitions_NetworkMessage_o* message, const MethodInfo* method);",
      "TypeSignature": "viii"
    }
</code></pre>
<p dir="auto">Передать в нее указатель на класс я могу(т.е. первый аргумент и третий тоже), но второй это и есть тип постройки, который я не понимаю как передать. Также я прикрепил скрины того, как она выглядит в ассемблере.<br />
Вот так выглядит на C# вызов, который я хочу осуществить , но уже на C++:</p>
<pre><code>			this._connectionManager.SendMessage(new NetworkMessage
			{
				MessageType = MessageType.InputBuildRequest,
				Content = new InputBuildRequest
				{
					Angle = 0.3926991f,
					BuildType = 23U,
					Id = 0,
					TestPass = false,
					X = 1f,
					Y = 20f
				}
			});
</code></pre>
<p dir="auto">Может мне кто-то помочь сделать это, потому что функция выглядит очень непонятно, как с этим что-то делать у меня 0 идей.<img src="/bb/assets/uploads/files/1709385867279-8f31e9f8-ebbe-401a-af66-451c9a7de0b8-image.png" alt="8f31e9f8-ebbe-401a-af66-451c9a7de0b8-image.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://gamehacklab.ru/bb/topic/303/вызов-игровой-функции-принимающей-в-качестве-аргумента-массив-или-указатель-на-него</link><guid isPermaLink="true">https://gamehacklab.ru/bb/topic/303/вызов-игровой-функции-принимающей-в-качестве-аргумента-массив-или-указатель-на-него</guid><dc:creator><![CDATA[Inode]]></dc:creator><pubDate>Sat, 02 Mar 2024 13:24:46 GMT</pubDate></item></channel></rss>