-
Постов
4 023 -
Зарегистрирован
-
Победитель дней
42
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент Xipho
-
У меня как-то в игре PsiOps возникла проблема со статической инъекцией. На каком-то из уровней игра вдруг стала использовать место, куда я делал инжект, и игра вылетала с трейнером, разумеется. С тех пор предпочитаю выделять память для инъекции динамически. По крайней мере, гарантированно игра это место вдруг использовать не захочет )
-
Надо будет попробовать себя в этой проге, посмотрим, что скажет про меня )
-
Не без этого, конечно, зато характер и терпение закаляет )
-
Такие вещи взламывать - грех )
-
Поправил скрипт в своем предыдущем посте. Хотя в данном конкретном случае можно сделать еще проще mov rax,[rdx+18]mov rax,[rax+28]mov [rdx+8],raxПоскольку ты используешь инструкцию, которая записывает подготовленное число патронов в текущее значение (в памяти), то можно сразу в регистр считать нужное значение из внутренней стркутуры. Опять же, именно такой подход актуален только для пишушей инстркуции. Для читающей инструкции правильнее будет использовать скрипт подобный тому, что я выше привел.
-
приблизительно так: push rbx // сохраняем регистр на всякий случайmov rbx,[rdx+18] // считываем из основной структуры указатель на внутреннююmov rbx,[rbx+28] // считываем из внутренней стркутуры максимальное количество патроновmov [rdx+8],rbx // присваиваем текущему значению максимальноеpop rbx // восстанавливаем регистр
-
Когда-то давным-давно учился "слепому" методу печати на программе "Соло на клавиатуре". Не жалуюсь ) Правда, во время обучения хотелось иногда клаву разбить, ибо при ошибке нужно несколько секунд выждать, прежде чем дальше печатать, но зато и терпению научился, и в руках себя держать тоже )
-
Приблизительно так и планировал. Но нужно будет еще реализовать систему контроля версий, как на форуме, уж больно удобно.
-
Друзья, напоминаю вам, что мы занимаемся взломом игровых значений. А взлом игры на предмет бесплатного получения функционала, за который взимается плата, является незаконным и приравнивается к пункту 2.1 Главных правил нашего форума
-
#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;}
-
Еще раз. Функционал программы - это то, что программа делает для пользователя. Для того, чтобы быть в курсе функционала, необязательно лезть в исходный код. Например, тебе не нужны исходники, чтобы знать, что скайп предназначен для звонков и общения, Хром - для ползания по интернету, любая игра - для того, чтобы в нее играть. И если ты вообще не знаешь, что именно делает программа в отношении пользователя, если ты не знаешь, какие именно возможности она пользователю предоставляет - получив исходный код ты тем более не поймешь в нем ничего. Учитывая твои невысокие знания в "решетках" - тем более. И да, в декомпилированном коде никогда не будет "документирования" и комментариев, так как они отбрасываются на этапе компиляции, потому что они нужны программисту, а не процессору, который в конечном итоге будет исполнять скомпилированные инструкции.
-
Так а зачем тебе тогда вытаскивать исходный код, если ты даже не знаешь, что программа делает? Что-то ты темнишь, сударь.
-
Попробуй воспользоваться автогенератором из СЕ родным, а не АА мейкером. Если с ним сработает, им и пользуйся. А +04 потому, что Аобсканер берет на четыре байта раньше, чем нужно для внедрения, для метки АОБ. Потому, чтобы внедриться в нужное место, и делается отступ на эти 4 байта. Внимательно изучи байты инструкций перед инъекцией и после нее, и все поймешь.
-
Как сохранить - не знаю. Сделал опыт. Интересный случай попался. На днях обязательно запишу урок по автопрокачке ) При первом убийстве или каком-либо другом получении опыта не срабатывает, зато начинает работать при всех последующих )) [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)