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

Xipho

Администраторы
  • Постов

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

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

    42

Весь контент Xipho

  1. Если ты сам себя спрашиваешь, то, скорее всего, слабо, иначе уже давно нашел был. Тебе уже неоднократно говорили - используй все возможные варианты поиска. Не срабатывает один - используй следующий. Не сработал он - пробуй далее. И, в конце концов, один из вариантов так или иначе, но сработает.
  2. У меня как-то в игре PsiOps возникла проблема со статической инъекцией. На каком-то из уровней игра вдруг стала использовать место, куда я делал инжект, и игра вылетала с трейнером, разумеется. С тех пор предпочитаю выделять память для инъекции динамически. По крайней мере, гарантированно игра это место вдруг использовать не захочет )
  3. Надо будет попробовать себя в этой проге, посмотрим, что скажет про меня )
  4. То, что на экране известные цифры вовсе не гарантирует того, что истинное значение хранится именно теми же цифрами. Не нашлось так - ищи как неизвестное.
  5. Поправил, спасибо ) Это называется Staple Intersection, и у меня будет урок о ней обязательно ) Да, это самый действенный способ, но код анализировать приходится больше и дольше.
  6. Не без этого, конечно, зато характер и терпение закаляет )
  7. Поправил скрипт в своем предыдущем посте. Хотя в данном конкретном случае можно сделать еще проще mov rax,[rdx+18]mov rax,[rax+28]mov [rdx+8],raxПоскольку ты используешь инструкцию, которая записывает подготовленное число патронов в текущее значение (в памяти), то можно сразу в регистр считать нужное значение из внутренней стркутуры. Опять же, именно такой подход актуален только для пишушей инстркуции. Для читающей инструкции правильнее будет использовать скрипт подобный тому, что я выше привел.
  8. приблизительно так: push rbx // сохраняем регистр на всякий случайmov rbx,[rdx+18] // считываем из основной структуры указатель на внутреннююmov rbx,[rbx+28] // считываем из внутренней стркутуры максимальное количество патроновmov [rdx+8],rbx // присваиваем текущему значению максимальноеpop rbx // восстанавливаем регистр
  9. Тебе неоднократно говорили, что нужно пробовать все возможные варианты, ты не реагируешь. Видимо, асфальтоукладчик требуется...
  10. Когда-то давным-давно учился "слепому" методу печати на программе "Соло на клавиатуре". Не жалуюсь ) Правда, во время обучения хотелось иногда клаву разбить, ибо при ошибке нужно несколько секунд выждать, прежде чем дальше печатать, но зато и терпению научился, и в руках себя держать тоже )
  11. Приблизительно так и планировал. Но нужно будет еще реализовать систему контроля версий, как на форуме, уж больно удобно.
  12. Друзья, напоминаю вам, что мы занимаемся взломом игровых значений. А взлом игры на предмет бесплатного получения функционала, за который взимается плата, является незаконным и приравнивается к пункту 2.1 Главных правил нашего форума
  13. #include <iostream>#include <windows.h>using namespace std;ProcessWriteMem(HANDLE hProcess, DWORD Address, void* p_value, BYTE size) { try { WriteProcessMemory(hProcess, (void*)Address, p_value, size, NULL); } catch(...) {}}int main(){ HWND hWnd; DWORD dwID; HANDLE hProcess; hWnd = FindWindow(NULL, "3D Pinball for Windows - Space Cadet"); GetWindowThreadProcessId(hWnd, &dwID); hProcess = OpenProcess(PROCESS_ALL_ACCESS, NULL, dwID); int value = 1000000; ProcessWriteMem(hProcess, 0x00C20C62, &value, sizeof(&value)); return 0;}
  14. ТС нужно, чтобы один из скриптов срабатывал только тогда, когда работает другой скрипт. Я ему в личку отписал пример с помощью флагов, думаю, этого будет вполне достаточно )
  15. В данном случае ТС нужна помощь в том, чтобы из первого скрипта активировать второй. Думаю, на луа в СЕ это можно сделать, но нет времени ковыряться. Может, кто из участников сможет помочь.
  16. Еще раз. Функционал программы - это то, что программа делает для пользователя. Для того, чтобы быть в курсе функционала, необязательно лезть в исходный код. Например, тебе не нужны исходники, чтобы знать, что скайп предназначен для звонков и общения, Хром - для ползания по интернету, любая игра - для того, чтобы в нее играть. И если ты вообще не знаешь, что именно делает программа в отношении пользователя, если ты не знаешь, какие именно возможности она пользователю предоставляет - получив исходный код ты тем более не поймешь в нем ничего. Учитывая твои невысокие знания в "решетках" - тем более. И да, в декомпилированном коде никогда не будет "документирования" и комментариев, так как они отбрасываются на этапе компиляции, потому что они нужны программисту, а не процессору, который в конечном итоге будет исполнять скомпилированные инструкции.
  17. Так а зачем тебе тогда вытаскивать исходный код, если ты даже не знаешь, что программа делает? Что-то ты темнишь, сударь.
  18. Я писал выше. Фильтр не делал, так как там в мегаструктуре мира копаться надо (сами структурки игроков размером 0x1C всего). Я просто нашел инструкцию, которая работает только с игроком. Союзники тоже смертны вроде, особо в игру не играл )
  19. Попробуй воспользоваться автогенератором из СЕ родным, а не АА мейкером. Если с ним сработает, им и пользуйся. А +04 потому, что Аобсканер берет на четыре байта раньше, чем нужно для внедрения, для метки АОБ. Потому, чтобы внедриться в нужное место, и делается отступ на эти 4 байта. Внимательно изучи байты инструкций перед инъекцией и после нее, и все поймешь.
  20. Я пользуюсь автогенерацией основного кода, и потом добавляю то, что нужно мне ) А он автоматически выставляет регистрацию метки рядом с оригинальным кодом ) Чтобы мой скрипт заработал, нужно чтобы тебя ударил зомби. Он срабатывает при получении урона и никак иначе.
  21. Как сохранить - не знаю. Сделал опыт. Интересный случай попался. На днях обязательно запишу урок по автопрокачке ) При первом убийстве или каком-либо другом получении опыта не срабатывает, зато начинает работать при всех последующих )) [ENABLE]//code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(ADDXP,deadrising3.exe,41 2B 81 58 3E 00 00 EB) // should be uniquealloc(newmem,$1000,"deadrising3.exe"+27A1D)label(code)label(return)newmem: push eax sub eax,1 cmp [r9+00003E58],eax jnl @F mov [r9+00003E58],eax@@: pop eaxcode: sub eax,[r9+00003E58] jmp returnADDXP: jmp newmem nop nopreturn:registersymbol(ADDXP)[DISABLE]//code from here till the end of the code will be used to disable the cheatADDXP: db 41 2B 81 58 3E 00 00unregistersymbol(ADDXP)dealloc(newmem)
  22. Скорее всего, ты не ту инструкцию выбрал для инъекции. Я выбрал ту, которая гарантированно работает только с игроком, ведь она срабатывает именно тогда, когда игрок получает урон.
  23. Это не нужно, остался кусок от предыдущей попытки ) Сейчас занимаюсь автоподнятием уровня ) Интересный случай в этой игре ) Прямо заинтересовал реально )
×
×
  • Создать...

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

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