IPB

Добро пожаловать, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Command & Conquer: Red Alert, хеши для кодов
-=CHE@TER=-
Jun 2 2014, 13:23
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Товарищ Siberian GRemlin, у меня к тебе вопрос, как к знатоку игр Westwood.
В первом C&C:RA в исполняемом файле (RA95.EXE - только я не помню, это он такой и был, или я в него RA95.DAT переименовал) есть строчки текста типа таких:
QUOTE
Denzil L
This would be better on the Mac.
Greg H
But does it fit into 2 MB?
Я так понимаю, что это шуточные цитаты от разработчиков.
Подумал было, что они есть в титрах - просмотрел их до конца, но ничего не вылезло.
Ты не в курсе где и как этот текст в игре выводится?
Гуглунием "c&c red alert easter egg quotes" ничего не нашёл.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Jun 2 2014, 13:35
Сообщение #2


Advanced Member
***

Группа: CTPAX-X
Сообщений: 466
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 197 раз(а)



Да, я сам видел там много приколов, но как их запустить в игре не знаю.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Jun 2 2014, 17:38
Сообщение #3


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Смотри какая штука - там есть дикая функция, которая считает хеш от строк (привет The Neverhood).
У меня RA95.EXE выводит версию V3.03E - для других смещения будут другие.
Собственно, сама функция: sub_4F5C0C. У ней один входной параметр - это строка (в EAX).
Возвращается её хеш.
В игре эта функция используется два раза для двух хешей:
RA95.EXE:000F4DD0 - тут первый хеш: $D95C68A2 (параметр командной строки)
RA95.EXE:00108218 - тут второй хеш: $72A47EF6 (неизвестно; может имя пользователя для сетевой игры?..)
Я выдернул код подсчёта хеша и попробовал перебором подобрать - не получилось.
Там реально вырвиглазный подсчёт идёт, в том числе по таблице для каждого символа ASCII.
Зато хеш можно заменить. Например, для слова "boom" хеш будет $03432522.
Если заменить первый хеш (D95C68A2) хешем для "boom", то запустив игру:
RA95.EXE boom
Будет пропущен вступительный ролик (там ещё какая-то странная серая табличка "STAND BY" промелькнёт) и сразу стартует кампания за Советов (не знаю на какой сложности).
Со вторым хешем сложнее - я так и не понял, где и что он включает, но от него зависит как раз вывод тех строк-приколов и ещё где-то рядом надпись "SECRET UNITS ON" (даёт возможность производить секретные типы войск?..). Там ещё какая-то строчка выше по коду про инициализацию сети была, так что, подозреваю, что эти строки-приколы вызываются в меню мультиплеера, но у меня кнопка "Network" там не работает - выкидывает назад в главное меню.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Axsis
Jun 3 2014, 19:41
Сообщение #4


Advanced Member
***

Группа: CTPAX-X
Сообщений: 118
Регистрация: 6-February 08
Пользователь №: 374
Спасибо сказали: 146 раз(а)



Нашел вот по RA2 статью по ключам запуска. Возможно, что-то сработает и в первом?
_http://modenc.renegadeprojects.com/Red_Alert_2


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Jun 3 2014, 20:18
Сообщение #5


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Прикольно, только по хешу, увы, не подходит. Хотя набрать код в главном меню - это интересная идея.
Вот исходные коды с выдранным куском считающим хеш:
ra95hash.zip
Запускать так: ra95find.exe 0 "boom"
Получим: 03432522
Вместо "boom" любое интересующее нас слово или выражение, хеш которого хотим узнать.

Кстати, я как-то пробовал перебором к The Neverhood коды подбирать.
Увы, только код "please" подбирается, т.к. в остальных есть как минимум один бит, который и включается и выключается (+2 буквы на каждый такой бит)...

P.S. Вынес сообщения в отдельную тему.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Jun 12 2014, 17:31
Сообщение #6


Advanced Member
***

Группа: CTPAX-X
Сообщений: 466
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 197 раз(а)



