-
Постов
228 -
Зарегистрирован
-
Посещение
-
Победитель дней
25
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные JIeXA
-
-
Здравствуйте. Я на счёт идентификатор игрока, игра Hitman - Контракты. Взламываю патроны. Я всё сделал по статье, и у меня вот что получилось в окне "Анализ памяти"
http://s2.ipicture.r...25/3S7mTF2r.jpg
инструкция 00477CD0 - 89 8E 83000000 - mov [esi+00000083],ecx. Как правильно узнать угадать ID.
В анализаторе структур (при открытом отладчике СЕ) жмёш на адрессе пробел в показываемой памяти (в отладчике)
переходиш на свой адресс и тыкаеш на нём определить проскакивающие адресса и если всё сработает(а если нет идёш к следующему адрессу ) то ты всё сам увидеш(допустим есть ГГ его напарник и соперники если ГГ и напарник пренадлежит комманде с ID=1 а соперники имеют ID=0 то увидеш что то типа этого адресс1=1(наш ГГ) адресс2=1(его напарник) адресс3=0(бот) адресс4=0(бот) )
А дальше делаеш сравнение в скрипте типа
cmp [адресс+смещение],1
jne на оригинальный код если не совпадает
и будет тебе счастье
Дополню предыдущий пост, если не найти разницу в структурах между игроком и врагом, то можно сравнивать регистр, хранящий в момент выполнения инструкции адрес здоровья того, кому наносится урон, с указателем. Это менее надёжный вариант, но более простой в реализации.
мб..... регистры всегда смотрю в первую очередь а потом уже остальное
Например я хочу для игры Battlefield 2. У меня получилось так то сделать бессмертие для игрока, найдя многоуровневый указатель.
ковырял эту игру давно какая версия не помню но вроде 1.0
искал я искал ид игрока так и не нашёл
забил на ид нашёл указатель
но там как то странно с указателем один чисто на самого ГГ а другой на ГГ и на технику в которую ты залезеш
морозил адресс на 10 000 и гонял ботов до Канадской граници))))))))))
Если можешь идентификатор найти - делай через него, если нет - через указатель. Это дело вкуса и умений исключительно.
А всётаки я считаю что найти ID и юзать его самого лучше чем указатель т.к.
при использование ID актуален аобскан а при указателе врятли я думаю
-
Это скрипты СЕ 6.2
использовать так
отладчик->Ctrl+A
вставить туда скрипт
далее вкладка файл
и там уже будет кнопка добавления скрипта в таблицу
-
С разбегу
ещё толком не тестил ток на одной локации
НО
No Reload
[ENABLE]
alloc(newMem, 2048)
label(returnHere)
newMem:
push [ecx+0000075C]
pop [ecx+00000764]
mov esi,[ecx+00000764]
jmp returnHere
SpecOpsTheLine.GetStackOwnerClass+2E705F:
jmp newMem
nop
returnHere:
[DISABLE]
SpecOpsTheLine.GetStackOwnerClass+2E705F:
mov esi,[ecx+00000764]
dealloc(newMem)
Ammo
[ENABLE]
AOBSCAN(signatureAddress, 89 86 78 07 00 00 8B 06 8B 90 B8 03 00 00 57 6A 00 8B CE FF D2 8B C8 8B 86 78 07 00 00 )
alloc(newMem, 2048)
label(returnHere)
label(address1)
registersymbol(address1)
label(qwe)
newMem:
cmp eax,#100
jnl short qwe
mov eax,#100
qwe:
mov [esi+00000778],eax
jmp returnHere
signatureAddress: //00d3a04f = SpecOpsTheLine.PIBGetInterface+49A2F
address1:
jmp newMem
nop
returnHere:
[DISABLE]
address1:
mov [esi+00000778],eax
dealloc(newMem)
unregistersymbol(address1)
И жизни не знаю мож на другой локации вообще не запашет(все бессмертны будут)
[ENABLE]
alloc(newMem, 2048)
label(returnHere)
label(qwe)
label(ewq)
newMem:
cmp [edi+0020],0
jne short qwe
mov [ewq],(float)1000
mov [edi+0004],(float)1000
movss xmm0,[ewq]
qwe:
movss [edi],xmm0
fdiv dword ptr [esp+18]
jmp returnHere
ewq:
dd 0
SpecOpsTheLine.GetOutermost+C5196:
jmp newMem
nop
nop
nop
returnHere:
[DISABLE]
SpecOpsTheLine.GetOutermost+C5196:
movss [edi],xmm0
fdiv dword ptr [esp+18]
dealloc(newMem)
поправил скрипты
-
щас гляну что там да как версия у меня 1.0.6890.0
-
сделал бы кто плагин чтоб формировался АА скрипт с проверочными байтами
-
А что за кнопка Get signature
-
Во первых я бы для нопа не стал бы использовать внедрение в память(ибо на слабых тачках или кривой игре может начать тупить сама игра)
а по сути вопроса либо юзай модульную адрессацию либо проверочные байты
а по ID игрока меня убил на повал движок Unreal Engine 3
там только ковыряние стека спасает
-
Что то мне форум перестал нравиться на новичков наезжают ребят бедьте спокойней
глупые вопросы будут всегда нужно на них реагировать адекватно и соответствуище реагировать
-
Мой вариант
alloc(newmem,2048)
label(originalcode)
label(returnhere)
label(Flag)
newmem:
cmp [edi+08],65
jne short Flag
originalcode:
mov [edi+04],ebx
Flag:
push keng_trnme.exe+10C5
jmp returnhere
keng_trnme.exe+2181:
jmp newmem
nop
nop
nop
returnhere:
[DISABLE]
keng_trnme.exe+2181:
mov [edi+04],ebx
push keng_trnme.exe+10C5
dealloc(newmem)[ENABLE]
-
А зачем вам это всё!?
-
Я предлогаю автору заняться модернизацией СЕ тот же структурный паук не очень удобен
тем что можно сравнить ток 2 структуры(чем больше тем наглядней)
-
//JIeXA и отсеивание по формуле по-твоему для PC-игр не катит? Те же координаты (и не только) 4 байта целое можно искать формулой по типу "больше/меньше/изменилось/не изменилось/больше 0/не равно (меньше) 4294967295" и т.п. Можно лишние 1-байтовые значения отсеивать как "не равно 255" или же "не равно -1", двухбайтовые как "не равно 65535" и т.п.
Это всё мелочи которые не сомненно дают проге плусс но до тогоже СЕ ой как далеко
Взять тот же трейсер, анализатор структур и ещё мне очень нравится структурный паук который очень облегчает поиск индификатора или тот же авто поиск указателей который реализован гораздо разумней чем в мани
-
Первый мой комп
Спектрум кассетный(мафон крутил плёнку и шла загрузка проги)
Даже до сих пор помню комманду на загрузку прог, игр и тд.
Load""enter
-
:Половине пользователей даже возможностей ArtMoney хватает, без всяких там отладчиков.гр
Всю свою сознательную жизнь считал и буду считать что артмани заточена для взлома эмуляторных игр
А я говарю про взлом и ковырянии PC игр
Моё личное мнение что артмани для PC игр полный к...л
-
Посчупал прогу
Скажу честно и сразу в лоб
Мне понравился ток интерфейс и всё
Про функционал скажу ток что до CE и плюс олги
как до Пикина раком
Всё выше сказаное не в обиду просто что я думаю то и говарю
да и тутора я не увидел (тыкни носом если я слепенький не увидел его)
-
И какой в этом смысл? Сначала увеличиваем значение регистра, потом затираем другим.
А я думаю если инструкция на запись
то зачем заморачиваться
зонопал и усё
если конечноже не возникает ни каких нюансов
-
Легенда о Таргоне
Руссификация от "Нового диска"
Тип издания-Пиратка
Legend.exe
MD5: 557f1579050a52e156b155ef7cd3026d
Таблица +8
-
Я например сделал бессмертие для гГероя, нашёл инструкцию работающую с адресом, бессмертен только я, но при поподании в голову помирал, короче редко помирал. Может надо сделать броню с каской чтобы при поподании в голову не помирал или как.
В саурс можно в скрипте прописать жизней 9999 игра вылетать не будет точно
сам проверял
только единственый косяк на экране будет отображаться левое число
а если посмотреть на адресс то будет 9999
Посмотри споилер поста №3
-
Saints Row The Third v. 1.0.0.1 Ru
saintsrowthethird.exe
MD5: 5c3deb0de444eeff73240dd9823d90f6
WinXP SP3
INS Вкл. трейнер
Num1-Жизни
Num2-Без перезарядки
Num3-Боеприпасы
Num4-Дать 10000 денег
Num5-Меньше розыска
Num6-Перегрев(Танк)
Num7-Время в миссиях
Num8-Бесконечные жизни тачки
-
Реальная ферма качал с alawar.ru
Версия 1.0
Функции -
1) Заморозка таймера
2) Деньги
Игра очень легка во взломе подойдёт даже для новичка вкачестве подопытного кролика.
Время хранится секундами в Float
Деньги как обычно 4 байта
[ENABLE]
alloc(newmem,2048)
aobscan(address,8Bxxxxxxxxxx8Bxx39xxxxxxxxxx0Fxxxxxxxxxx8Dxxxxxxxxxxxx8DxxxxxxFx)
label(injectAddress)
registersymbol(injectAddress)
label(originalcode)
label(returnhere)
newmem:
cmp dword ptr [eax+000001D4],000186A0
jnl short originalcode
mov dword ptr [eax+000001D4],000186A0
originalcode:
mov edi,[eax+000001D4]
jmp returnhere
address: // "MyFarmLife.dll"+3247E = 0x1003247E
injectAddress:
jmp newmem
nop
returnhere:
[DISABLE]
injectAddress:
mov edi,[eax+000001D4]
unregistersymbol(injectAddress)
dealloc(newmem)
[ENABLE]
aobscan(address,D8xxxxxxD9xxxxxxD9xxxxxxD9xxxxD9xxD8xxDFxxDDxxF6xxxx75xxD9xxxxEx)
label(injectAddress)
registersymbol(injectAddress)
address: // "MyFarmLife.dll"+4BA86 = 0x1004BA86
injectAddress:
db 90 90 90 90
[DISABLE]
injectAddress:
db D8 64 24 34
unregistersymbol(injectAddress)
Трейнер и таблица в архиве
-
Wheelman.exe MD5: ae110e2deabd3ff3cc00eb781e9723d5
Копов нужно врубить до того как они появились
-
сначало компания за немцев а потом уже за русских. Вопрос остается открытым
-
нашёл жизни
ноль это 100% здоровья(float)
при бряке на доступ
PIBGetInterface+5FC - D9 00 - fld dword ptr [eax]
004AE616 - 75 0F - jne PIBGetInterface+607
004AE618 - 8B 44 24 08 - mov eax,[esp+08]
004AE61C - D9 00 - fld dword ptr [eax] <<
004AE61E - 8B 4C 24 04 - mov ecx,[esp+04]
004AE622 - D9 19 - fstp dword ptr [ecx]
EAX=16D012AC
EBX=02000001
ECX=06571780
EDX=16D012AC
ESI=011B9EA0
EDI=00000111
ESP=01BFF528
EBP=00000000
EIP=004AE61EПроблема в том что наверное ВСЕ значения обрабатываются этой инструкцией...
поиск указателя ни чего ни даёт
после перезапуска игры они не пашут
хотя возможно нужно структуру смотреть......
Помогите сделать хотябы бессмертие
-
Смотрел данную гаму
дальше второй миссии не стал играть ибо игра полный ка... (меня убило насмерть поведение камеры и челы как карандаши)
Но я не понимаю зачем заморочки с указателями
MD5: 7b245fa1a24494b17fdebd8dd9dbecbd
размер exe 2 370 048 байт
Жизни
[ENABLE]
alloc(newmem,2048)
aobscan(address,D9xxxxD9xxxxxxxxxx8Bxxxxxxxxxx39xxxx0Fxxxxxxxxxx39xxxxxxxxxx74)
label(injectAddress)
registersymbol(injectAddress)
label(originalcode)
label(returnhere)
newmem:
mov [ecx+2C],(float)1000
originalcode:
fld dword ptr [ecx+2C]
fstp dword ptr [ebp+00000120]
jmp returnhere
address: // "TCC.exe"+C5623 = 0x004C5623
injectAddress:
jmp newmem
nop
nop
nop
nop
returnhere:
[DISABLE]
injectAddress:
fld dword ptr [ecx+2C]
fstp dword ptr [ebp+00000120]
unregistersymbol(injectAddress)
dealloc(newmem)
Жизни напарника
[ENABLE]
alloc(newmem,2048)
aobscan(address,D9xxxxDExxDFxxF6xxxx0FxxxxxxxxxxD9xxxxD9xxxxDExxDFxxF6xxxx7AxxDx)
label(injectAddress)
registersymbol(injectAddress)
label(originalcode)
label(returnhere)
newmem:
mov [esi+28],(float)1000
originalcode:
fld dword ptr [esi+28]
fcompp
jmp returnhere
address: // "TCC.exe"+90044 = 0x00490044
injectAddress:
jmp newmem
returnhere:
[DISABLE]
injectAddress:
fld dword ptr [esi+28]
fcompp
unregistersymbol(injectAddress)
dealloc(newmem)
Очки навыков №1 реализовал так
[ENABLE]
aobscan(address,74xxxx89xxxxxxxxxxFFxxB0xxC2xxxxxxxxxxxxxx8Bxxxxxxxx8Bxxxxxx85)
label(injectAddress)
registersymbol(injectAddress)
address: // "TCC.exe"+B42EB = 0x004B42EB
injectAddress:
db EB 07
[DISABLE]
injectAddress:
db 74 07
unregistersymbol(injectAddress)
Очки навыков номер _2
[ENABLE]
aobscan(address,74xx03xx89xxxxxxxxxxxx01xxxxxxB0xxxxC2xxxxxxxxxxxxxxxxxx83)
label(injectAddress)
registersymbol(injectAddress)
address: // "TCC.exe"+B4334 = 0x004B4334
injectAddress:
db EB 08
[DISABLE]
injectAddress:
db 74 08
unregistersymbol(injectAddress)
А стрелы сделал так
[ENABLE]
alloc(newmem,2048)
aobscan(address,8Bxxxxxxxxxx3Bxxxxxxxxxx7Fxx83xxxx74xx8Bxxxxxxxxxx8Dxxxxxxxx8B)
label(injectAddress)
registersymbol(injectAddress)
label(originalcode)
label(returnhere)
newmem:
mov [ecx+000000E4],#99
originalcode:
mov eax,[ecx+000000E4]
jmp returnhere
address: // "TCC.exe"+D9643 = 0x004D9643
injectAddress:
jmp newmem
nop
returnhere:
[DISABLE]
injectAddress:
mov eax,[ecx+000000E4]
unregistersymbol(injectAddress)
dealloc(newmem)
Идентификатор Игрока
in Вопросы по созданию читов в одиночных играх
Опубликовано
Не чувак ты меня походу не понял я имел ввиду что после патча возможно ИД и его расположение в структуре останутся прежними а указатель 100500 процентов поменяется
ВОТ