partoftheworlD
-
Постов
2 687 -
Зарегистрирован
-
Посещение
-
Победитель дней
172
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные partoftheworlD
-
-
-
В 25.11.2016 в 12:35, gmz сказал:
распаковка:
trainer_x64.EXE -> в x32_dbg -> CreateProcessA -> breakpoint
%TEMP%\cetrainers\CETXXXX.tmp копируем trainer_x64.EXE и CET_Archive.dat
trainer_x64.EXE -> в x32_dbg -> CreateProcessA -> breakpoint -> получаем:
1 trainer_x64.EXE - реал х64
2 lua53-64.dll
3 CET_TRAINER.CETRAINER
4 defines.luaдальше над смотреть дешифро, вариант выше где нашли блок в котором валяется дешифро+мусор - Lol
ps метод упаковки - еще тот ржач
В следующий раз закрою тему, пора бы научиться поиском по форуму пользоваться.
-
57 минут назад, Pigsy сказал:
А если так - брать в руку разное оружие и отсеивать число его урона?
Это будет нереальным везением, обычно у каждого предмета свой адрес, который лишь подставляется как указатель в ячейку активного оружия.Единственный вариант, который 100% сработает это реверсинг от здоровья врага, ищешь место где текущее значение хп врага отнимается от урона оружия и пишется новое здоровье врага, после смотришь откуда берется урон и скорее всего выйдешь на структуру со статами оружия.
Ещё можно попробовать во время чтения стат из файла, перехватывать их и менять на нужные, но это сложнее того, что я описал выше.
Если все же подумаешь об этом, то тебе надо будет найти строку по типу /*.zip, где zip будет расширением имени файла с которого будет читать информацию игра, дальше будет цикл по считыванию данных, выделение памяти под структуры и их заполнение(либо заполнение глобальных переменных)
Проще будет просто модифицировать файл со статами и использовать мод.
-
48 минут назад, nedix сказал:
если ты об этом, спасибо, буду изучать
нет, про
9 минут назад, srg91 сказал: -
8 часов назад, nedix сказал:
Как бы определенное нажатие клавиш в игре вызывает код, который отвечает за +1 к скилу. Мне нужно просто самому вызвать этот же код.
Есть же статья на форуме по реверсу чит-кодов в гта.
-
Только что, Devilq сказал:
Цена 10 к устроит?
?устроит, если цена будет раз в 10-15 выше.
-
1 час назад, bes сказал:
movss [rdi+00001C04],ebx
mov*
-
5 часов назад, Pigsy сказал:
а можно ли в этой игре как-то сделать телепорт?
Можно, достаточно поискать по форуму статьи по тому как писать телепорт.
-
В 03.09.2018 в 20:38, temtriss сказал:
Чисто теоретически для выявления причины БСоДа будет достаточно!
а малый дамп сохраняет состояние стека? я всю жизнь пользовался автоматическим, просто без стека будет, сложно понять как решить проблему.я затупил, это ведь обычный минидамп который генерируют игры.
-
Вы конечно молодцы, что помогаете, но почему бы вместо гадания не попросить дамп системы, при бдосах система их генерирует и можно посмотреть из-за чего был вылет.
-
Спойлер
template <int XORSTART, int BUFLEN, int XREFKILLER> class Xorstr { Xorstr(); public: char s[BUFLEN]; explicit Xorstr(const char * xs); ~Xorstr() { for (auto i = 0; i < BUFLEN; i++) { s[i] = 0; } } }; template <int XORSTART, int BUFLEN, int XREFKILLER> Xorstr<XORSTART, BUFLEN, XREFKILLER>::Xorstr(const char * xs) { auto xvalue = XORSTART; auto i = 0; for (; i < (BUFLEN -1) i++) { s[i] = xs[i - XREFKILLER] ^ xvalue; xvalue += 1; xvalue %= 256; } s[BUFLEN - 1] = 0; } #define XOR(a) a
-
Накой хрен я пишу статьи, если люди не могут воспользоваться поиском. Пожалуй, это была последняя капля.
- 1
- 1
-
-
8 часов назад, GlKorol сказал:
Что вы подразумеваете под нормальной структурой?
Тебе достаточно найти 1 класс, чтобы получить информацию об игроке.
Т.е выходишь на класс CBaseEntity/CBasePlayer, через здоровье, бронь, координаты и т.д, а после ищешь где в этой структуре находится имя игрока. Теперь достаточно найти список игроков и гарантированно, что у всех игроков в этом списке по найденному смещению будет располагаться имя игрока. Плюс на github есть исходники движка gold source, так что нахождение разных смещений будет очень простым. -
2 часа назад, GlKorol сказал:
Есть другие способы?
Найти нормальную структуру, а от неё выйти на массив со всеми адресами игроков. Так у тебя будут смещений статичные для всех игроков для определенной характеристики/информации по игроку.
-
8 часов назад, Alexey594 сказал:
Это был бы подарок каждому пользователю SC)
Какой-то жирный подарок, если писать с нуля.
Ещё один вариант нашел, простейший вариант(но такое нельзя делать на форуме согласно правилам), как можно контроллер обмануть т.е. вместо всех этих драйверов использовать HotFix патчащий проверки стимовского оверлея и запускать игры с использованием принудительной инициализации SteamAPI(для пиратских игр) и лицензионных, главное чтобы стим был просто включен. И в итоге, все сводится к использованию ISteamController.
-
В общем я думаю, можно без стима инициализировать интерфейс контроллера, к примеру через ISteamController интерфейс c использованием SteamAPI.
Думаю именно так и работает контроллер через стим. Я б сделал, но не на чем тестировать.
-
Запуск из подсистемы Linux в Windows?
Либо зайди на сайт стима на ресурс разработчиков и скачай SDK по работе с контроллером, ну и собери все что тебе нужно.
-
7 минут назад, seilormoon сказал:
Что с IDA делать то?!
дизассемблировать используя динамическую идентификацию типов данных.
-
2 минуты назад, srg91 сказал:
черт, я всегда думал, что v это vector
-
21 минуту назад, srg91 сказал:
Я не помню как на русском это слово правильно пишется, так что если что-то не так, то виноват гугл.?
- 1
-
9 минут назад, seilormoon сказал:
есть m_iPosition и есть m_vPosition, что это может значить? и как посмотреть какие там сохранённые значения, в этой программе!! я в ней не ориентируюсь!
просто приставка m_ есть и в других вальв игр, кто разбирается в этом, наверняка знает что оно обозначает!
m_ член
m_i член с типом int
m_h член с типом handle
m_v член с типом vector
m_f член с типом float
m_b член с типом bool
-
Но тут же все просто, надо только немного подумать.
Если переведешь 262148 в hex поймешь в чем дело, 262148 = 40004 т.е id глока(0x4) +0x40000
14 часов назад, barsuuk сказал:тоже самое абсолютно со всеми скинами и предметами ,вопрос, как быть?
Просто избавиться от 0x40000? Например сделав так, перед выводом id:
int mwi = _memory->read<int>(WE+Offsets::m_AttributeManager+Offsets::m_Item+Offsets::m_iItemDefinitionIndex); mwi &= 0xFFFF;
Это валв с новым обновлением так борются с читами изменяющими скины мне кажется, либо готовят что-то новое. Скинов у меня не много, так что покажу на чем было.
А, и скрипт, только не уверен, что он вообще тут нужен и так все понятно.
Спойлер{ Game : csgo.exe Version: Date : 2018-08-23 Author : Alexander This script does blah blah blah } [ENABLE] aobscanmodule(GetWeapon,client_panorama.dll,8B 8E E8 2E 00 00 5E) // should be unique alloc(newmem,$1000) alloc(hActiveWeapon,$4) alloc(dwWeaponEntity, $4) alloc(Weapon_ID, $4) alloc(Weapon_ID_addr, $4) alloc(Weapon_ID_real, $4) label(code) label(return) newmem: code: mov ecx,[esi+00002EE8] // hActiveWeapon mov [hActiveWeapon], ecx mov eax, "client_panorama.dll"+04C3915C // Entitiy List and ecx, FFF dec ecx imul ecx, 10 add eax, ecx mov eax, [eax] mov [dwWeaponEntity]. eax add eax, 2D70 // m_AttributeManager add eax, 40 // m_Item add eax, 1EA // m_iItemDefinitionIndex lea ecx, [eax] mov [Weapon_ID_addr], ecx mov eax, [eax] mov [Weapon_ID_real], eax and eax, FFFF mov [Weapon_ID], eax mov ecx, [hActiveWeapon] jmp return GetWeapon: jmp newmem nop return: registersymbol(GetWeapon) registersymbol(hActiveWeapon) registersymbol(Weapon_ID_addr) registersymbol(dwWeaponEntity) registersymbol(Weapon_ID) registersymbol(Weapon_ID_real) [DISABLE] GetWeapon: db 8B 8E E8 2E 00 00 unregistersymbol(GetWeapon) unregistersymbol(hActiveWeapon) unregistersymbol(Weapon_ID_addr) unregistersymbol(dwWeaponEntity) unregistersymbol(Weapon_ID) unregistersymbol(Weapon_ID_real) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "client_panorama.dll"+1D80C3 "client_panorama.dll"+1D80AB: 84 C0 - test al,al "client_panorama.dll"+1D80AD: 74 13 - je client_panorama.dll+1D80C2 "client_panorama.dll"+1D80AF: 8B 07 - mov eax,[edi] "client_panorama.dll"+1D80B1: 8B CF - mov ecx,edi "client_panorama.dll"+1D80B3: 8B 80 60 02 00 00 - mov eax,[eax+00000260] "client_panorama.dll"+1D80B9: FF D0 - call eax "client_panorama.dll"+1D80BB: 33 F6 - xor esi,esi "client_panorama.dll"+1D80BD: 84 C0 - test al,al "client_panorama.dll"+1D80BF: 0F 45 F7 - cmovne esi,edi "client_panorama.dll"+1D80C2: 5F - pop edi // ---------- INJECTING HERE ---------- "client_panorama.dll"+1D80C3: 8B 8E E8 2E 00 00 - mov ecx,[esi+00002EE8] // ---------- DONE INJECTING ---------- "client_panorama.dll"+1D80C9: 5E - pop esi "client_panorama.dll"+1D80CA: 83 F9 FF - cmp ecx,-01 "client_panorama.dll"+1D80CD: 74 16 - je client_panorama.dll+1D80E5 "client_panorama.dll"+1D80CF: 0F B7 C1 - movzx eax,cx "client_panorama.dll"+1D80D2: C1 E0 04 - shl eax,04 "client_panorama.dll"+1D80D5: 05 4C 91 D3 55 - add eax,client_panorama.dll+4C3914C "client_panorama.dll"+1D80DA: C1 E9 10 - shr ecx,10 "client_panorama.dll"+1D80DD: 39 48 04 - cmp [eax+04],ecx "client_panorama.dll"+1D80E0: 75 03 - jne client_panorama.dll+1D80E5 "client_panorama.dll"+1D80E2: 8B 00 - mov eax,[eax] }
- 1
-
Попробуй так выйти на структуру игрока/список игроков, потому что тот способ, что используешь ты он и не правильный, и не будет работать корректно(не будет стабильных смещений для указателей на игроков)
Вопрос по бесконечным патронам в Zombie Driver
in Вопросы по созданию читов в одиночных играх
Опубликовано
перевести 4 байта в float максимальных патрон и записать в текущее значение.