![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,683Активность: |
Коверкаем Mpq или самопальный протект
Как вам известно давным давно люди научились защищать свои карты всевозможными методами, а вот читеры научились вставлять читы прямо в карту, дошло до того что есть автоустановщики читов в карту... Но не перевелись народные умельцы, появились карты которые очень читеры не любят, это корейские и некоторые заподные поделки, где исковеркан архив как от спазлера но несколько по иному, ибо судя по сообщениям на формах mpq.MoonLight (или модифицированный спаззлер*) с которым приходится возится в ручную, а так же неизвестные прочие методы протекта (карта не открывается, w3map Restorer, Xdep, Ladik mpq. но отлично открывается RMPQ) - спс Diod; записаны минусы в хештаблицу. Хотя известны карты которые не открываются, RMPQ но открываются ладиком....
Хотелось бы послушать от гуру:
Нельзя защитить архив так чтобы нельзя было оттуда выколупать содержимое, частично конечно можно, после корейского протекта карты часто не работают корректно, отсутствуют модели и иконки...
Но вот вопрос а что бы такого натворить чтобы после распаковки, упаковки архива не работал корректно war3map.j, поделитесь своими идеями по этому поводу... * про спаззлер и питон сомнительно, у корейцев на форумах обсуждается архив и методы поиска в нём не пойми чего на уровне HEX редактора, ни слова про спаззлер и питон... |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Faion
Noblesse Oblige
![]() ![]() offline
Опыт:
30,395Активность: |
Юзаю авторемув посторонних триггеров (инъекций) :nate: |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
16GB
GhostOne User
![]() ![]() offline
Опыт:
60,317Активность: |
Faion:
а что мешает выпилить его из карты? |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,683Активность: |
16GB, весь корт карты, ну такой код я так понял оч геморно, потому что это весь код карты = единая защита, выпилишь часть и не работает целое... |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Faion
Noblesse Oblige
![]() ![]() offline
Опыт:
30,395Активность: |
16GB, отсутствие прямых рук. Вот ты бы что пытался найти в тыщах строк кода? :) |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,683Активность: |
Faion, а поделишься кодом в лс, чтобы не боялся что сопрут, интересно глянуть собственными глазами на это.... |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Faion
Noblesse Oblige
![]() ![]() offline
Опыт:
30,395Активность: |
под рукой кода нету |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
от распространённых читпаков можно защитится крайне просто, достаточно выдать те самые имена функций какимнить важным методам, вызывать эти методы через неочевидный эксикат, чтобы просто переименовать было нельзя, и уже обломится человек, а если переименует, неочевидный эксикат всё равно сделает своё дело.
я видел такой метод обфускации в ява приложении которое тырит пароли, там была большая стринг таблица без какой либо явной логики, особый линейный генератор, который собирал из этой таблицы имена методов и вызывал их, при чём использовалось два числа, сид и офсет, которые никогда не повторялись и при совершенно разных входных значениях набирали одни и теже методы.
к сожалению отладчик на InvokeMethod раскрыл весь тайный замысел и выдал мне дамп всего кода в расшифрованном виде, это к тому что против разработчика выше некоторого уровня всё это пустая трата времени. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,683Активность: |
Faion, а если в существующий добавят? смутно представлю как ты все проверишь на вливание чего то постороннего.
quq_CCCP добавил:
Я вот тоже придумал метод проверки на читы, но он неособо оптимален, создаём структуру и записываем туда все особености игрока и его героя, переодиком все это проверяем, експу, голд и прочее даём триггерно, и спец функцией проверяем на то ли значение все изменилось у юнита или нет, если нет то тут же кик, все проверки построены так что если их отключить код карты работать не будет. Что скажите? quq_CCCP добавил: Кстати проверка на чит активаторы, что тоя сразу неподумал, игрок пишит в чат -qwerty и вдруг видит что вылетел из карт и сидит в главном меню вара... правдо такое просто выпилить если искать гдеэти строки юзаются.. |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Nerevar
I'll be back!
![]() ![]() offline
Опыт:
18,352Активность: |
Faion:
уже искали привет генератору проса для евикса |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Faion
Noblesse Oblige
![]() ![]() offline
Опыт:
30,395Активность: |
quq_CCCP:
не добавят, ибо как то нужно запускать. |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,683Активность: |
А что на счет архива, DioD, поделишся знаниями?
quq_CCCP добавил: Кстати а есть ли смысл юзать GetItemName(),GetObjectName(), GetUnitName() и тп, вместо строк в коде карты, равкод обьекта не 'u001' а 1966 + 092336 или тп? Это конечно усложнить понимание за что отвечает данная функция... |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
у абилок есть поля эффектов, лично я пишу айди спела туда и в рантайме кеширую результаты, выяснить какой айдишник какой спелл вызывает проблематичненько но только если не знать тему, демокарту выложу на днях этого метода |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ZLOY5
![]() offline
Опыт:
912Активность: |
Например MPQView видит файлы только с локальным айди 0
если не ошибаюсь) |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
куда подробнее?
то что эти утилиты работает не так как игра не значит что все утилиты работают так. |
![]() |
#15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,683Активность: |
|
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ZLOY5
![]() offline
Опыт:
912Активность: |
Возможно я делаю ошибку, но вот и да, я некрофил |
![]() |
#17
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,683Активность: |
ZLOY5, я уже кое что нашёл, даже написал на VB простенькую программу которая считывает 32 байта заголовка и меняет часть из них, деспазлерр сразу же гробит, но руками снять просто, достаточно посмотреть в Norton Commander несколько карт сравнивая их по содержимому (hex) , ну от нубов конечно спасает...
Есть еще кое что, баги слк оптимизации которые вешают W3maprestorer, пока ковыряю карту но нужного результата так и не получил что же это вызывает... Спазлер судя по его скрипту делает битый лже заголовок а настоящий смещяет на n байт, поскольку заголовок в mpq не должен начинаться с начала файла но должен быть выровнен под 512 байт (0x200 hex), а большинство мпк ищут его именно там и видят фигу. quq_CCCP добавил: ZLOY5, ктсти да оч интересный сурс корейской утилиты, желтолицые друзья пишут что им удалось поковаркать хт архива и несколько поиному сместить заголовок, как и говорилось ранее питоном и спаззлером не пахнет.... пока защиту не проверял... |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
сорц шторма висит уже больше года в сети, запилить архив так чтобы он был не совместим с этой библиотекой не проблема и именно этим все занимаются. |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ZLOY5
![]() offline
Опыт:
912Активность: |
это и сделано в туле этой в шторме ведь используется беззнаковая переменная для хранения позиции таблиц, а в варе наверняка знаковая перемещаем таблицы перед заголовком и вуаля |
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|