-
Постов
279 -
Зарегистрирован
-
Посещение
-
Победитель дней
13
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Vlad2
-
-
В 01.10.2016в14:09, AntonVit сказал:
//1 первая инструкция - затирание 16 байт (для подстраховки) mov ["PLACE_ACU_clone"+55D741F],E9F90232 mov ["PLACE_ACU_clone"+55D7423],0000069C mov ["PLACE_ACU_clone"+55D7427],FF5926E9 mov ["PLACE_ACU_clone"+55D742b],108966FF
Может еще для большей простоты можно сделать так:
"PLACE_ACU_clone"+55D741F: db 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF // Сюда вставлять байты оригинальной инструкции
- 1
-
43 минуты назад, AntonVit сказал:
1 Какая версия игры у тебя, 1.1.4.0 ?
2 Какой используешь отладчик, у меня игра сразу падает. На Veh - ничего не находит. На window - падает.
1. Да; 2. СЕ, Режим ядра
-
1 час назад, Garik66 сказал:
ЗЫ: первая ошибка в Вашем скрипте, которая кинулась в глаза, нет выравнивания, т.е.:
Писал же, что код подправил. Хорошо, если я ошибся и не вижу ошибку, а то прям уже не знаю что делать.
Если кому то интересно, то могу логин,пароль в ЛС кинуть, чтоб сами попробовали покопаться.
[ENABLE] alloc(newmem, 2048, "TheCrew.exe"+6258F9) alloc(memory, 75112599) aobscan(search, 32 02 38 F8 F5 E9 E3 CE 07 00 48 83 ED 0C) registersymbol(search) registersymbol(memory) label(SkipCopy) label(returnhere) label(originalcode) newmem: cmp [memory],0 jne SkipCopy push rcx lea rsi,[TheCrew.exe+1000] lea rdi,[memory] mov rcx,47A2097 repe movsb mov rcx,search sub rcx,TheCrew.exe+1000 lea rdi,[memory] mov [rcx+rdi],f8380232 mov byte ptr [rcx+rdi+1],f5 pop rcx SkipCopy: cmp rdx,TheCrew.exe+1000 jb originalcode cmp rdx,TheCrew.exe+47A3090 ja originalcode sub rdx,TheCrew.exe+1000 add rdx,memory originalcode: xor al,[rdx] cmp al,bh cmc jmp returnhere memory: db 0 search: jmp newmem returnhere: [DISABLE] search: xor al,[rdx] cmp al,bh cmc dealloc(newmem) dealloc(memory) unregistersymbol(memory) unregistersymbol(search)
-
В общем ничего не получилось сделать. Нашел 12 инструкций, которые сканируют код игры. Также для них написал скрипты, которые бы передавали оригинальные участки кода игры, но толку нет. Игра вылетает при любом внедрении скриптов
-
-
Скрипт уже поправил и тщательно все проверил, по идеи должно работать, но он не активируется.
Методом тыка понял, что он не активируется, из за этой инструкции:
lea rsi,[TheCrew.exe+1000]
потому что TheCrew.exe имеет адрес 7FF000000000, и эта инструкция его не принимает
-
Всем привет.
Столкнулся с проблемой защиты кода в игре, из за чего при внедрении скриптов игра вылетает.
Посмотрел видео Как я взламывал Crysis 3. Часть 2. где Xipho рассказывает, как он обошел проверку целостности кода. Решил повторить подобную ему процедуру. Поставил брекпоинт на инструкцию игры и выпала следующая инструкция, которая читает каждый байт кода игры.
Скрытый текстСкрытый текстTheCrew.exe+9EC6A - cmp bl,bl TheCrew.exe+9EC6C - and al,dl TheCrew.exe+9EC6E - jmp TheCrew.exe+6A15FB TheCrew.exe+9EC73 - or eax,ecx TheCrew.exe+9EC75 - test al,6E TheCrew.exe+9EC77 - bt ebx,ecx >>> TheCrew.exe+9EC7A - xor al,[rdx] TheCrew.exe+9EC7C - cmc TheCrew.exe+9EC7D - add rdx,01 TheCrew.exe+9EC81 - jmp TheCrew.exe+6AF8B0 TheCrew.exe+9EC86 - jmp TheCrew.exe+3673B7 TheCrew.exe+9EC8B - jmp TheCrew.exe+E5B3B TheCrew.exe+9EC90 - cmc TheCrew.exe+9EC91 - xadd al,cl TheCrew.exe+9EC94 - ror al,1 TheCrew.exe+9EC96 - setno cl TheCrew.exe+9EC99 - mov al,[rbp+00] TheCrew.exe+9EC9C - adc cl,dh TheCrew.exe+9EC9E - mov cl,ah TheCrew.exe+9ECA0 - mov cl,[rbp+02]
Дальше написал скрипт идентичный скрипту из видео, но немного растерялся т.к. у меня игра 64 битная, а я еще с такими еще не много опыта имею.
Скрытый текст[ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(IntegrityFakeCheck,256) alloc(MemoryCopy, 75112592) // Размер ехе aobscan(IntegrityAddr, 32 02 F5 48 83 C2 01 E9 2A 0C 61 00) registersymbol(IntegrityAddr) label(ReturnToOriginalCode) label(SkipCopy) label(NotInCopy) label(IntegrityCheckData) IntegrityFakeCheck: cmp [MemoryCopy],0 jne SkipCopy push rcx lea rsi,[TheCrew.exe+1000] lea rdi,[MemoryCopy] mov rcx,47A2090 //Размер ехе в hex`е repe movsb mov rcx,IntegrityAddr sub rcx,TheCrew.exe+1000 lea rdi,[MemoryCopy] mov [rdi+rcx],48f50232 mov bype ptr [rdi+rcx+4],83 pop rcx SkipCopy: cmp rcx,TheCrew.exe+1000 jb NotInCopy cmp rcx,TheCrew.exe+47A3090 ja NotInCopy sub rcx,TheCrew.exe+1000 add rcx,MemoryCopy mov [rdx],rcx NotInCopy: xor al,[rdx] cmc add rdx,01 jmp ReturnToOriginalCode+2 // +2 для того, чтобы попасть на следующую оригинальную инструкцию MemoryCopy: db 0 IntegrityAddr: jmp IntegrityFakeCheck ReturnToOriginalCode: [DISABLE] //code from here till the end of the code will be used to disable the cheat IntegrityAddr: xor al,[rdx] cmc add rdx,01 dealloc(IntegrityFakeCheck) dealloc(MemoryCopy) unregistersymbol(IntegrityAddr)
Даже не сомневаюсь, что я что-то сделал не так, и после массы неудачных попыток так и не получилось сделать, чтоб скрипт работал.
Скрипт просто не активируется.
Подскажите, где я допустил ошибку
-
Думаю, что так:
CELabel1.Caption = CEListbox1.Items(readInteger('адрес'))
-
Пишу с телефона, поэтому могут быть ошибки
CETrainer.CELabel.Caption = readInteger('адрес') -- Это если целочисленный тип, можешь написать Float
Ну и соответственно делаешь таймер и все
-
[ENABLE]
Trein_Me_dy_Killer.Form1::button1_Click+17:
db 74
[DISABLE]
Trein_Me_dy_Killer.Form1::button1_Click+17:
db EB
-
Здравствуйте,хочу сделать движение текста в право, и чтобы он опять с начяла ишол,в общем как у LIRW-a,на днях сделал что-то такое, но он двигался вправо влево и очень-очень быстро,подскажите кто знает, может и LIRW поможет?
f=createForm(true)l=createLabel(f)t=createTimer(f)form_show(f)f.position=4l.caption='hello't.interval=1t.setOnTimer(Timer)t.enabled=truefunction Timer() if (l.left > f.width) then l.left = l.width*(-1) end l.left=l.left+1end
- 2
-
-
* - поля, которые нужно закрыть.
# - поля, которые нельзя трогать.
- 1
-
-
Чтоб написать скрипт самостоятельно нужно знать язык на котором пишется скрипт блин! А трейнеры в CE пишутся на LUA! Кстате я английский не на столько хорошо знаю чтоб читать такое:
Когда-то я тоже занимался написанием трейнеров в СЕ, и я прекрасно знаю, о чем я говорю. Для начала тебе нужно почитать об ассемблерных командах и хотя-бы попытаться понять, как это вообще работает. Дальше уже отлаживать игру и изменять ее код, делать AA скрипы СЕ. На этих скриптах и строить свои трейнеры. LUA я начал заниматься, когда ассемблера мне не хватало, и нужно было писать более сложные алгоритмы, тогда я уже имел базовый багаж знаний для написания трейнеров. Так что не забегай так сразу далеко.
И всегда есть переводчик, так что переводи, вот и все.
-
-
-
-
Ничего не понял ты как я погляжу... Ок объясню: там где процесс для трейнера выберается можно и руками ввести процесс это 1, 2 для игр в браузере процесс ищется с помощью combobox а для него нафиг не нужен работающий браузер. Достаточно иметь нужный и работающий скрипт!
Спасибо конечно за то, что пытаешься чтото объяснить, но это снова не тот ответ, которого я ожидал.
-
Ты не понял вопроса. Я говорю, что нельзя написать скрипт не подключившись к процессу браузера, а этого процесса, как ты говоришь, у тебя в СЕ нет - Это первое.Там процесс выберается кнопкой, по другому для браузерной игры чит не сделать. Это тебе так, чтоб знал
Второе: Да я вроде знаю, что можно перебрать название открытых окон, и выбрать из них окно, в названии которого упоминается название игры, и дальше подключиться к процессу этого окна. В общем, имея желание, можно сделать автоопределение браузера, в котором запущена игра
-
-
не хватило мужества дочитать, половина поста - сплошной шлак -
Перезалил файл, теперь этой ошибки быть не должно, попробуйзапуск на вин10.....
-
Win10 не запускается
Смеетесь чтоле?)) Может это из за отсутствия иконки на ехе`шнике, сейчас скомпилирую еще раз)
Обход защиты целостности кода
in Вопросы по взлому MMO игр
Опубликовано
У меня получилось найти только 22 проверки из 28, остальные 6 никаким образом не находятся, если даже бряки держать по 10 минут. При внедрении скриптов на все эти 22 инструкции, игра все равно вылетает. Вылет происходит во время копирования ехе файла, соответственно дело до затирания прыжков оригинальными байтами не доходит. Следовательно предполагаю, что какая-то из неизвестных 6 проверок обнаруживает изменение в коде и вызывает краш.
Но как найти эти остальные 6 проверок? Ведь если игра вылетает сразу, то можно предположить, что эти проверки выполняются ежесекундно, но почему то бряки на них не срабатывают .