krassdanek
-
Постов
27 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные krassdanek
-
-
Спасибо, Dison, но я на форуме не первый месяц и всё что можно посмотрел)) Просто с недавнего момента начал учится и пользоваться материалом с форума. Если кто и дает полезную информ. то в идеале хотелось бы, что бы эта инф. была с другого источника, а не с форума)) Но спасибо большое всё равно.
-
Это я знаю, я не знаю как это осуществить в скрипте и не ищу т.к пока мне это не нужно)
-
Согласен, когда ВООБЩЕ ничего не понимал - пытался assaultCube взломать на бессмертие... а там инструкция на всех игроков)) А что такое фильтр и т.п - даже представить не мог( да и сейчас так же..)
-
Так, в блокнотик и в голову ^^, благодарен!
-
у меня 64 бит) гляну, спасибо
-
В 11.06.2016в12:06, Garik66 сказал:
64 битных игрушках
а как определить какая игра? 64\32?
-
Спасибо, буду разбираться) Я наивный думал, что c# под учу и буду эти трейнеры выпуливать... а тут вообще не так)
-
В 11.06.2016в09:22, Garik66 сказал:
1. Бряк на запись более конкретный случай, находит инструкции, которые записывают в наш адрес.
2. Бряк на доступ более общий случай, находит все инструкции, которые работают с нашим адресом.
Вы так и не ответили). Если выходит множество инструкция при бряке - как мне определить с каким работать?
-
Можешь посоветовать литературу\справочник,где об это подробнее написано?
-
В 11.06.2016в10:50, Garik66 сказал:
krassdanek, ты не ответил сработал ли мой скрипт.
Да, скрипт рабочий =) Огромное спасибо!
-
NOP'ом не пользуюсь по возможности) А пока учусь на "легких" сингл играх - такая возможность есть всегда)
-
Ахах, спасибо,дошло...
-
В 11.06.2016в10:30, Garik66 сказал:
дело то не в dword ptr, (в данном случае его не обязательно писать, так как игрушка 32 разрядная и в адреса будет по умолчанию писать 4 байта), а в том где находится max кол-во патронов, а оно находится по смещению +14 в структуре.
Верно, я не тот адресс использовал, макс.кол-во = +14, текущее =+10,только вместо ecx у меня esi, скрипт,вроде, правильно записан.
-
Ошибку нашел, исправил, но вместо 150 макс. патрон у меня появляется 149
Скрытый текст{ Game : ZombieDriver.exe Version: Date : 2016-06-12 Author : ???? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(aMMO,ZombieDriver.exe,FF 4E 10 E8 39 E8 FF FF) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: push [esi+14] pop [esi+10] code: dec [esi+10] call ZombieDriver.exe+4C370 jmp return aMMO: jmp newmem nop nop nop return: registersymbol(aMMO) [DISABLE] //code from here till the end of the code will be used to disable the cheat aMMO: db FF 4E 10 E8 39 E8 FF FF unregistersymbol(aMMO) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "ZombieDriver.exe"+4DB2F "ZombieDriver.exe"+4DB14: 8B 49 08 - mov ecx,[ecx+08] "ZombieDriver.exe"+4DB17: 52 - push edx "ZombieDriver.exe"+4DB18: 57 - push edi "ZombieDriver.exe"+4DB19: 89 58 04 - mov [eax+04],ebx "ZombieDriver.exe"+4DB1C: 51 - push ecx "ZombieDriver.exe"+4DB1D: 89 48 08 - mov [eax+08],ecx "ZombieDriver.exe"+4DB20: E8 0B F9 01 00 - call ZombieDriver.exe+6D430 "ZombieDriver.exe"+4DB25: 83 C4 04 - add esp,04 "ZombieDriver.exe"+4DB28: 8B C8 - mov ecx,eax "ZombieDriver.exe"+4DB2A: E8 61 3B 02 00 - call ZombieDriver.exe+71690 // ---------- INJECTING HERE ---------- "ZombieDriver.exe"+4DB2F: FF 4E 10 - dec [esi+10] "ZombieDriver.exe"+4DB32: E8 39 E8 FF FF - call ZombieDriver.exe+4C370 // ---------- DONE INJECTING ---------- "ZombieDriver.exe"+4DB37: E8 94 BC 02 00 - call ZombieDriver.exe+797D0 "ZombieDriver.exe"+4DB3C: 8B 4C 24 78 - mov ecx,[esp+78] "ZombieDriver.exe"+4DB40: 64 89 0D 00 00 00 00 - mov fs:[00000000],ecx "ZombieDriver.exe"+4DB47: 59 - pop ecx "ZombieDriver.exe"+4DB48: 5F - pop edi "ZombieDriver.exe"+4DB49: 5E - pop esi "ZombieDriver.exe"+4DB4A: 5B - pop ebx "ZombieDriver.exe"+4DB4B: 8B E5 - mov esp,ebp "ZombieDriver.exe"+4DB4D: 5D - pop ebp "ZombieDriver.exe"+4DB4E: C2 10 00 - ret 0010 }
dword ptr - писал, потом чего то стёр... результат тот же
-
День добрый. мои попытки сделать скрипт на беск.патроны в zombiedriver обвенчались радостной грусть. Т.е скрипт работает,но не так,как надо. Должно быть макс.кол-во патронов,т.е 150, а у меня идет просто заморозка. В чем ошибка?
Скрытый текст{ Game : ZombieDriver.exe Version: Date : 2016-06-12 Author : ???? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(ammo,ZombieDriver.exe,CC 68 10 8D 4C 24 74) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: push dword ptr [eax+0004] // "вносим" наше макс.кол во патронов. pop dword ptr [eax+10] // убираем code: mov ebp,[eax+10] lea ecx,[esp+74] jmp return ammo: jmp newmem nop nop return: registersymbol(ammo) [DISABLE] //code from here till the end of the code will be used to disable the cheat ammo: db CC 68 10 8D 4C 24 74 unregistersymbol(ammo) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "ZombieDriver.exe"+98C55 "ZombieDriver.exe"+98C31: 50 - push eax "ZombieDriver.exe"+98C32: 8B 42 34 - mov eax,[edx+34] "ZombieDriver.exe"+98C35: 8B CF - mov ecx,edi "ZombieDriver.exe"+98C37: FF D0 - call eax "ZombieDriver.exe"+98C39: 89 AC 24 B8 00 00 00 - mov [esp+000000B8],ebp "ZombieDriver.exe"+98C40: 8D 4C 24 14 - lea ecx,[esp+14] "ZombieDriver.exe"+98C44: FF 15 E4 C1 41 00 - call dword ptr [ZombieDriver.exe+FC1E4] "ZombieDriver.exe"+98C4A: E8 F1 A2 FB FF - call ZombieDriver.exe+52F40 "ZombieDriver.exe"+98C4F: 8B 40 04 - mov eax,[eax+04] "ZombieDriver.exe"+98C52: 8B 40 24 - mov eax,[eax+24] // ---------- INJECTING HERE ---------- "ZombieDriver.exe"+98C55: 8B 68 10 - mov ebp,[eax+10] "ZombieDriver.exe"+98C58: 8D 4C 24 74 - lea ecx,[esp+74] // ---------- DONE INJECTING ---------- "ZombieDriver.exe"+98C5C: FF 15 CC C1 41 00 - call dword ptr [ZombieDriver.exe+FC1CC] "ZombieDriver.exe"+98C62: C7 84 24 B8 00 00 00 03 00 00 00 - mov [esp+000000B8],00000003 "ZombieDriver.exe"+98C6D: 83 FD 0A - cmp ebp,0A "ZombieDriver.exe"+98C70: 7D 07 - jnl ZombieDriver.exe+98C79 "ZombieDriver.exe"+98C72: 68 7C 42 42 00 - push ZombieDriver.exe+10427C "ZombieDriver.exe"+98C77: EB 0A - jmp ZombieDriver.exe+98C83 "ZombieDriver.exe"+98C79: 83 FD 64 - cmp ebp,64 "ZombieDriver.exe"+98C7C: 7D 0F - jnl ZombieDriver.exe+98C8D "ZombieDriver.exe"+98C7E: 68 80 42 42 00 - push ZombieDriver.exe+104280 "ZombieDriver.exe"+98C83: 8D 4C 24 78 - lea ecx,[esp+78] }
-
Вечер\утро\день доброе(ый). Вопрос таков: При бряке на доступ выскакивает много инструкций. На скриншоте их 3, но во многих других играх их гораздо больше. Как мне понять с какой работать?От сюда вытекаете еще 1 вопросик: Чем бряк на доступ отличается с бряком на запись?!
Скрытый текст -
Скрытый текст
{ Game : gta_sa.exe Version: Date : 2016-06-10 Author : ???? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(Helth,gta_sa.exe,00 00 8B 4E 10 D9 81 40 05 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: mov dword ptr [ecx+00000540],(float)150 code: fld dword ptr [ecx+00000540] jmp return Helth+05: jmp newmem nop return: registersymbol(Helth) [DISABLE] //code from here till the end of the code will be used to disable the cheat Helth+05: db D9 81 40 05 00 00 unregistersymbol(Helth) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+22637E "gta_sa.exe"+22635E: 84 C0 - test al,al "gta_sa.exe"+226360: 0F 84 6D 06 00 00 - je gta_sa.exe+2269D3 "gta_sa.exe"+226366: 8B 16 - mov edx,[esi] "gta_sa.exe"+226368: 55 - push ebp "gta_sa.exe"+226369: 8B CE - mov ecx,esi "gta_sa.exe"+22636B: FF 52 24 - call dword ptr [edx+24] "gta_sa.exe"+22636E: E9 F3 06 00 00 - jmp gta_sa.exe+226A66 "gta_sa.exe"+226373: A8 08 - test al,08 "gta_sa.exe"+226375: 0F 85 52 01 00 00 - jne gta_sa.exe+2264CD "gta_sa.exe"+22637B: 8B 4E 10 - mov ecx,[esi+10] // ---------- INJECTING HERE ---------- "gta_sa.exe"+22637E: D9 81 40 05 00 00 - fld dword ptr [ecx+00000540] // ---------- DONE INJECTING ---------- "gta_sa.exe"+226384: D8 1D 50 8B 85 00 - fcomp dword ptr [gta_sa.exe+458B50] "gta_sa.exe"+22638A: DF E0 - fnstsw ax "gta_sa.exe"+22638C: F6 C4 41 - test ah,41 "gta_sa.exe"+22638F: 0F 8A A6 00 00 00 - jp gta_sa.exe+22643B "gta_sa.exe"+226395: 8B 4E 08 - mov ecx,[esi+08] "gta_sa.exe"+226398: 8B 01 - mov eax,[ecx] "gta_sa.exe"+22639A: 6A 00 - push 00 "gta_sa.exe"+22639C: 6A 01 - push 01 "gta_sa.exe"+22639E: 55 - push ebp "gta_sa.exe"+22639F: FF 50 18 - call dword ptr [eax+18] }
тест,если что, удалю.
-
В 10.06.2016в14:14, Garik66 сказал:
Вот ещё видео заснял - посмотри.
Спасибо за видео). Вопросик по теме: я хочу сделать бессмертие в GTA:SA . Ссылаюсь на способ: но есть одно НО( Сталкивался уже,не знаю,как решить). В структуре адресс текущегоздоровья лежит по смещению(или как его там...) 00 [скриншот прилагается], а макс. здоровье : 00004. Как мне осуществить это в скрипте?!
Скрытый текст -
В 10.06.2016в16:15, Garik66 сказал:
Вопрос не понял.
Давай прокомментирую часть скрипта, который ты выложил:
code: add [gta_sa.exe+77CE50],edx // Оригинальная инструкция игры, прибавляет к деньгам значение в регистре edx (значение скорее всего может быть как положительным - например при продаже чего-нибудь, так и отрицательным, например при покупке чего-нибудь). В данном случае она не нужна, так как следующая инструкция перезаписывает значение денюжков. mov [gta_sa.exe+77CE50],#99999999 // Твоя инструкция инъекции - перезаписывает значение денюжков в адресе. jmp return // Возврат в код игры из нашей инъекции.
Читаем внимательно FAQ. NullAlex. всё давно уже прописал для новичков.
В твоём случае нужно прочитать [Инструкция] Как использовать специальный тег "code" и [Инструкция] Как использовать тег спойлера
Тогда если mov [gta_sa.exe+77CE50],#99999999 - перезаписывает наше значение,зачем нам писать :
newmem: add [gta_sa.exe+77CE50],#999999999
-
Спасибо, скрипт действительно работает. Хотелось бы по подробнее узнать,за что отвечает:[ я не умею заносить под " Показать содержимое"]
Цитатаcode:
add [gta_sa.exe+77CE50],edx
mov [gta_sa.exe+77CE50],#99999999
jmp return -
Начал потихоньку осваиваться в "обмане игр". Как правило мысли обгоняют слова, поэтому могу написать бред.
Вообщем написал я на GTA:SA 2 скрипта. 1) Поднимая деньги с трупа получаем +10 000$ 2) получаем "бессмертие".
Хотелось бы просить, как можно "модернезировать" эти скрипты,например, активируя скрипт получаем 20 000 и они не тратятся(смешное слово). Писать для кажого действия скрипт(прибавились\отнялись деньги),наверное,это глупо. Идем дальше, о бессмертии - т.е я просто каждый раз перезаписываю макс.кол-во жизней(смотрел в структуре) и скачет полоска и как по мне,это " По детски"[ На каком собственно я и уровне..]. скрипты ниже, есть еще вопросы,но всё постепенно, как "Доделаю" эти 2) и сформулирую след.вопросы...
Скрытый текст{ Game : gta_sa.exe Version: Date : 2016-06-10 Author : ???? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(INJECT,gta_sa.exe,01 15 50 CE B7 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: add [gta_sa.exe+77CE50],#10000 code: add [gta_sa.exe+77CE50],edx jmp return INJECT: jmp newmem // crash nop return: registersymbol(INJECT) [DISABLE] //code from here till the end of the code will be used to disable the cheat INJECT: db 01 15 50 CE B7 00 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+5805B "gta_sa.exe"+58035: 6A 00 - push 00 "gta_sa.exe"+58037: 6A 06 - push 06 "gta_sa.exe"+58039: B9 90 BC B6 00 - mov ecx,gta_sa.exe+76BC90 "gta_sa.exe"+5803E: E8 5D EE 0A 00 - call gta_sa.exe+106EA0 "gta_sa.exe"+58043: 8B CB - mov ecx,ebx "gta_sa.exe"+58045: C6 44 24 13 01 - mov byte ptr [esp+13],01 "gta_sa.exe"+5804A: E8 71 D6 FF FF - call gta_sa.exe+556C0 "gta_sa.exe"+5804F: E9 A9 06 00 00 - jmp gta_sa.exe+586FD "gta_sa.exe"+58054: 8B 4C 24 14 - mov ecx,[esp+14] "gta_sa.exe"+58058: 8B 51 08 - mov edx,[ecx+08] // ---------- INJECTING HERE ---------- "gta_sa.exe"+5805B: 01 15 50 CE B7 00 - add [gta_sa.exe+77CE50],edx // ---------- DONE INJECTING ---------- "gta_sa.exe"+58061: C6 44 24 13 01 - mov byte ptr [esp+13],01 "gta_sa.exe"+58066: E8 55 D6 FF FF - call gta_sa.exe+556C0 "gta_sa.exe"+5806B: 68 00 00 80 3F - push 3F800000 "gta_sa.exe"+58070: 6A 00 - push 00 "gta_sa.exe"+58072: 6A 07 - push 07 "gta_sa.exe"+58074: B9 90 BC B6 00 - mov ecx,gta_sa.exe+76BC90 "gta_sa.exe"+58079: E8 22 EE 0A 00 - call gta_sa.exe+106EA0 "gta_sa.exe"+5807E: 8B 4C 24 64 - mov ecx,[esp+64] "gta_sa.exe"+58082: 6A 00 - push 00 "gta_sa.exe"+58084: 6A 00 - push 00 }
Скрытый текстGame : gta_sa.exe Version: Date : 2016-06-10 Author : ???? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(INJECT,gta_sa.exe,00 00 8B 4E 10 D9 81 40 05 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: mov dword ptr [ecx+00000540],(float)150 code: fld dword ptr [ecx+00000540] jmp return INJECT+05: jmp newmem nop return: registersymbol(INJECT) [DISABLE] //code from here till the end of the code will be used to disable the cheat INJECT+05: db D9 81 40 05 00 00 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+22637E "gta_sa.exe"+22635E: 84 C0 - test al,al "gta_sa.exe"+226360: 0F 84 6D 06 00 00 - je gta_sa.exe+2269D3 "gta_sa.exe"+226366: 8B 16 - mov edx,[esi] "gta_sa.exe"+226368: 55 - push ebp "gta_sa.exe"+226369: 8B CE - mov ecx,esi "gta_sa.exe"+22636B: FF 52 24 - call dword ptr [edx+24] "gta_sa.exe"+22636E: E9 F3 06 00 00 - jmp gta_sa.exe+226A66 "gta_sa.exe"+226373: A8 08 - test al,08 "gta_sa.exe"+226375: 0F 85 52 01 00 00 - jne gta_sa.exe+2264CD "gta_sa.exe"+22637B: 8B 4E 10 - mov ecx,[esi+10] // ---------- INJECTING HERE ---------- "gta_sa.exe"+22637E: D9 81 40 05 00 00 - fld dword ptr [ecx+00000540] // ---------- DONE INJECTING ---------- "gta_sa.exe"+226384: D8 1D 50 8B 85 00 - fcomp dword ptr [gta_sa.exe+458B50] "gta_sa.exe"+22638A: DF E0 - fnstsw ax "gta_sa.exe"+22638C: F6 C4 41 - test ah,41 "gta_sa.exe"+22638F: 0F 8A A6 00 00 00 - jp gta_sa.exe+22643B "gta_sa.exe"+226395: 8B 4E 08 - mov ecx,[esi+08] "gta_sa.exe"+226398: 8B 01 - mov eax,[ecx] "gta_sa.exe"+22639A: 6A 00 - push 00 "gta_sa.exe"+22639C: 6A 01 - push 01 "gta_sa.exe"+22639E: 55 - push ebp "gta_sa.exe"+22639F: FF 50 18 - call dword ptr [eax+18] }
-
Добрый день, участникам этого форума)
Вообщем с сегодняшнего для у меня стоит цель - постепенно обучаться взлом игр. Начиная с CheatEngine, заканчивая трейнером на c#. Естественно дальше CE мне суваться смысла нет, поэтому прошу вас - опытных обывателей помочь найти: Документации, уроки и т.п . На данный момент мой уровень знаний: Найти неизвестное значение ( float, неизвестное и т.п) посмотреть структурку адреса, нажать удивительную кнопочку "Заменить NOOP". Очень интересует написание скриптов. Хотелось бы начать именно с этого.
Естественно смотрел уроки: https://www.youtube.com/channel/UCsqglIFHyRDCeY6f5u-1TZw [ Огромное спасибо].
-
14 часа назад, keng сказал:
Привет! Какой у тебя сейчас уровень понимания всего этого? Что именно узнать хочется? Тут, на самом деле, игра не принципиальна, это не от нее зависит.
Знание как искать неизвестное, НЕ ОЧЕНЬ понимание регистров, к примеру MOV, да да, знаю что он отнимает, но в то же время что значит "переместить правый аргумент в левый" и чем он отличается от
SUB
2LIRW:
Ну почему же, я прекрасно понимаю что ты мне объясняешь) меня интересуют регистры и сам процесс написание скрипта, допустим почему после №mov dword ptr [eax+14]" идет"(float)100, я вроде как понимаю, что это изменяет всё время значение здоровья, когда нас бьют, но как и почемцу это пишется - нет. И почему mov dword ptr [eax+14], точнее mod[eax+14] это понятно, это то, что вылезет когда ставим бряк, но вот эта часть:"dword ptr" что она означает? и это же 4 байта размер, почему в конце кода идет (float) [ Возможно у кого то будет РукаЛицо,но всё же..]
-
На канал GameHackLab подписан уже ОЧЕЕЕНЬ давно)
AssaultCube. Скрипт и структура игрока.
in Вопросы по созданию читов в одиночных играх
Опубликовано
Доброго времени суток, вопрос таков: сначала я долго мучился со структурой искав значения игрока\ботов. Сегодня наконец то получилось, решил написать скрипт,но он не работает, почему? [ скриншот прилагается] , значение в структуре(которое я выбрал) верное, при перезагрузках не меняется. Ошибка в скрипте.