QUOTE(-=CHE@TER=- @ Jun 3 2014, 01:38) *
Будет пропущен вступительный ролик (там ещё какая-то странная серая табличка "STAND BY" промелькнёт) и сразу стартует кампания за Советов (не знаю на какой сложности).
После установки игры первый запуск автоматически начинает новую игру. После чего игра запишет параметр в INI, чтобы при последующих запусках игры открывалось главное меню. Как я помню, у меня всегда начиналась первая кампания, но, возможно, я всегда устанавливал с первого диска и с него же запускал.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Jun 13 2014, 10:08
Сообщение #7


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



QUOTE(Siberian GRemlin @ Jun 12 2014, 17:31) *
После установки игры первый запуск автоматически начинает новую игру. После чего игра запишет параметр в INI, чтобы при последующих запусках игры открывалось главное меню.
Точно!
REDALERT.INI:
QUOTE
[Intro]
PlayIntro=no
Это строчка появляется после первого запуска - специально сейчас проверил.
До этого её нет и игра именно так себя и ведёт - показывает все ролики и запускает первую миссию.
По той ссылке, которую привёл товарищ Axsis выше, так и написано:
QUOTE
(Unknown switch, encrypted)
Show the intro movie (Equivalent to setting Ra2md.ini [Intro]→Play=yes.)
Я попробовал хеши от всяких "-firstrun", "-playintro", "-forceintro" (с "-" и без него), но безрезультатно...
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Oct 25 2014, 05:21
Сообщение #8


Advanced Member
***

Группа: CTPAX-X
Сообщений: 466
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 197 раз(а)



А ты как смотрел «RA95.DAT»? У меня что-то «IDA» его до конца отказывается кушать. Я обновляю перевод и мне нужно длину строки изменить, а строка в конце файла.

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Oct 25 2014, 10:13
Сообщение #9


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



А у тебя какая IDA? Здесь, может быть, такая же хрень как с Кирандией - новая IDA не может нормально весь файл дизассемблировать. Если совсем не поможет - запусти игру под Олькой и поставь бряк на обращение к памяти (чтение) своей строки - там где-то рядом и будет место её адреса.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Oct 25 2014, 11:26
Сообщение #10


Advanced Member
***

Группа: CTPAX-X
Сообщений: 466
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 197 раз(а)



5.2.0.908. «Кирандию» как раз хавает. Ладно, не так важно, за той строкой идут сообщения для игры через интернет, которая сейчас не работает вроде: можно пренебречь. Как вариант — напишу прогу для поиска массива указателей по длинам тех строк.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Oct 25 2014, 16:49
Сообщение #11


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Что за строчка-то? Можешь её полностью процитировать?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Oct 25 2014, 17:11
Сообщение #12


Advanced Member
***

Группа: CTPAX-X
Сообщений: 466
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 197 раз(а)



QUOTE
Counterstrike Missions
Aftermath Missions
You cannot disable viewing of your own messages!

$205C60
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Oct 25 2014, 18:18
Сообщение #13


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Короче, рассказываю:
1) Открываешь свой файл через HIEW.
2) Встаёшь на первую букву любого сообщения.
3) Переходишь в ASM-режим (F4 - Decode или два раза Enter).
4) Жмёшь F6.
5) Всё.
6) Если, вдруг, строчка используется в нескольких местах, то после того как нашлось первое сразу же жмёшь CTRL+F6 и так пока все ссылки не будут найдены.

И, кстати, поиск массива указателей тебе не поможет, потому что там не массив. (*улыбается*)


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 2 2014, 14:02
Сообщение #14


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Товарищ Siberian GRemlin!
Во-первых, поздравляю с очередным релизом, во-вторых, замечания принимаются?
Решил поставить перевод на свою версию C&C:RA (какой-то рип, с какого-то сборника - очень давно у меня на винте лежит, так что не смогу вспомнить где взял).
Что меня в твоём переводе удивило:
1) Путь установки был предложен как... "C:\Program Files\Far". Эээ... так и должно быть?
2) Если воспользоваться переключателями снизу, то путь меняется на "C:\WESTWOOD\REDALERT" - у меня игра и не там стоит, ну да ладно (подозреваю, что ты пытаешься настройки из реестра прочитать, а у меня рип, который ничего туда не писал... но Far-то откуда?).
3) Далее перевод отказывался установиться, ибо у меня чего-то нехватало, хотя окно требовало с меня версию 3.03 (она у меня и так стоит) или 3.05. Потом до меня дошло - переименовал RA95.EXE обратно в RA95.DAT и твой перевод встал. Можно ли как-то (пожелание) сделать сообщение об ошибке более информативным, чтобы пользователь знал на каком файле программа стопорится или что ей не нравится? Я, конечно, понимаю, что человек нормально поставивший игру и обновление на неё такой ошибки не получит, но на всякий случай решил о такой вещи упомянуть.
4) В результате обновились файлы RA95.DAT (EXE) и WOLAPI.MIX. Других изменений не заметил. Загрузил одну из своих старых игр (года два или три назад играл последний раз), но при вызове "Меню" -> "Инструкции" задание миссии всё ещё на английском. Это так и должно быть или задание сохраняется в файл вместе с сохранённой игрой, поэтому и осталось непереведённым? Если так, то, может, стоит об этом где-нибудь упомянуть при установке перевода, а то вводит в заблуждение.
Вроде бы всё.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Nov 2 2014, 16:12
Сообщение #15


