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

Лидеры


Популярный контент

Показан контент с высокой репутацией за 24.08.2018 во всех областях

  1. 3 балла
    Добро пожаловать на борт, мои юные любители моря и реверса. На этот раз мы решим проблему игры, разработчики которой не стали этого делать уже на протяжении 6 лет. На весь реверс ушло порядка 50 рюмок рома, 6 подбитых кораблей британской империи и конечно же несколько портовых шл..., ах да, реверс. С языковыми winapi я не работал до этого момента и поэтому пришлось вручную дебажить весь код от инициализации игры, до создания интерфейсов и всякой не интересной ерунды. Итак, изначально у нас было решение проблемы в виде костылей, что для фикса надо сменить язык в системе или текущую клавиатуру на английский, но кому это нравится? Можете спросить: «Зачем отлаживать код вручную, когда есть трассировка?» Ну что-ж, мои маленькие пираты ответ прост, игра при использовании трассировки или отладки с обходом вызывает странный код и пропускает вообще все, что нам нужно исследовать, который при отладке с заходом не вызывается. Всего пришлось дебажить около 10к инструкций, чтобы найти винапи которая выгружает, угадайте что? Правильно, идентификатор локали ввода. После вызова этой функции, у нас и пропадает из трея языковая панель и ломается локаль. Итак, мы нашли виновника, и что нам делать с ним? Нет, мы не будем скидывать разработчиков за борт. (а стоило бы) Теперь нам нужно понять, как это все работает и откуда берется этот идентификатор локали ввода. Отправляемся в бухту знаний и таинств… Гуглим, гуглим, гуглим и наконец нагуглили winapi с именем LoadKeyboarLayout, круто, отправляемся снова в дом к прекрасной иде, которую за все время нашего путешествия встречаем впервые, переходим на адрес инструкции с функцией выгрузки идентификатора. Вот и весь путь идентификатора. Нашли мы LoadKeyboarLayout и теперь нас будет интересовать только первый аргумент этой функции, почему так? Да просто потому что мы умеем читать документацию и знаем, что значение первого аргумента равно 409, будет работать как положено, только если дефолтный язык в системе будет английский, для русского языка, необходимо использовать значение 419 это можно найти в мсдн. В чем же заключалась проблема? Я думаю в лени разработчиков, а если судить о коде, проблему вызывала загрузка английской локали, но если её нет, то и загружать нечего, а значит и выгружать, а значит будут проблемы. Фикс заключается в исправлении значений загружаемой локали для распакованной версии, либо создании загрузчика для стимовской версии, который бы фиксил все это каждый запуск. Всех с днем пиратства! P.S Ах, да совсем забыл написать, все эксперименты проводились на распакованной версии игры, без Steam DRM т.к. со Steam DRM весь файл зашифрован и найти что-либо или пропатчить невозможно. Этим утром нашел ещё проблему некорректной инициализации steamapi, из-за чего игра время от времени крашилась. Сам по себе Steam-DRM инициализирует steamapi, но раз мы его вырезали, то естественно будут проблемы при обращении к нему. Для того чтобы решить проблему со steamapi, нам необходимо создать текстовый файл около файла steam_api.dll с именем steam_appid.txt и указать в нем ID игры для принудительно инициализации.
  2. 3 балла

    Версия 1.0

    2 раза скачали

    Num1: Бессмертие. Num2: Вечные деньги. Num3: Максиму энергии. Num4: Быстро строить. Num5: Карта всегда открыта. Num6: Открыть все протоколы. Num7: Нет перезарядки супер-оружия. Num8: Максимальный индикатор опасности. Num0: Выключить все читы.
  3. 3 балла

    Версия 7101

    3 раза скачали

    Использование: Запускаем игру, запускаем трейнер. Клавиши в трейнере парные. Зажимаем клавишу insert и с зажатой клавишей, жмем клавиши указанные на панели трейнера. Каждая функция под своей буквой. Функции: Бессмертие. Бесконечная выносливость. Без голода. Бесконечные деньги.. - Надо что то продать либо купить. Обнуление веса предметов в сумке. Режим полета во время прыжка. Супер прыжок. Всегда новое оружие. Убийство с одного выстрела - даже техники. Супер скорость полета пули. Супер дистанция полета пули. PS: Трейнер пока в демо версии... Функции ещо не доделанные до (желаемого результата) так что пока это первая бета версия. Demo:
  4. 3 балла
    Парень, ты извини меня, но так продолжаться больше не может. С самого начала ты сказал, что оффлайн игры это изи, однако ты задаешь такие вопросы, которые позволяют мне усомнится в твоей компетенции. Скорее всего ты если и собираешься научится взламывать игры, то только чтобы взломать один раз, и только конкретную игру. И это напоминает меня. Когда то давно я искал для себя планировщик задач, если хочешь - органайзер. Я не мог ни как найти тот, что подошел бы мне, и мне пришла в голову мысль - а почему бы самому не сделать его? Тем более что в сети наверняка есть примеры. Я выбрал для себя язык Python, ибо он прост. Накачал пару учебников, даже прочитал их, но уперся на моменте, когда не смог реализовать простой таймер. К сожалению моих знаний, и знаний моих знакомых не хватало найти модуль Phyton, отвечающий за таймер. А писать самостоятельно было трудно. Тогда я решил найти что-то другое, и схватился за C#, для которого все есть, и в большом количестве. Уж про форумы для него я молчу. Более того скажу, что у меня друг был готов мне помогать денно и нощно, и даже написал для меня часть кода. Но тут мне пришла в голову мысль - чувак, я хочу выучить язык, чтобы решить всего 1 проблему в организации своей жизни, и забыть. То есть сейчас я трачу часы на это, чтобы это ни как в будущем не окупило ни морально, ни денежно. Что может быть бессмысленнее этого? В конечном итоге я нашел органайзер, который мне подошел (не совсем, но уже кое-что, да и он с открытым исходным кодом, так что все впереди), и я забыл о программировании как о страшном сне. Иногда подумываю об этом деле, но уже как бы в шутку. У нас на форуме был один парень, он усердно бомбордировал нас вопросами, практически как ты. Но есть одно отличие - если мы ему не отвечали, или предлагали прошерстить форум, он искал информацию сам. Я могу сказать больше - он ее находил. И знаешь к чему это привело? Он научился делать таблицы, тренеры. Сначала всего на 1 функцию, потом появилось что-то еще, и вот уже в каждой игре по пять-шесть функций есть. Почему бы тебе не разобраться в вопросе? Форум у нас обширный, на нем чего только нет. Но без изучения матчасти, ты ничего не добьешься, а так и будешь переспрашивать очевидные вещи. Зачем тратить свое и наше время на бесполезный труд? Мы тебе дали инструмент, который ты можешь использовать по своему усмотрению. Даже дали советы, как пользоваться инструментом, но пользоваться ты должен сам. PS Под инструментом понимается форум.
  5. 2 балла

    Версия 1.12

    2 раза скачали

    Num1: Бессмертие. Num2: Вечные деньги. Num3: Максиму энергии. Num4: Быстро строить. Num5: Карта всегда открыта. Num6: Открыть все протоколы. Num7: Нет перезарядки супер-оружия. Num8: Максимальный индикатор опасности. Num0: Выключить все читы.
  6. 2 балла

    Версия Origin

    1 раз скачали

    Использование: Скаченный архив распаковываем в любое удобное для вас место. Запускаем сначала игру, а в главном меню игры или в уже начатой игре "trainer" Функции Трейнера: 1) Бесконечная жизнь. 2) Бесконечный кислород+температура тела. 3) Бесконечный статис. 4) Без перезарядки оружия. 5) Бесконечные патроны. 6) Бесконечные ресурсы. 7) Без отдачи оружия. 8. Максимальная точность оружия. 9) Скорострельность оружия. 10) Легкий взлом. 11) Урон оружия увеличен в 50 раз. 12) Бесконечное время взлома. Ps: Функцию температуры запихал в кислород.. Клавиш не хватило, а дописывать в 3 часа ночи - лень.
  7. 2 балла
    S.T.A.L.K.E.R. NLC 3.0 Просмотр файла Использование: Запускаем игру, запускаем трейнер. Клавиши в трейнере парные. Зажимаем клавишу insert и с зажатой клавишей, жмем клавиши указанные на панели трейнера. Каждая функция под своей буквой. Функции: Бессмертие. Бесконечная выносливость. Без голода. Бесконечные деньги.. - Надо что то продать либо купить. Обнуление веса предметов в сумке. Режим полета во время прыжка. Супер прыжок. Всегда новое оружие. Убийство с одного выстрела - даже техники. Супер скорость полета пули. Супер дистанция полета пули. PS: Трейнер пока в демо версии... Функции ещо не доделанные до (желаемого результата) так что пока это первая бета версия. Demo: Добавил LIRW Добавлено 06.09.2018 Категория Трейнеры для PC игр
  8. 1 балл
    Call of Duty Modern Warfare 3 Просмотреть файл Использование: Скаченный архив распаковываем в любое удобное для вас место. Запускаем игру, запускаем трейнер. Именно игру, а потом трейнер. Функции Трейнера: 1) Бесконечная жизнь. 2) Убийство с одного выстрела. Данная функция, убивает всех и союзников и врагов. 3) Без перезарядки оружия. 4) Бесконечные патроны. 5) Максимальная точность оружия. 6) Без отдачи оружия. 7) Скорострельность. 8) Режим полета сквозь стены. 9) Нет тряски при уроне. PS: Трейнер работает как в SP так и в спец операциях. Естественно пробовал не на лицензии Demo: Автор LIRW Добавлен 28.01.2018 Категория Трейнеры для PC игр
  9. 1 балл

    Версия _

    497 раз скачали

    Insert menu Num0 fix camera Num1 fix move Num2 fix pickup Num3 fix accuracy Num4 no recoil Num5 no reload Num6 no semi-auto Num7 no clip Num8 no pusher Num9 no fall damage / no rand spawn * auto medkit - auto grenade (Frag, Proximity, Remote Charge, DeployableTurretGrenade, GrenadeLauncher, Scream) + auto target Alt / run speed (slow/fast) Alt * rapid fire Alt - melee mod (Frag, Proximity, Remote Charge, DeployableTurretGrenade, GrenadeLauncher, Missile, PAMissile, Scream, KnifeXP2, Melee) Alt + super jump Del show enemies Home health max PageUp health/armor PageDown ammo End animation Delete invalid team +team kick all (before select team) Weapons: (спам: в инвентаре должна быть 1 пушка, зажать F1-F10) F1 pistol F2 dual pistols F3 submachinegun F4 shotgun F5 assault rifle F6 nail gun F7 semi-auto rifle F8 cannon F9 missile launcher F10 plasma weapon F11 vulcan cannon, turret helicopter/street/remote F12 flying drone gun, bh cannon (в инвентаре должна быть 1 пушка) Alt F1 advanced rifle Alt F2 minigun Alt F3 grenade launcher Alt F5 laser carbine Alt F6 chain lightning gun Alt F7 slowmo recharger Alt F8 slowmo full Alt F9 slowmo activate Alt F10 immortal Alt F11 earthquake Alt F12 burn Alt Pause rand pickup Alt Enter chat spam Alt Num0-9 sounds Alt Del invisible mode Alt Home health/armor/slowmo Alt PageUp drop ammo Alt Delete spawn teleport Alt End pickup teleport PageDown player teleport Pause disconnect Lwin rand guid (hold when join) ~ invisible (hold to use) Auto patch: UniquePlayer F8 key fix when menu visible Chat commands: !list - players !host - unlock options !crash - server !killall - players !kill X - player !ban X - player (cd key hack ban for server v2.0.1, v2.0.5 Aug 1/2 2017) базовая идея от vityacv !immortal X - player !weapon X - send to player current weapon (for F11 player must drop all weapons) !runspeed - special fix for SEC2 v2.0.6 !rapidfire - special fix for SEC2 v2.0.6 Server SEC2 v2.0.6 несовместимо: F1-F12 - key ban Home health max - key ban PageUp health/armor - key ban PageDown ammo - key ban End animation - key ban Delete invalid team +team kick all - key ban Alt / run speed - kick Alt * rapid fire - ignored Alt F7 slowmo recharger - key ban Alt F8 slowmo full - key ban Alt F10 immortal - key ban Alt F11 earthquake - key ban Alt F12 burn - key ban Alt Pause rand pickup - ignored Alt Enter chat spam - chat warning after spawn Alt Num 0-9 sounds - key ban Alt Home health/armor/slowmo - key ban (work on all lower 2018.05.20) Alt Delete spawn teleport - key ban Alt Del invisible mode - key ban !host - key ban !crash - crash server - key ban (work on all lower 2018.07.xx) !killall - key ban !kill x - key ban !ban x - key ban !immortal x - key ban !weapon x - key ban Для стабилизации игры добавлена папка fix (авторы фикса gmz и vityacv) FEARMP.exe and FEARXP2.exe: removed securom crap: fix DEP crash (FEARMP.exe only) fix slow start / map load fix high cpu load and other insane shit included in securom... cleanup code, PE correction fix spam LoadLibraryA -> pbclnew.dll/pbcl.dll fix SetWindowsHookExA fix dinput8 drop fps fix "%s.available.gamespy.com" fix load "ICMP.DLL" binkw32.dll: 1.8.3 -> 1.8.23 (fix crt HeapFree crash on exit) MFC71.dll: 7.10.2292.0 -> 7.10.6119.0 MFC71u.dll: 7.10.3077.0 -> 7.10.6119.0 msvcp71.dll: 7.10.2292.0 -> 7.10.6052.0 msvcr71.dll: 7.10.2292.4 -> 7.10.6031.4 инжектить в главном меню игры! меню доступно после загрузки карты! совместимость Win7+, CPU с SSE 4.2, написан на FASM v2
  10. 1 балл
    Привет всем. Я думаю, что меня может не быть на форуме продолжительное время от 2х месяцев в связи с обстоятельствами. Переезд, поиск работы и семейные обстоятельства. Второй момент. Я создал кнопки яндекс кошелька в некоторых темах моего блога. Толку от кнопок нет, т.к. там все по нулям. Поэтому я их удалю. Lua плагины для CE пока делать нет возможности. До встречи в Москве! ) Буду искать работу в новой игровой студии уже в Москве
  11. 1 балл
    Да я и так твой Зёма, Игорь. В Москве я жил +20 лет. Дом рядом с твоими Лужниками (где ты работал, закрыли давно там рынок). Вот несколько ссылок, которые нужны для собеседований, если кому интересно ...Был на нескольких собеседований. Провалил. Высочайшие требования на хорошую ЗП (в районе 80К-120К и до 250К, и даже до 4К евро на Кипре). Не те, что были на моей прошлой работе. Стыдно было про примитивные вопросы. Не знал про боксинг и анбоксинг, забыл коллекции, про паттерны вообще молчу. Очередность рендеринга не помню... Пока работу ищу, обучаюсь. Думаю на виртуальную реальность пойти + Unity на бизнес презентации с госкомпаниями. Если нет, то пойду опять на казуалки, но в этот раз временно или на удалёнку. Потом будут расти, как любят писать до "синьора" и "лида". QA-руководителем (на прошлой работе) скучно, было как хобби, хотя и писал на Питоне программные тесты иногда. Ладно, надо ложиться спать. Сегодня и завтра три собеседования, надо выспаться
  12. 1 балл
    Не в мельчайших. Каким способом искал? Возможно, что разрабы зашифровали значения для элитного уровня сложности. Попробуй поиск 4 байта/неизвестное/ изменилось/не изменилось. И вы конце проверку делай не вписывая какое-то значение, а замораживая адреса. Если значение не поменяется при покупке, то это будет искомый адрес.
  13. 1 балл
    Что бы без папки делали то Но от чего то серьёзного, данный способ не прокатит. К примеру раньше игру смотрел "Operation Flashpoint Dragon Rising" окно СЕ изменил и всё, можно ковыряться.. А не так давно игру прокачали защиту и подобный способ уже не катит. Но игра так и лежит, смотреть не когда.
  14. 1 балл
    Вот что у меня получилось Sacred Gold (2.28) steam.CT
  15. 1 балл
    Можешь как-то так #define fo 160 - 7 ^ st.length() _int c_l(_int *ss){ _int st{ *ss }; for (auto& m : st) m ^= fo; return !(-1*7!=7-+1) ? c_l(&st) : *ss = st; }
  16. 1 балл
    Интересные такие, выкидывает. Что выкидывает, куда, когда?)) Если с АвтоАимом развадавать на PvP по головам как рембо, естественно будет выкидывать ФФ в лобби. На спецоперациях будет выкидывать, потому-что вырезал их поддержку. А больше не из-за чего выкидывать не будет. Были тесты, люди играли в течении суток на разных системах. Всё отлично. Вот сегодня тестер 1 лигу рейтингов взял на изи, всё норм говорит. А играет он не стесняется. Единственное, что у него в версии есть выбор кости. Да и надо прекращать уже бесплатные выпуски и обновы. Люди играют, а взамен ничего не идет. Ни форуму, ни мне. Спасибо даже никто не скажет.
  17. 1 балл
    Сегодня сделаем Recoil Control System, а точнее его простейшую реализацию. Используя такой способ можно добиться стрельбы в одну точку на любом расстоянии с учетом значений разброса и ускорения отдачи. Все как обычно, открываем иду и ищем смещения. m_Local m_aimPunch Ещё необходимо найти адрес управляющий координатами камеры, но это слишком просто чтобы останавливаться на этом. Итак, теперь надо компенсировать отдачу, для этого мы просто складывает старый вектор Punch с новым, можно умножать на 2, но точность будет отличаться на 10-15%. DWORD m_dwLocal = 0x0; DWORD m_vecAimPunch = 0x0; vec3 m_vecOldPunch = {0,0,0}; auto CLocalPlayer = m->read<DWORD>(dwClient + 0x00C5C86C); auto CClientState = m->read<DWORD>(dwEngine + 0x586A74); vec3 m_vecAngles = m->read<vec3>(CClientState + 0x4D10); vec3 m_vecPunch = m->read<vec3>(CLocalPlayer + m_dwLocal + m_vecAimPunch) static vec3 *tempAngles = new vec3(m_vecAngles); tempAngles->x -= m_vecPunch.x + m_vecOldPunch.x; tempAngles->y -= m_vecPunch.y + m_vecOldPunch.y; tempAngles->z = 0; m->write<vec3>(dwvecAngles + 0x4D10, tempAngles); m_vecOldPunch = m_vecPunch; delete tempAngles; Это конечно не так просто как в Warface, но затруднений вызвать не должно.
  18. 1 балл
    Сегодня напишем простейшую реализацию функции поиска используемого регистра в коде при статическом анализе, как когда-то показывал этот функционал в radare2. Немного модифицированный скрипт стоит у меня на вооружении для динамического анализа т.е. определяет где впервые адрес появляется, как рассчитывается, дампит смещения и пробует найти сигнатуру на статический адрес в коде. В общем немного подумав и почитав доки по иде, тоже сможете такое сделать без особых проблем. Скрипт пишется минут за 15-20, но в дальнейшем экономит нереально много времени. Единственная проблема возникла с получением точно адреса инструкции, во избежании повторений в выводе и была написана альтернатива функции range. # подключаем необходимые библиотеки import idc # стандартные модуля для общения между идой import idaapi import re # для расширения функционала поиска reg_value = r'.*\[r14\+.*' # то, что будем искать def range_reverse(start, stop): # аналог функции range for i in FuncItems(start): if i < start and i >= stop: yield i ea = ScreenEA() # получение текущего адреса курсора current_function = idaapi.get_func(ea) # получение информации о функции # перебор инструкций по адресам for inst_addr in range_reverse(ea, current_function.startEA): disasm_output = idc.GetDisasm(inst_addr) # вывод дизассемблированной инструкции по её адресу if re.findall(reg_value, disasm_output): # фильтрация по нужному тексту print("0x%X" % inst_addr, disasm_output) Раз скрипт уже написали(скопипастили), приступим к тестам. И так, у нас есть инструкций работающая со скорострельностью, нам надо посмотреть всякие интересности, типа проверок, что ещё работает с базовым адресом таймера скорострельности и т.д. Выполняем скрипт и получаем всю информацию о интересующем регистре, так же, чтобы избавится от инструкций чтения и выводить только инструкции записи, можно добавив одну проверку, но с этим вы сами сможете справиться, я надеюсь вы меня не расстроите. Так же можем отследить как вычисляется база следуя за регистром, переходя двойным кликом по адресу в окне вывода. Это ведь проще, чем руками скролить функцию под 10-20к инструкций. В общем, если лень, что-то делать — автоматизируй или не делай.
  19. 1 балл
    Попросили написать, но тут все как-то просто(но я тупил около часа) и не дотягивает до статьи попробую дотянуть. В общем для начала нам нужно получить смещение на глобальную переменную, для примера возьмем кусок кода из гта. 00007FF6153BE89D | 48 8B 05 A4 33 B1 01 | MOV RAX, QWORD PTR DS:[0x7FF616ED1C48] Смещением у нас будут последние 4 байта A4 33 B1 01 Перед пересчетом вручную их надо перевернуть, но при получении байт из памяти процесса они уже будут перевернуты. 1B133A4 Дальше, открываем самый главный инструмент для любого взломщика — гугл и ищем адресация памяти Если в двух словах, то байты, которые рассмотрели выше, являются подобием ссылки-дельты для глобальной переменной от текущего rip/eip. Остается лишь посчитать, для этого возьмем eip + ссылка + 4 (7 - 3) 00007FF6153BE89D + 1B133A4 + (7 - 3) Ах, да 7 это количество байт нашей инструкции, -3 чтобы выровнять адреса после получения ссылки. Пример из внешнего чита: auto WorldPTR_addr = this->FindSignature(this->hProcess, reinterpret_cast<DWORD64>(this->mi.lpBaseOfDll), static_cast<DWORD>(this->mi.SizeOfImage), reinterpret_cast<BYTE*>("sign"), "mask") + 3; //получаем адрес по которому хранятся байты +3 байта от начала инструкции if (WorldPTR_addr) { ReadProcessMemory(hProcess, reinterpret_cast<PBYTE*>(WorldPTR_addr), &WorldPTR, sizeof(DWORD64), 0); //получаем байты buffer = WorldPTR_addr + WorldPTR + 4; //(7 - 3) //получаем адрес глобальной переменной (eip + ссылка + выравнивание после получения ссылки) buffer -= reinterpret_cast<DWORD64>(this->mi.lpBaseOfDll); //получаем относительный виртуальный адрес } И готово.
  20. 1 балл
    Настоящее имя: Александр Возраст: 24 года С правилами ознакомлен. Свои работы (минимум три):
  21. 1 балл
    Можете конечно спросить, зачем что-то реверсить, когда можно использовать StealthEdit, ответ прост, мне не нравится тащить за собой какие-то зависимости. Способ обхода очень простой, если почитать как работает проверка на примере CRC хешей, то её можно представить её в виде 3-х блоков. 1. Вычисление хеша в цикле. 2. Проверка валидности. 3. Действие, если верна или не верна проверка. Тут есть несколько вариантов обхода: 1. Изменить проверку валидности (точечный удар) 2. Восстановить блок с предустановленными хешами (глобальное отключение) Полное отключение проверки целостности нам не нужно, так что будем искать проверку на валидность, теперь определившись с вектором атаки единственное, что нам необходимо сделать поставить бряк на память и дождаться срабатывания инструкции. Т.к. нам нужно отключить конкретную проверку, то бряк будем ставить на конкретную инструкцию (пишущую инструкцию патрон) Кто был внимательный при просмотре и заметил, место где задается здоровье скорпиона, тот молодец.
  22. 0 баллов
    О папка пришел - и я решение вопроса нашел Спасибо Женя
  23. 0 баллов
    Мне на с++ нужно. Что это за язык.
  24. 0 баллов
    И не говори... одни жалобы!
  25. 0 баллов
    Накой хрен я пишу статьи, если люди не могут воспользоваться поиском. Пожалуй, это была последняя капля.
×

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

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