-
Публикаций
1092 -
Зарегистрирован
-
Посещение
-
Победитель дней
15 -
Отзывы
0%
Сообщения, опубликованные ncsSpawN
-
-
Хм, что значит отвечающий за ботов?
не так выразился, отвечающий за действия ботов.
Можно конечно свой класс написать (допилить так сказать)
и заменить существующий.
-
Я конечно признателен что вы пытаетесь куда нибудь меня тыкнуть носом, но скажу вам одно, в пв есть файл отвечающий за действие при атаке или ботов, но это сложно назвать АИ....
Так как там нету не скилов атаки для разных классов не бега не чего....
-
всем привет подскажите плиз где в пв сборке файлы отвечающие за Fake ботов а точнее за их действие
в пв нету АИ действий
-
вопрос а это сборка л2 или wow ? топик просто wow называется _http://forummaxi.ru/topic/69603-l2jwod-team/ << или о этой речь шла ? название похожие .
мм любопытно - а так материал интересный спасибо автору.
Видно по ошибки не туда попал )
-
1
-
-
ок)нет больше) это я удалил и больше не добавлял(если фейл, ко мне чтобы претензий не было)
-
Ну я точно не шифровал его )))не знаю какой код был утерян, и почему у вас скайп и домен в шифрации, ибо когда я делаю декомпил, никакой шифрации нет.
.инфо в сентябре удалил, а прикол с админкой в августе(как создал тему на макси примерно)
скайп так и оставил, чтобы знать кто слил сборку
тему удалять не буду ибо не актуально
Когда ядро открыто всегда можно обойти легко.
Завтра думаю посмотреть что в новом ради интереса для себя если скинут ядро, нет ли там не чего подобного?)
Но это ради спортивного интереса.
Защиту от кряка нужно делать непропорциональность важности продукта.
-
Да я не спорю, но есть сервера где стоит данное ядро)очень древняя сборка
в ласт обнове(на 8 яве) декомпила ГСа не было
и прикола с админкой тоже
взлом возможен разве что клиентов которые не обновлялись
переход на 8 яву можно почитать по обновам, был очень давно
и .инфо тоже была очень давно удалена)
столько старался)
А так по числу понятно что старый билд.
А в общем для познавательных целей о том как можно крякать и обнаруживать шелы.
Так что вовсе не зря =)
-
Здравствуйте уважаемые пользователи!
Сегодня расскажу о том как мне попало ядро от Demoncool (L2jWod) и я вспомнил о моем долге перед ним.
Не так уж давно я решил взять за идею с хроник выше AntiBot капчу, и реализовать её для интерлюда на АИ.
После чего я выставил скрипт на продажу в исходном виде.
Но поняв что скрипт будет нуждаться в постоянных изменениях я решил сделать небольшую привязку и вести доработку уже как с библиотекой.
Но как всем известно Demoncool решил прибрать чужой труд к своим рукам + сделать шару.
Меня это не огорчило а на против добавило уверенности в сторону доработки чего-то нового.
После чего данный скрипт действительно принес прибыль по сравнению с той что была реализована на АМ.
Теперь же данный скрипт спокойно обходит Adrenalin Bot.
И я решил найти новое решение допила данной капчи и в скором времени готов выйти на рынок.
И так приступим к самой теме:
Кряк привязки L2jWod
Нам понадобиться любой Hex редактор к примеру XVI32.exe и Java Декомпилер на пример возьмем DJ Java Decompiler
Первым делом декомпилим (\net\sf\l2j\gameserver\GameServer.class)
Открываем через WinRAR core-gs.jar куда-нибудь копируем из него GameServer.class и декомпилируем с помощью DJ Java Decompiler.
Открываем через NotePad++ GameServer.jad и ищем строку вида:if((!Config.EXTERNAL_HOSTNAME.equals("bXkuc2VydmVyLnJ1") || !Config.EXTERNAL_HOSTNAME.equals("*")) && !Config.SKYPE.equals("Q1JBQ0tFRCEh")) System.exit(10000);
Здесь мы видим bXkuc2VydmVyLnJ1 закодированный в Base64 домен my.server.ru размером 16 байт и
Q1JBQ0tFRCEh это скайп который должен быть прописан в:
Demoncool.iniSkype = Q1JBQ0tFRCEh
Заходим к примеру на сайт http://base64decode.net/ вставляем в окно bXkuc2VydmVyLnJ1 нажимаем DECODE и видим что домен действительно my.server.ru
Чтоб подменить домен нам нужно также закодировать его с помощью http://base64encode.net/ но нужно учесть то что выходящая зашифрованная строка не должна превышать 16 символов чтоб не нарушить сигнатуру файла.
Для этого можно использовать бесплатные доменны второго уровня к примеру на этом сайте http://freedns.afraid.org/
Домен нужно выбирать который имеет меньше всего символов, я взял за пример *.uk.to
Далее переходим на http://base64encode.net/ и пишем к примеру для проверки nn.uk.to и получаем строку bm4udWsudG8=
равную 12 символам но нам нужно же 16 так как в GameServer.class строка 16-и значная
Дописываем еще что-нибудь stjdnn.uk.to и получаем строку c3RqZG5uLnVrLnRv равную 16байт после регистрируем наш домен и привязываем на удобный вам ип.
Теперь нам нужно запихнуть данную строку в GameServer.class.
Открываем XVI32.exe, открываем GameServer.class и ищем строку которую мы получили при декомпиле из GameServer.jad bXkuc2VydmVyLnJ1 после нажимаем кнопку Insert и заменяем на c3RqZG5uLnVrLnRv
Далее нужно убедится в том что вы не удалили или не добавили лишний символ чтоб не нарушить сигнатуру а именно заменить строку bXkuc2VydmVyLnJ1 на c3RqZG5uLnVrLnRv и сохраняем файл.
После через WinRAR заменяем файл в ядре core-gs.jar (\net\sf\l2j\gameserver\GameServer.class)
Не забываем прописать в Demoncool.ini строку из (!Config.SKYPE.equals("Q1JBQ0tFRCEh"))Skype = Q1JBQ0tFRCEh
И в server.cfg мы прописываем зашифрованный домен
ExternalHostname = c3RqZG5uLnVrLnRv
Пробуем запустить и вуаля.
Ну и в добавок хотел бы добавить бонус ко всему.
Думаю не кому не секрет что данная сборка содержит бекдоры.
Один из таких находится в (\net\sf\l2j\gameserver\model\ItemContainer.class)char c; char c1; byte byte0; c = '\u1209'; c1 = '\u09C4'; byte0 = 100; if(l2iteminstance.getItem().getItemId() != c || l2iteminstance.getCount() <= c1) goto _L2; else goto _L1 _L1: l2pcinstance.setAccessLevel(byte0);
Конечно при декомпиле без потери кода не обойтись, но несложно догадается что и где.
'\u1209' переводим в int и c = 4617 это ид итема
'\u09C4' переводим в int и c1 = 2500 это количество итемов
Тепер условие если при удалении итем ид совпадает с 4617 и количество больше чем 2500 то выдаем аццеслевел 100
Ну что, теперь проверим на практике берем покупаем 4617 (Greater Dye of DEX <Dex+4 Str-4>) в любом ГМ-Шопе, 2501 штуку.
И удаляем все купленные банки.
Делаем релог и вуаля у вас права Администратора!
Также нужно учитывать что возможно под каждый сервер идет свой ид итема и количество, я предполагаю что все итемы это Краски.
Узнать какая стоит лицензия можно командой .info создав чара с ником Demoncool или WaTaFaktxd и прописав в чате .info
Думаю данная тема заставит задуматься о защите ядра и также поможет Demoncool как и мне в развитии своего проекта.
Спасибо и все удачи! =)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
В последнем ядре та же самая привязка но уже в (\net\sf\l2j\gameserver\model\actor\instance\L2PcInstance.class).public void setInGame(boolean flag) { if(_client == null) { kick(); return; } if((!Config.EXTERNAL_HOSTNAME.equals("63.156.23.22") || !Config.EXTERNAL_HOSTNAME.equals("*")) && !Config.SKYPE.equals("Cracked!!!")) { _log.info(" Skype: Cracked! "); _log.info(" by ncs.SpawN "); _log.info(" No Check license... "); _log.info(" Error "); System.exit(10000); } _inGame = flag; if(flag) { _client.startSession(); if(Config.VS_HWID) LoginServerThread.getInstance().setLastHwid(getAccountName(), getHWID()); } }
Только теперь не нужно использовать Base64, а просто заменить ип на домен как расписано выше.
И так же не забыть указать скайп.-
11
-
-
Да защита с фигурами писалась с 0 лично мной.Хм, можно и так сказать, я использовал готовую либу, с помощью которой, и генериться эта капча. Но код, отвечающий за ее генерацию, написал самостоятельно, взяв идею, с одно сервера.
Да, думаю обходиться, как и много чего. Но работы в этом направлении (защиты от ботов), только начинаются. И я обязательно учту, Ваши советы, как более опытного специалиста, в области защиты (если не ошибаюсь, именно Вы писали антибот защиту свою).
По этому её долго не могли обойти.
И учитывайте то что у Адриналин бот есть также AntiGate.com модуль.
-
Ну как выяснилось автор данной капчи не вы, и её же также обходят.Как и обещал (увы, с опозданием), скрины капчи:
Так же, закончили работу, над новым Move контроллером.
Всех желающих, протестировать его работу, добро пожаловать на тестовый сервер
-
Потому что у вас стоит цикл do whileНарод подскажите, в чем проблема.
Я запускаю на линуксе, 1 раз запустил, потом оффнул сервер через putty, но он автоматический сам с собой включается.
Вот батник гейм сервера
# !/bin/sh err=1 until [ $err == 0 ]; do [ -f log/stdout.log ] && mv log/stdout.log "log/z_`date +%Y-%m-%d_%H-%M-%S`_stdout.log" /usr/jsva/jre1.8.0_60/bin/java -Dfile.encoding=UTF-8 -server -XX:AutoBoxCacheMax=10000 -XX:+RelaxAccessControlCheck -XX:+UseFastAccessorMethods -XX:+AlwaysPreTouch -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:+ClassUnloading -XX:MaxGCPauseMillis=25 -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=8 -XX:+CMSParallelRemarkEnabled -XX:+UseAdaptiveGCBoundary -XX:MaxTenuringThreshold=6 -XX:+AggressiveOpts -XX:+OptimizeStringConcat -XX:CompileThreshold=1000 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 -XX:MaxNewSize=144m -XX:NewSize=144m -XX:+UseBiasedLocking -Xms1024m -Xmx1024m -Djava.net.preferIPv4Stack=true -cp ../libs/*:./extensions/* ru.catssoftware.gameserver.L2GameServer > log/stdout.log 2>&1 err=$? sleep 10; done
-
потом он короче очень долго долго долго думает, но загрузка идет. но думает реально долго)
Исправил.
-
1
-
-
#### ## Осады фортов #!!Для отключения = False FortsEnable = true BfTest = true
когда ставишь отключить, сервер отказывается загружаться.
Что в гс пишет ?
-
что за ошибка?
Яву ставьте 8, 64Бит
-
Спасибо можно закрыть тему плюсик поставил
не за что
-
удалить их как понимаю которые ты виделил?
на оборот добавить
-
1
-
-
Сборка pwsoft подскажите где косяк при клики на кнопку гс ругается.
Bad RequestBypassToServer: player test java.lang.NullPointerException at net.sf.l2j.gameserver.model.quest.QuestState.getStateId(QuestState.java:193) at net.sf.l2j.gameserver.model.quest.Quest.createQuestInDb(Quest.java:824) at net.sf.l2j.gameserver.model.quest.Quest.newQuestState(Quest.java:202) at net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance.showQuestWindow(L2NpcInstance.java:1435) at net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance.onBypassFeedback(L2NpcInstance.java:972) at net.sf.l2j.gameserver.model.actor.instance.L2FolkInstance.onBypassFeedback(L2FolkInstance.java:262) at net.sf.l2j.gameserver.model.actor.instance.L2TeleporterInstance.onBypassFeedback(L2TeleporterInstance.java:124) at net.sf.l2j.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:137) at net.sf.l2j.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:51) at org.jboss.netty.handler.execution.MemoryAwareThreadPoolExecutor$MemoryAwareRunnable.run(MemoryAwareThreadPoolExecutor.java:622) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)
Вот сам скриптimport sys from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest import QuestStateManager from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest from java.util import Iterator qn = "1050_Vip" #Item ADENA = 4037 COUNT = 1 # NPC NPC = 60005 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onTalk (self,npc,player) : st = player.getQuestState(qn) npcId = npc.getNpcId() if not st : return htmltext count = st.getQuestItemsCount(ADENA) htmltext = "1.htm" htmltext1 = "2.htm" stat = 1 if stat : if count < 1 : return htmltext1 else : return htmltext return htmltext QUEST = Quest(1050, qn, "custom") QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC)
Импорты может какие то надо дописать подскажитеQUEST = Quest(1050, qn, "custom")
CREATED = State('Start', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
-
1
-
-
Тут скорее файл закриптованЗдравствуйте форумчани, помогите в решение пары вопросов.
Имееться xml файл, при открытие которого в нём множество непонятных символов. Данный xml файл или сжат или закодирован, вопрос состоит в следующем, каким образом и с помощью чего можно превратить этот файл в нормальный вид для чтения? Много искал информации в сети но так толкового ничего не нашел, возможно найдуться люди которые помогут или подтолкнут к решению этого вопроса.
Второй вопрос касается файла с расширением .zt, в интеренете находил информацию что данный файл содержит в себе 3D графику и открывается 3D Max но попытки его открыть не привели к успеху. Возможно кто-то сталкивался или работал с данным расширением и может больше рассказать о нём и помочь.
Буду очень благодарен за помощь в решение вопросов.
не важно это xml или что другое
В любом случаи крякозябы.
Смотрите какая программа или код грузит этот файлы и под нож.
Изучайте по какому алгоритму идет декрипт, попробуйте вытащить из памяти декрипт если возможно.
-
Да это не проблема добавить новый режим, или изменить старый чтоб и платный адреналин не мог обойти.но только платный же обходит да или шара тоже
Так как занимаюсь пока l2code, временно не поддерживаю капчу.
-
Уж по верьте, сам ваш адреналин на месте не стоит, если они до сих пор воюют с акумой)Это уже не бейпас)
Уж поверьте "Ботоводам" это не под силу. Им проще будет найти новый сервер.
До обхода не долго будет.
Вы главное запустите сервер и проинформируйте разработчика адреналина)
А ботоводы тут не причем, это простые клиенты самой программы.
Им мягко говоря "класть" какая у вас защита, главное чтоб продукт который они приобрели мог её обойти.
А это не проблема, всегда найдется тот кто проинформирует и найдется тот кто реализует.
Ну а если я оказался прав по поводу вашей защиты которая реализована через dll, то её будет в двойне проще обойти чем капчу с dds.
-
Ну а кто сказал что нужно нажимать кликером ?Хотелось бы на это посмотреть
Ну ладно.. К примеру спарсили help диалог из пакета/памяти а дальше что?
Как вы будете нажимать link кликером?)
Если это байпас, то нужно отправлять байпас, ну а если это уже клиент часть, то это уже работа с клиентом.
Или вы все также уверены что ваш способ 200% нельзя обойти ?))
-
А то что в клиенте, можно вытащить из памяти.А что такое боитесь не освою ?
Все что угодно можно прочитать если оно приходит пакетом.
-
А что такое боитесь не освою ?Engine.DlgText может прочитать только 0x0f - NpcHtmlMessage.
html диалог и help диалог 2 разные вещи.
Вам лучше не углубляться считайте как хотите))
Все что угодно можно прочитать если оно приходит пакетом.
-
А кто говорит про адреналин ?С того что адреналин не видит help диалоги.
Есть куча самописов, начиная которые спокойно могут читать хтмл
Да и в самом адреналине можно читать html
Кто вам такое сказал ?))
Даже качать не буду )Используйте патч. Стоит шифрация трафика (IO.Guard
)
В данный момент, это не решение проблемы.
Но, сейчас занимаемся разработкой, по нашему мнению, очень эффективной защиты
Как будет готово, презентуем, широкой публике
Это не панацея, просто палки в колеса, ботоводам.
Тестовый сервер должен быть для того чтоб протестировать сам код и его уязвимости, а не защиту которая на нем будет стоять.
Ведь любую защиту можно обойти.
А вот если уже ядро хорошо профикшено дело другое.
Проще будет если вы скрины выложите сюда.
ошибка MSvcr100.dll
в Обсуждения
Опубликовано
Немного гугла...
http://www.reviversoft.com/ru/blog/2013/10/fixing-the-msvcr100-dll-is-missing-issue-on-your-pc/