Advanced Member
***

Группа: CTPAX-X
Сообщений: 466
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 197 раз(а)



QUOTE(-=CHE@TER=- @ Nov 2 2014, 21:02) *
1) Путь установки был предложен как... "C:\Program Files\Far". Эээ... так и должно быть?
2) Если воспользоваться переключателями снизу, то путь меняется на "C:\WESTWOOD\REDALERT" - у меня игра и не там стоит, ну да ладно (подозреваю, что ты пытаешься настройки из реестра прочитать, а у меня рип, который ничего туда не писал... но Far-то откуда?).
Логика такая.
Если русификатор уже был установлен (предыдущая версия, например; только для русификаторов на «Inno»), то берётся её путь. «Inno» сам его подхватывает из своих ветвей реестра, в противном случае устанавливается путь из его глобальной переменной {sd} (системный диск). Я проверяю: если это {sd}, то нажимаю первую кнопку (обычное издание), которая ищет путь в реестре, и если его нет, тогда устанавливает пусть по умолчанию предлагаемый «Westwood Studios» при установке игры.

Либо у тебя так в системе прописан системный диск, либо это заморочки «Inno». Раньше никаких проблем не было.

3) Официальная позиция такова, что игрок должен иметь полную версию без сторонних изменений. Имена файлов не выводятся для усложнения жизни воришек переводов. Ты конечно можешь с этим спорить, но см. первое предложение сего абзаца. Да и в некоторых русификаторах пришлось бы «простыни» со списками файлов выводить на экран.

4) Допишу пока на сайте, ибо ради строки в информационном блоке, который мало кто читает, обновлять русификатор не целесообразно.

P. S.
QUOTE(-=CHE@TER=- @ Nov 2 2014, 21:02) *
релизом
Терпеть не могу это слово.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 3 2014, 18:41
Сообщение #16


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Ага, понятно.

P.S.
QUOTE(Siberian GRemlin @ Nov 2 2014, 16:12) *
Терпеть не могу это слово.
А как тогда правильно говорить? "Поздравляю с выпуском новой версии"? "Нового обновления"? Или как? Вообще, ты знаешь, я не хочу разводить бессмысленные споры (чуть было не написал "холивар"), но в любой профессиональной среде есть свой устоявщийся, скажем так, язык (сленг).
И когда ты не используешь его, то выглядишь как минимум странно, если не сказать хуже.
Знаешь, я одно время работал в коллективе с людьми в весьма солидном возрасте. Очень сложно потом было на новой работе, где были люди моего возраста и младше, говорить "клиент" вместо уже привычного "заказчик". Про всякие "тимбилдиг", "майлстоун", "коммит" и ещё хрен знает сколько других слов, от которых, поверь мне, я тоже как и ты офигеваю, но... ничего сделать не могу. Я один и ситуации не изменю, так что остаётся только подстраиваться под уже существующую среду. К тому же силы и время можно потратить на более полезные вещи, нежели бороться за чистоту русского языка.
Да и, вообще, ты не задумывался, что любой язык (если он не мёртвый) всё время пополняется новыми словами и выражениями. В данном случае, они, конечно, все заимствованные, но согласись проще сказать "коммит", чем "добавление последних изменений в центральное хранилище (репозиторий) исходных кодов"? (*улыбается*)
Про художественную литературу я ничего не говорю, но в профессиональной среде свой язык.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 19 2017, 14:30
Сообщение #17


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



