WenSiL Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 Всем привет! Уважаемые господа-хацкеры, натолкните на путь истинный: не получается взломать ресурсы в act of aggression. Сразу скажу, что я новичок и в гейм хакинге буквально 2 дня, учусь по урокам Xipho. Нормально научился взламывать простые игры и решил взяться за более большие и сложные, решил попробовать AoA. Начал, естественно, с денег. Начал искать и отсеивать значения, нашел 9 штук. Опытным путем нашел 2 значения(кстати не понимаю зачем 2), которые отвечают за вывод на экран. Кроме как экранных значений ничего не нашел и сделал вывод, что реальное значение шифруется. Поставил брейк поит на один из адресов и нашел 2 инструкции. Полез в дизассемблированый код и пытался найти какие то подозрительные коллы или еще что то, но ничего не нашел, xor'ов тоже не нашел на этом и застрял... Подскажите, может я где-то что-то пропустил? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 (изменено) Раз нашел экранные это уже хорошо, возможно они зашифрованные, помню видел видео по взлому ресурсов в героях меча и магии. Может быть твой случай. Раз вызовов много, то можешь внутри покопаться. Изменено 8 января, 2016 пользователем partoftheworlD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
WenSiL Опубликовано 8 января, 2016 Автор Поделиться Опубликовано 8 января, 2016 Раз нашел экранные это уже хорошо, возможно они зашифрованные, помню видел видео по взлому ресурсов в героях меча и магии. Может быть твой случай. Раз вызовов много, то можешь внутри покопаться. Я именно на этот урок и опирался, когда в коде копался, но что-то не получается. Не нахожу ничего подозрительного. Никаких коллов, xor'ов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 Я именно на этот урок и опирался, когда в коде копался, но что-то не получается. Не нахожу ничего подозрительного. Никаких коллов, xor'ов. Я закачаю игру и попробую тебе помочь если получится. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 А в обще с чего было взято, что они шифрованные ??? Есть такая игра простенькая как солдатики - так там деньги кодированные просто. Не которые просто вот как поступают, ввели то что отображено на экране в СЕ, отсеяли пару раз и если с найденными значениями не чего не произошло при редактировании, то они почему то становится для них шифрованными. А то что есть с давних времен и кодированное значение, они не знают. Dison гляди и поможет как скачает. Я вчера эту тему ещо видел, хотел уже как бы помочь, но в то же время и занят был,а после как увидел, что игра 10 гигабайт - что то желание пропало её качать А в обще, как бы сказать - игра сложная в том что на ней решил по тренеровать навыки. Не которые до сех пор не могут отделить, противника от своего персонажа. И Fling и там ещо не которые умельцы трейнеров - так и не сделали, что бы то или иное, работало только для себя и не переходило это к компьютерному боту. Можно конечно списать на то что не тестировали особо,но у того же Flinga они идут уже как пятые по счету трейнера с подобной проблемой и он не мог не заметить, данную проблему. Кстати там xor стоит,но это можно обойти и деньги просто ввести в hex и всё. Короче что то намудрил. Часа полтора только искал данное значение и подбирал число в нем минут 20 Не как не пойму там - как человечки работают при строительстве. Вернее понял, что значение там прибавляется и достигнув 1 оно перескакивает на начало. Но то ли это визуальное, то ли не так сделал. Но значение их не поксореное. Ну по крайней мере я так думаю - это всего лишь моё предположение. Так как человечки там работают пока не понял. Что то нет желание более в ней ковыряться. Фар край 2 задумал сегодня глядеть и время уже 11 почти. Нашел только визуальное значение,но оно не на что не влияет. Может Dison там что намудрит Но игра не по легкая и сидеть в ней надо не мало, адреса в ней скорее всего как и в стратегий которая не так уж и давно взламывали - меняются. Выделяется наверное один адрес на каждого персонажа и на другого уже идет другой адрес. А адресов там около 2_ух тысяч предугадать это сложно. И компьютер наверное что то строит из человечков. Деньги то как пошли - так и идут и не куда они не денутся. А вот человечки, совсем другое дело. Но опять же - это только предположение. Может там и легко всё делается,но я легкого там не чего не заметил, ещо и far cry 2 подгоняет - её тоже хочу посмотреть успеть сегодня. Не хорошую в общем игру автор темы выбрал для начала. Ему вон дюну какую не будь или ред алерт 3 - что то в этом духе. [ENABLE]aobscanmodule(Money,ActOfAggression.exe,8B 4C * * 8B 40 * 83 F8)alloc(newmem,$1000)label(code)label(return)newmem: mov [eax+ecx*4+10],DEBB8015code: mov ecx,[eax+ecx*4+10] mov eax,[eax+0C] jmp returnMoney: jmp newmem nop nopreturn:registersymbol(Money)[DISABLE]Money: db 8B 4C 88 10 8B 40 0Cunregistersymbol(Money)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: "ActOfAggression.exe"+799971"ActOfAggression.exe"+799951: 5E - pop esi"ActOfAggression.exe"+799952: 64 89 0D 00 00 00 00 - mov fs:[00000000],ecx"ActOfAggression.exe"+799959: 83 C4 34 - add esp,34"ActOfAggression.exe"+79995C: C2 10 00 - ret 0010"ActOfAggression.exe"+79995F: CC - int 3 "ActOfAggression.exe"+799960: FF 74 24 04 - push [esp+04]"ActOfAggression.exe"+799964: E8 07 FD FF FF - call ActOfAggression.exe+799670"ActOfAggression.exe"+799969: 8B 50 08 - mov edx,[eax+08]"ActOfAggression.exe"+79996C: 8B CA - mov ecx,edx"ActOfAggression.exe"+79996E: 83 E1 07 - and ecx,07// ---------- INJECTING HERE ----------"ActOfAggression.exe"+799971: 8B 4C 88 10 - mov ecx,[eax+ecx*4+10]"ActOfAggression.exe"+799975: 8B 40 0C - mov eax,[eax+0C]// ---------- DONE INJECTING ----------"ActOfAggression.exe"+799978: 83 F8 03 - cmp eax,03"ActOfAggression.exe"+79997B: 77 0A - ja ActOfAggression.exe+799987"ActOfAggression.exe"+79997D: FF 24 85 A8 99 B9 00 - jmp dword ptr [eax*4+ActOfAggression.exe+7999A8]"ActOfAggression.exe"+799984: C1 C1 10 - rol ecx,10"ActOfAggression.exe"+799987: 8B C1 - mov eax,ecx"ActOfAggression.exe"+799989: C2 04 00 - ret 0004"ActOfAggression.exe"+79998C: 2B CA - sub ecx,edx"ActOfAggression.exe"+79998E: 8B C1 - mov eax,ecx"ActOfAggression.exe"+799990: C2 04 00 - ret 0004"ActOfAggression.exe"+799993: 81 F1 BE BA AD DE - xor ecx,DEADBABE} 4 Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 Как всегда только стоит взяться Lirw опережает респект. Тогда надеюсь он поможет тебе во всем. Игру удаляю. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 Как всегда только стоит взяться Lirw опережаетДа мне только охота было посмотреть, что там за шифрованное значение и всё. А ковыряться в неё - нет особого желания. Я не любитель таких игр и мало знаю о том как они работают. В принципе разница то в них не велика,но опять же не люблю данный жанр игр. Единственное что мне нравится из подобных игр, так это "Rise of Nations Extended Edition" Ранее она по другому называлась, а сейчас вот так. А ну и ещо игра там где говорят (надо больше золота) забыл как она называется И Dison не как всегда. Я не хотел тебе мешать,а думал ты ему сделаешь видео урок какой то или что то в этом духе. Я просто показал скрипт, что можно сделать и без, там каких расшифровок и тому подобного - нужно просто найти адрес правильный и всего лишь. Адрес естественно какой то странный, он как бы сказать - два в одном. В него как бы дописывается в начало что то и не меняется, а меняется только конец адреса. Зачем это сделано, понятия не имею,но тут не сложно предугадать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 января, 2016 Поделиться Опубликовано 9 января, 2016 А в обще с чего было взято, что они шифрованные ???Жень, ты же сам ответил на вопрос -> у тебя, под сполером "Код функции", ответ и можно прямо из той инструкции написать скрипт с добавлением (нужен флаг, так как инструкция скорее всего очень часто работает) или с постоянным кол-вом (это проще) денег.Например (у меня игры нет, так что сделаю на коленке, скорее всего сработает):ЗЫ: может нужно будет аобскан повыше на инструкцию взять, а может и так сработает.[ENABLE]aobscanmodule(Money,ActOfAggression.exe,35 BE BA AD DE 89 44 91 10)alloc(newmem,$1000)label(return)registersymbol(Money)newmem: mov eax,#1000000 xor eax,DEADBABE // "смерть тебе дитя", ну я так перевёл (разрабы прикалываются - интересная константа) mov[ecx+edx*4+10],eax jmp returnMoney: jmp newmem DB 90 90 90 90return:[DISABLE]Money: db 35 BE BA AD DE 89 44 91 10unregistersymbol(Money)dealloc(newmem) 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
A1t0r Опубликовано 9 января, 2016 Поделиться Опубликовано 9 января, 2016 xor eax,DEADBABE // "смерть тебе дитя", ну я так перевёл (разрабы прикалываются - интересная константа) Помнится была такая головоломка где просто давался залитый определённым цветом квадрат, и нужно было подобрать пароль от следующего уровня. Цвет был с альфа каналом - 4 байта и в hex'е читался как #DEADBEEF ("мёртвая говядина") Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 9 января, 2016 Поделиться Опубликовано 9 января, 2016 Жень, ты же сам ответил на вопрос -> у тебя, под сполером "Код функции", ответ и можно прямо из той инструкции написать скрипт с добавлением (нужен флаг, так как инструкция скорее всего очень часто работает) или с постоянным кол-вом (это проще) денег.Например (у меня игры нет, так что сделаю на коленке, скорее всего сработает):ЗЫ: может нужно будет аобскан повыше на инструкцию взять, а может и так сработает. Работает проверил только что. Однозначно плюс.[ENABLE]aobscanmodule(Money,ActOfAggression.exe,35 BE BA AD DE 89 44 91 10)alloc(newmem,$1000)label(return)registersymbol(Money)newmem: mov eax,#1000000 xor eax,DEADBABE // "смерть тебе дитя", ну я так перевёл (разрабы прикалываются - интересная константа) mov[ecx+edx*4+10],eax jmp returnMoney: jmp newmem DB 90 90 90 90return:[DISABLE]Money: db 35 BE BA AD DE 89 44 91 10unregistersymbol(Money)dealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 9 января, 2016 Поделиться Опубликовано 9 января, 2016 Жень, ты же сам ответил на вопросИгорь - это я написал до того, как ковырялся в игре. Править не стал своё сообщение. Подсобил чем мог. Вопрос в обще был в теме о xore которого якобы нету. Да и можно было не расшифровывать и так работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 января, 2016 Поделиться Опубликовано 9 января, 2016 Работает проверил только что. Однозначно плюс.Dison, спасибо!!!В одной из тем (нами обсуждаемых), я уже писал, что после видео MasterGHhttp://gamehacklab.ru/video_lessons/109-issledovanie-i-vzlom-loki-xor-shifrovanie.html у меня в голове, как будто что-то щёлкнуло и встало всё на место и после затруднений я не испытывал с шифрованными значениями. А так из шифрованных мне больше всего понравилось, помнишь Dison ломали денюжки в GTA5, где деньги XORировались не через константу, а через переменную, которая одновременно была адресом денег. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 9 января, 2016 Поделиться Опубликовано 9 января, 2016 помнишь Dison ломали денюжки в GTA5 Конечно помню, только вот я все равно еще с шифроваными-кодированными значениями не очень подружился. Ссылка на комментарий Поделиться на другие сайты Поделиться
WenSiL Опубликовано 11 января, 2016 Автор Поделиться Опубликовано 11 января, 2016 LIRW, А где ты xor нашел? D: Я тыкал по всем ближайшим коллам и джампам, но что-то никак не могу найти xor. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 января, 2016 Поделиться Опубликовано 11 января, 2016 LIRW, А где ты xor нашел? D: Я тыкал по всем ближайшим коллам и джампам, но что-то никак не могу найти xor. WenSiL, Женя скорее всего вышел на XOR поиском "Неизвестного значения".Т.е., если предполагается что значение шифрованное, то поиск производится:Ищется - "Неизвестное значение", тип "4 байта" (или float, как предпочитает LIRW), метод "изменилось/не изменилось".Конечно это долго, но в результате получаем и реальные (шифрованные) значения и экранные.На шифрованные ставим бряк (как всегда) и отсюда уже и выходим на нужные инструкции. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения