| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Сервер Java |
| Автор: Sobstvennaya 31.12.2008, 04:36 |
| Здравствуйте! У меня возникла проблема, я не знала куда обратиться и наткнулась на данный форум. Скачала Java сервер (игровой L2) . Настроила соответственно все работает. При регистрации аккаунта в базу navicat попадает логин с хешированым паролем, в виде SHA-1(Base64) ... в личных интересах хотелось бы снять этот шифратор, во всяком случае! - Переделать в стандартный Base64 имеющий обратный аллгоритм. Вопрос заключается в том - где именно искать данный код и как он выглядит? Я в программировании мало что соображаю...увы. Мои подозрения лежат на mysql-connector-java-5.0.8-bin (JAR) .. хотя терзают сомнения. При регистрации в клиенте (автомат регистр.) LoginServer оповещает что аккаунт (логин qwerqwe) зарегистрирова, переводя аккаунт соответственно в таблицу, где получается вот такая дребедень...login=--qwe234-- pass=--1PMZat65eA7iQ0ibGFYx1ZxzyKU=-- Вот что ж делать то теперь? Спать это не дает( |
| Автор: powerOn 31.12.2008, 11:15 |
| А зачем снимать хеширование? Вообще говоря, пароли хешируют для того, что бы даже в случаи утечки БД, злоумышленник не смог получить к нему доступ. Поэтому, я считаю, идею хранить пароль, а не его контрольную сумму, не очень хорошей идеей. |
| Автор: Sobstvennaya 31.12.2008, 11:33 |
| Я же сразу упоминула - для личной информации..сервер не для раскрустки и не для того что б играли на нем) |
| Автор: powerOn 31.12.2008, 13:19 |
| Я не знаю как устроен именно этот сервер, но обычно, контрольные суммы снимают непосредственно в insert SQL запросе (через функцию сервера БД). Нужно иметь исходники что бы точно сказать. это просто либа для доступа к MySQL базе, она ничего не хеширует. |
| Автор: Sobstvennaya 31.12.2008, 13:45 |
| Ответте пожалуйсто в ICQ ! (( Sob© )) |
| Автор: powerOn 31.12.2008, 14:02 |
| Все вопросы только на форум. Без обид. |
| Автор: Sobstvennaya 31.12.2008, 14:39 |
| Хорошо, С Наступающим кстати)! .. вот по всей видимости данный код $temp_pass=base64_encode(pack("H*", sha1(utf8_encode($temp_pass)))) Вот только где я его могу искать среди всей всячины???? !!! http://radikal.ru/F/s60.radikal.ru/i169/0812/ac/b68d86b78f4e.jpg.html http://radikal.ru/F/s40.radikal.ru/i089/0812/a4/fb10a7b0db4d.jpg.html http://radikal.ru/F/s49.radikal.ru/i126/0812/80/0722a0e9a2b7.jpg.html http://radikal.ru/F/s41.radikal.ru/i091/0812/d9/75f3badfc315.jpg.html |
| Автор: Sobstvennaya 1.1.2009, 15:33 |
| А как на яве выглядет код хэша? ..да это php код который я сред токо всего нарыла но тем не менее это не то... И вот не доходимт до меня все же что такое исходники..во всяком случае как обычный файл текстовый и тому подобные отлич. от иходного кода ..или там все вместе на перемешку? http://radikal.ru/F/i048.radikal.ru/0901/9c/dd1429b86fc8.jpg.html Это и есть исходник? Или я так поняла исходник это совершенно другое? B взгляните на это..я не совсем уловила суть кода. CREATE TABLE IF NOT EXISTS `accounts` ( `login` VARCHAR(45) NOT NULL default '', `password` VARCHAR(45) , `lastactive` DECIMAL(20), `access_level` INT, `lastIP` VARCHAR(20), `lastServer` int(4) default 1, PRIMARY KEY (`login`) ); Что такие за Варчары..тд тп не имею представления( и вот... -- --------------------------- -- Table structure for `account_data` -- --------------------------- CREATE TABLE IF NOT EXISTS `account_data` ( account_name VARCHAR(45) NOT NULL DEFAULT '', var VARCHAR(20) NOT NULL DEFAULT '', value VARCHAR(255) , PRIMARY KEY (account_name,var) ); но так понимаю это тоже к яве не относится....( |
| Автор: powerOn 1.1.2009, 16:23 | ||
под исходником имеется ввиду исходный код сервера. varchar - это тип данных в SQL. да, это SQL команды для создания таблиц в БД. |
| Автор: Sobstvennaya 1.1.2009, 16:32 |
| ММ..а вот в сети я встречаю часто сервера с исходным кодом.. но что среди всего этого исходник я не знаю...по каким параметрам его можно определить? |
| Автор: powerOn 1.1.2009, 19:42 | ||
Не очень понимаю вопрос. Исходный код - это текст программы написанный на каком-либо языке программирования - то, что после (грубо говоря) компиляции превращается в реальную программу. Исходник = исходный код. Просто это сленг у программистов такой. Сказать "исходник" как-то проще чем сказать "исходный код", но это абсолютно равнозначные понятия. |
| Автор: Sobstvennaya 1.1.2009, 20:00 |
| Ну я то прекрасно знаю что это исходный код...но где же его искать то я не пойму? ... вот скачала рар. ( Сервер +открытый исходный код) и черт его знает что же мне с этим всем делать( Могу ли я вам скинуть что бы вы посмотрели( ... уже какой день целый день мучаюсь пытаюсь что то понять в этом всем и ничего не получается..я себя чувствую просто вышью в клетке, где мне надо долго грызть железо что бы выбраться... http://svn.assembla.com/svn/L2Emu/ вот исходный код на сколько я поняла.... |
| Автор: powerOn 1.1.2009, 23:09 |
| Вот найдете вы кусок кода где от пароля берется SHA1 и что дальше? http://svn.assembla.com/svn/L2Emu/trunk/L2EmuProject-Login/src/main/java/net/l2emuproject/loginserver/services/AccountsServices.java скорее всего интересующая вас логика находится в методе addOrUpdateAccount (строка 67) |
| Автор: Sobstvennaya 1.1.2009, 23:19 |
| Дак и что мне остается сделать с тем что вы мне дали...я что то плохо понимаю( уже какой день ковыряюсь( голова очень болит(... а мне осталось пару дней что б все успеть, а то потом уезжаю, а там где буду это использовать настроить уже не получится....( Ну как это..если найду код можно будет исправить ... |
| Автор: powerOn 1.1.2009, 23:55 |
| я вам дал ссылку на тот класс в котором происходит взятие SHA1 от пароля при создании нового аккаунта. Это возможно то что вы ищите, а возможно нет. Что с этим делать, известно только вам. |
| Автор: Sobstvennaya 2.1.2009, 00:58 |
| Даже если было бы это то....это совершенно другой исходник который мне врят ли подойдет для моей цели..щас попробую декомпилировать сервер..надеюсь что от выйдет... Добавлено через 10 минут и 26 секунд Кстати..есть смысл искать исходный код если просто сервер декомпилировать. Ведь никакая информация не будет утеряна? |
| Автор: Sobstvennaya 2.1.2009, 04:00 |
| Вот он код...нашелси)))) { MessageDigest md = MessageDigest.getInstance("SHA"); byte newpass[] = password.getBytes("UTF-8"); newpass = md.digest(newpass); Connection con = null; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("REPLACE\taccounts (login, password, access_level) VALUES (?,?,?)"); statement.setString(1, account); statement.setString(2, Base64.encodeBytes(newpass)); statement.setString(3, level); statement.executeUpdate(); statement.close(); } на сколько я поняла если просто удалю верхнюю строчку то толком ничего не будет... надо чуть что то тут переписать? ...только что |
| Автор: Alexandr87 2.1.2009, 11:41 | ||
тырить пароли - не хорошо. http://life.ru/news/50535/ Добавлено через 1 минуту и 50 секунд powerOn, пойдешь как соучастник |
| Автор: dorogoyIV 2.1.2009, 12:03 |
| я с этим не работал, просветите плиз: допустим по до мной сервак, и я техподдержка, я что, не знаю паролей юзеров? |
| Автор: Sobstvennaya 2.1.2009, 12:28 |
| Никто никуда не падет, успакойтись. Ту у кого тырить я буду - преедупреждает Администрация, что она не отвечает за поступки их потусторонних скачек на клиент dorogoyIV не знаешь..) это безопасность. В случае утери пароля идет следущее. Создается новый, так же хешируется как и предыдущий, и отправляется на е маил) Ты не знаешь пароля. Но тут эта ситуация никчему, мне нужно просто снять вот отсюда хеш! { MessageDigest md = MessageDigest.getInstance("SHA"); byte newpass[] = password.getBytes("UTF-8"); newpass = md.digest(newpass); Connection con = null; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("REPLACE\taccounts (login, password, access_level) VALUES (?,?,?)"); statement.setString(1, account); statement.setString(2, Base64.encodeBytes(newpass)); statement.setString(3, level); statement.executeUpdate(); statement.close(); } |
| Автор: dorogoyIV 2.1.2009, 13:30 | ||
Sobstvennaya, ну тут кажется просто - пишешь:
и у тебя один пароль на всех |
| Автор: powerOn 2.1.2009, 14:45 |
На сам деле, если исходники сервера в открытом доступе, то анализировать их с любой целью никто не запрещает, иначе смысл их светить просто не понятен. Потом, будет ли с помощью этой информации взломана рельная система? Наврядли, ибо реальные серваки все равно работают со всеми хешами и прочим - их код никто поменять не даст. Возможно, что Sobstvennaya хочеть поднять свой собсетвенный сервер, но при этом она как его (в ковычках при ряде условий) владелец (ну или администратор) в праве конфигурировать так как хочет. (Если конечно лицензия данного сервера позволяет) При этом, из исходников его еще собрать нужно граммотно. ;-) Поэтому, я честно говоря, кроме как зря потраченого времени из поиска где и что хешируется ничего не вижу. Что может полезного эта информация дать я пока не понимаю... P.S.: [голосом бандита из какого-нибудь детектиа] Все, я выхожу из игры, больше никакого взлома! |
| Автор: Sobstvennaya 2.1.2009, 15:32 |
| Так так! Нет стоп..куда ты уходишь?) А спец. прога что компилирует..я ей никак не смогу разобраться (.. dorogoyIV не об этом речь,мне не это надо... и сервак свой на ноги я ставить не буду) |
| Автор: Alexandr87 2.1.2009, 15:39 | ||
да ладно притворяться )))) 90% людей имеют обыкновение иметь один и тот же пароль на множество сервисов. Пользуясь этим, некоторые нехорошие люди создают фэйковые сервера сервисов, интересующих "жертву" А оно тут пропущено через хэш. Что делать, что делать 1. Ищем фотографию красивой девушки в нижнем белье. 2. ... |
| Автор: Sobstvennaya 2.1.2009, 16:02 |
| Фото можно посмотреть на маей страницы А да не в этом дело..вот с чем лучше помогите)) Вот чот случается если я заменяю class файл ... http://radikal.ru/F/i050.radikal.ru/0901/74/095fea3140f9.jpg.html иначе говоря делает вид что не видит его... =\ ... не урод ли?! |
| Автор: powerOn 2.1.2009, 17:13 | ||
Sobstvennaya, вы получили ответ где идет хэширование, но как перекомпилировать и заменить код на свой объяснять вам не будем. Это действительно похоже на незаконные действия. По крайней мере я не могу быть уверенным в том, что ваши действия в дальнейшем не будут нарушать закон. Помните о пунках http://forum.vingrad.ru/forum/topic-242327/anchor-entry1745532/index.php?act=boardrules#entry1745532 № 2 и 4.
|