Короче, отриверсил я эту фигню из ассемблера.
Всё лежит там же в 5-ом сообщении. Старый код на асме на всякий случай оставил.
По ходу дела выкинул, наверное, 50% кода, ибо он никогда не исполнялся или был совершенно бесполезен.
Там, кстати, вообще, дикая наркомания творилась, например, как вам нравится такой код:
CODE
k1 = buf_hash(str, len);
strrev(str); // "ABC" -> "CBA"
k2 = buf_hash(str, len) ^ k1;
strrev(str); // "CBA" -> "ABC"
key = k2 ^ k1;

Вы поняли, да, что последняя строчка разворачивается в:
key = k2 ^ k1 ^ k1;
Из чего получается (ибо k1 xor k1 = 0):
key = k2;
Что говорит нам об особых умственных способностях того, кто писал этот алгоритм.
Я сократил всё такое лишнее, что не влияло на вычисления и код стал очень даже понятным и простым.
Но вот сама функция вычисления этой суммы - по прежнему наркомания дранная.
Я, вообще, не понимаю какой смысл был такую функцию сложную делать (её же, блин, кто-то писал, рабочее время на это тратил, а это ведь даже не защита от несанкционированного копирования).

Основное, что нужно знать про хеш:
1) Он не может быть больше 128 символов.
2) Все английские бувы перед вычислением переводятся в верхний регистр.
3) Все непечатные символы (функция isgraph()), т.е. не лежащие в диапазоне от 33 до 126 включительно заменяются на заглавные латинские буквы в зависимости от позиции в строке.
4) Строка добивается теми же латинскими заглавными буквами до 16 символов в длинну, если меньше, или до значения кратного 4.
5) После этого над строчкой делается разного рода наркомания (см. исходные коды), как например пропуск через два 8-ми байтовых массива, которые часть битов в байте делают всегда 1, а часть всегда 0 (не удивляйтесь, когда у вас 2, а и то и 5 разных строк будут давать одинаковый хеш).

Товарищ Axsis!
У тебя здорово со всякими хешам получается - можешь чего-нибудь посоветовать для упрощения перебора? Потому что влоб там не получится, разве что можно заоптимизировать выкинув маленькие буквы из диапазона [32..126], но это всё равно дофига.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 22 2017, 18:33
Сообщение #18


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



QUOTE
Note: use $ERA? or @ERA! as word for network chat to activate developer quotes easter egg - it's shortest possible and easy to remember.
Мву-ха-ха-ха-ха!!!
А я взломал второй хеш перебором!
Как я уже сказал, алгоритм кривой, так что там очень много коллизий, поэтому этот хеш, я уверен, совсем не то что задумывали разработчики, но это не так уж и важно для использования.
Строчка ZGDHD даёт хеш 0x72A47EF6. НО!!! К введённому слову игра добавляет пробел в конец. Поэтому нужный хеш это слово BAPXBN - его нужно ввести в качестве текста в чате (Multiplayer game - Network) и тогда:
1) Автоматически добавятся соперники с именами разработчиков Westwood.
2) В чат посыпятся те самые цитаты.
3) Может быть ещё что-то изменится (появятся новые юниты для строительства в игре?).
Ииииххххаааа!!!
Proudly brought to you by -=CHE@TER=- after 21 year since game release!
Внимание! Чтобы войти в режим игры по сети на современных системах нужно обязательно установить Red Alert v3.03 TCP/IP LAN patch!
P.S. Перекачайте исходные коды - я ошибся, там не isprint() была функция, а isgraph() - она ещё пробел отсекает.
P.P.S. Хеш для ключа командной строки всё ещё не могу взломать. Я только предполагаю, что он, как и все остальные ключи в игре, должен начинаться с "-" (-DESTNET, -SOCKET, -MESSAGES, etc.).
CODE
Matched strings for hash 0x72A47EF6 (6 chars, only A..Z letters).
WARNING: game adds a space character at the end
of each message entered in the chat.
So the actual string passed to the hash routine
not "BAPXBN" but "BAPXBN " (with space at the end)!
BAPXBN
LEPLML
LKXLYY
LMXLYX
LUXLYT
LWXLYS
POXTGW
PQXTGV
PYXTGR
VKXLTY
VMXLTX
VUXLTT
VWXLTS
ZAPTFN
ZCPTFM
ZOXTBW
ZQXTBV
ZYXTBR
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 25 2017, 12:25
Сообщение #19


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,173
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 280 раз(а)



QUOTE
Note: use RJWBADCF as word for command line key to activate initial mode - it's easy to remember.
Офигеть!!! Серьёзно!!!
Наш казначей, товарищ kampaster, просто нереально крут! Он согласился на своём компьютере заняться брутфорсом (я сделал ему программу для перебора, ибо мой компьютер слишком стар для всего этого) и ему, вы не поверите, удалось за три дня найти коллизии для второго хеша - 0xD95C68A2!
Proudly brought to you by kampaster after 21 year since game release!
CODE
Run the game with any of these as command line key like this: RA95.EXE RJWBADCF

Matched strings for hash 0xD95C68A2 (6 chars, all allowed characters).
FVE[OT
FVM[/T
T&FAH3
\7>-5C
\\'HI\
{N*].Z

Matched strings for hash 0xD95C68A2 (7 chars, all allowed characters).
!#=J`}P
!&&A9R#
!;WHM([
!>}RM+E
"#9A"8J
"#;A"8I
"#=8:@2
"#=A"8H
"#?8:@1
"#?A"8G
"#AYZ,B
"#B8I(]
"#CYZ,A
"#EYZ,@
"'B`A>}
"+B7Y,_
";8Y:"J
";:Y:"I
";<Y:"H
";>Y:"G
"?)1*62
"?+1*61
"?-1*60

Matched strings for hash 0xD95C68A2 (9 chars, all allowed characters).
!!!~'/_8=
!!"L0}KA>
!!"`"))@<
!!#='DW&%

Matched strings for hash 0xD95C68A2 (10 chars, all allowed characters).
!!!!5Q~"DG

Matched strings for hash 0xD95C68A2 (11 chars, all allowed characters).
!!!!!3+,XTJ
!!!!!9{7W~'

Matched strings for hash 0xD95C68A2 (8 chars, only A..Z letters).
GCZEBWAE
RJWBADCF
XKLDCBCZ

Few matched strings for hash 0xD95C68A2 (9 chars, only A..Z letters).
AJUHYHEUD
AVOUHFKIB

Matched strings for hash 0xD95C68A2 (11 chars, only 0..9 digits).
04246126134
08287517540
08975635245
18474608869
34184024810
41150738524
44492175931
46381858073
76984168566

Few matched strings for hash 0xD95C68A2 (12 chars, only 0..9 digits).
035923415929
038800295595
038819562294
043587072070
051453070824
058901584061
065904284415
128541931672
128770991034
137510531255
154783033536
158392813664
176945835093
178769570821
194891223927
194899223527
209979117011
248726835105
253301152031
254311009595
262545928208
265354315434
282726110041
283530133345
289789955677
337416619580
348906204448
357855960362
Почему он так крут? Потому что я попробовал перебор по словарю (взял здесь, если кому-нибудь ещё нужно) и первый хеш с некоторыми изменениями слов подбирался более нескольких десятков раз, но вот этот, второй, вообще никаких коллизий не давал. И это сильно меня напрягло: а возможен ли, вообще, подбор этого хеша, если на таком количестве вариантов не было ни одной коллизии (а мы помним, что алгоритм хеша кривой и весьма распалагает к этому)? Плюс ко всему, перебор всех символов, это, на минуточку:
126 - 33 + 1 = 94 - количество символов для перебора
94 - 26 = 68 - у меня в программе пропускаются маленькие латинские буквы (т.к. хеш идёт только по заглавным)
Итого: 68 в степени количества символов в строке. С учётом того, что уже хеш из 5-ти символов подбирается со скрипом (у меня на компьютере), а товарищ kampaster прошёл все от 1 до 6 (остальные были параллельно запущены - по одному ядру на программу), то это просто офигенно круто!

В общем, тему трёхлетней давности можно считать закрытой.
Настоящие хеши мы вряд ли когда-либо узнаем, но это и не так важно - главное, что вот этими теперь можно пользоваться.
Спасибо всем!

P.S. Добавил в архив в пятом сообщении программу для перебора паролей с исходными кодами.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 26th September 2018 - 02:34