eXeL@B —› Крэки, обсуждения —› Ccalc6.80 |
<< . 1 . 2 . 3 . 4 . 5 . >> |
Посл.ответ | Сообщение |
|
Создано: 27 июня 2006 18:04 · Поправил: 452 · Личное сообщение · #1 Помогите разобратся с программой Ccalc6.80. Сайт программы www.adgroup.com.ua http://www.adgroup.com.ua/ Всё перепробовал ничево не получается. Я в етом деле новичок и ничево толком не умею. Инфа Программа написана на делфи Проверяет рег номер при запуске. При создании файла c:\system.da3 тутже закрывается. в реестре записей не имеет я не видил с regmoon restorator-om удалил таймер которий запускает функцыю abcgood появления окна для введения рег кода. |
|
Создано: 18 августа 2006 22:48 · Личное сообщение · #2 newborn но сколько я не дебажил прогу с разными серийниками я так и не нашёл то место где толком можно было б сделать подставу. Так надо смотреть где серийник делается. Отталкиваться надо от создания кей-файла. Кажется там есть такое. Помнится я с этой прогой не спал 5 дней, рекорд даже себе поставил Ну вот нафик она тебе нужна? Ты ее юзаешь? Или хочешь кряк продать? Я ее бросил, потому что появилась более интересная задачка. Ну и надоело трейсит математику, если честно. Попробую восстановить архив с прогой. Но ничо не обещаю. Времени совсем нет. Прихожу поздно, устаю как собака. И мозги уже не соображают. Очень странно что 98% всех крутых (мудрецов, наставников, ветеранов) в эту тему даже неразу не глянули, а даже если и глянули, то они выше того что бы опустится теперь до такого как запустить ольку и немного подебажить, я когда создавал такой же топиг туда тоже некто не отписался. А чо тут странного. Вот если б вопрос был по какому-нить проту, то ответов было б валом. А защита без прота - это ж каменный век Прот снял - и защита отвалилась: Ты мои посты посмотри,- много ответов? |
|
Создано: 19 августа 2006 10:01 · Личное сообщение · #3 |
|
Создано: 19 августа 2006 16:16 · Поправил: 452 · Личное сообщение · #4 stahh пишет: newborn Твой первый патч. Ты как к ниму пришел. Хочется понять логику. Отталкивайся от таймера ABCGood трейсил там и в стеке поменял 00 01 или ноборот непомню и прога запустилась и кнопки работали но счетает неправильно. Завтра поеду за инфой. Помогите сделать подставу инфы хотябы серийник жесткого попробуйте ввести етот 0012FB08 01B4C510 ASCII "14DD1C29" с етим серийником (5329BE2382184C110B750477FA0D590F609D118261E29E914A708E2BA0F686BE62343 51F34AC92DCF94957B8ADFBAC7B4C3AF2BBD41FBC0E8418C055EBFF99FCEB1F76710FC 72A688A0F0299F92A6CD12232BFDDAECF34A9147CCA35320C37DE) и при печати количество отображается в нормальном виде. ето адреса инфы моево компа (не под серийник) 0012FAF8 01B44118 ASCII "TRIADA-3DFA8605" 0012FAFC 7C913901 ntdll.7C913901 0012FB00 00393202 0012FB04 775F3201 ole32.775F3201 0012FB08 01B4C510 ASCII "14DD1C29" 0012FB0C 00000001 0012FB10 01B440F8 ASCII "S01RJ10XA09534" 0012FB14 01B440D8 ASCII "SAMSUNG SV0411N" 0012FB18 01B4C528 ASCII "UA100-11" 0012FAF4 00D1E550 ASCII "C:\Program Files\Ccalc6.80\Ccalc_Path_Only_One_byte.exe" 0012FAF8 01B44118 ASCII "TRIADA-3DFA8605" 0012FAFC 7C913901 ntdll.7C913901 0012FB00 00393202 0012FB04 775F3201 ole32.775F3201 0012FB08 01B4C510 ASCII "14DD1C29" 0012FB0C 00000001 0012FB10 01B440F8 ASCII "S01RJ10XA09534" 0012FB14 01B440D8 ASCII "SAMSUNG SV0411N" 0012FB18 01B4C528 ASCII "UA100-11" водебы вся инфа но проца невижу? |
|
Создано: 19 августа 2006 16:20 · Поправил: 452 · Личное сообщение · #5 452 пишет: трейсил там кстати сразу сверял с демкой и там увидел разницу. procedure TForm1.ABCGood(Sender : TObject); (* 005C2A78 55 push ebp 005C2A79 8BEC mov ebp, esp 005C2A7B 83C4F8 add esp, -$08 005C2A7E 8955F8 mov [ebp-$08], edx 005C2A81 8945FC mov [ebp-$04], eax 005C2A84 33D2 xor edx, edx * Reference to Form1 | 005C2A86 8B45FC mov eax, [ebp-$04] * Reference to control TForm1.ABC : TTimer | 005C2A89 8B80EC050000 mov eax, [eax+$05EC] * Reference to : TLabeledEdit._PROC_0044CB8C() | 005C2A8F E8F8A0E8FF call 0044CB8C * Reference to pointer to GlobalVar_00665F40 | 005C2A94 A180AB6400 mov eax, dword ptr [$0064AB80] 005C2A99 8B00 mov eax, [eax] * Reference to field GlobalVar_00665F40.OFFS_0024 | 005C2A9B 8B4024 mov eax, [eax+$24] 005C2A9E 80B8B800000000 cmp byte ptr [eax+$00B8], $00 005C2AA5 740F jz 005C2AB6 * Reference to TMyDlg instance | 005C2AA7 A1F0A76400 mov eax, dword ptr [$0064A7F0] 005C2AAC 8B00 mov eax, [eax] 005C2AAE 8B10 mov edx, [eax] * Possible reference to virtual method TMyDlg.OFFS_00FC | 005C2AB0 FF92FC000000 call dword ptr [edx+$00FC] 005C2AB6 59 pop ecx 005C2AB7 59 pop ecx 005C2AB8 5D pop ebp 005C2AB9 C3 ret *) |
|
Создано: 19 августа 2006 16:24 · Поправил: 452 · Личное сообщение · #6 Кстати в проге есть кнопка "Пересчитать заказ" Там есть 2 проверки * Reference to control TForm1.N6 : TMenuItem | 005C9EF1 3B8284030000 cmp eax, [edx+$0384] 1 - запускает about 005C9EF7 750F jnz 005C9F08 * Reference to TAboutDlg instance | 005C9EF9 A110AC6400 mov eax, dword ptr [$0064AC10] 005C9EFE 8B00 mov eax, [eax] 005C9F00 8B10 mov edx, [eax] * Possible reference to virtual method TAboutDlg.OFFS_00FC | 005C9F02 FF92FC000000 call dword ptr [edx+$00FC] 005C9F08 8B45F8 mov eax, [ebp-$08] * Reference to Form1 | 005C9F0B 8B55FC mov edx, [ebp-$04] * Reference to control TForm1.N63 : TMenuItem | 005C9F0E 3B82F8080000 cmp eax, [edx+$08F8] 2 - запускает activate 005C9F14 750F jnz 005C9F25 * Reference to TActivateDlg instance | 005C9F16 A128A96400 mov eax, dword ptr [$0064A928] 005C9F1B 8B00 mov eax, [eax] 005C9F1D 8B10 mov edx, [eax] * Possible reference to virtual method TActivateDlg.OFFS_00FC | 005C9F1F FF92FC000000 call dword ptr [edx+$00FC] Для чево они там? И для чево в проге Activatedlg если оно нигде ниразу не запускалось. Подправил вторую проверку запустилось окно активацыи серийник введен а код подтверждения где. |
|
Создано: 19 августа 2006 18:55 · Личное сообщение · #7 |
|
Создано: 19 августа 2006 19:19 · Поправил: 452 · Личное сообщение · #8 tundra37 пишет: stahh пишет: подставу данных, думаю, сделать можно. Это без проблем. Ето я знаю что можна но как^? 452 пишет: Помогите сделать подставу инфы хотябы серийник жесткого попробуйте ввести етот 0012FB08 01B4C510 ASCII "14DD1C29" с етим серийником (5329BE2382184C110B750477FA0D590F609D118261E29E914A708E2BA0F686BE62343 51F34AC92DCF94957B8ADFBAC7B4C3AF2BBD41FBC0E8418C055EBFF99FCEB1F76710FC 72A688A0F0299F92A6CD12232BFDDAECF34A9147CCA35320C37DE) и при печати количество отображается в нормальном виде. |
|
Создано: 19 августа 2006 23:18 · Личное сообщение · #9 Ну вот так это выглядит у меня 0012FAF8 0137C4E0 ASCII "FUCK-YOU" - имя компа 0012FAFC 7C913001 ntdll.7C913001 0012FB00 00303202 0012FB04 775F3201 ole32.775F3201 0012FB08 0137C4B0 ASCII "14451E20" - это чо? 0012FB0C 00000001 0012FB10 0137C4C8 ASCII "5JV2PLDL" - серийник винта 0012FB14 0137C4F8 ASCII "ST340014A" - модель винта 0012FB18 0137C510 ASCII "3.54" - это какой-то код винта И адреса в памяти и адреса в стеке - одинаковые. Но это на ХРСП2. А на СП1 - могут быть совсем другие. 00633410 |. E8 93>CALL Ccalc.00632DA8 ; Vint 00633415 |. B2 01 MOV DL, 1 00633417 |. A1 A4>MOV EAX, DWORD PTR DS:[41BFA4] 0063341C |. E8 23>CALL Ccalc.00403E44 Вот после колла получающего данные винта надо сделать колл в дописаную ф-цию, которая запишит по этим адресам правильные данные. Далее генерим ключ, потом вводим правильный ключ. И, по идее, прога должна работать. А чтоб заюзать такой кряк на любую систему, надо, блин подумать. Я сначала думал лоадер, но скажем имя компа пишет ntdll, а винт - кернел. Если адреса разные, то надо искать. А чо искать, когда не знаешь, какие данные будут записаны. Хотя я в этом мало шарю. Но если есть возможность прочекить каждую запись,то суть лодыря такова. Ждет вызова функции в проге(ну той которая проверяет железо), потом ставит бряк на GetComputerNameA, смотрит куда записалось, и переписывает на свое. И так по всем пунктам. Я кодить не умею ни на одном языке, так что... ЗЫ. Это если тока эти дела проверяются. А если еще что-то? |
|
Создано: 20 августа 2006 09:38 · Личное сообщение · #10 |
|
Создано: 20 августа 2006 13:15 · Поправил: 452 · Личное сообщение · #11 |
|
Создано: 20 августа 2006 13:30 · Личное сообщение · #12 |
|
Создано: 20 августа 2006 14:27 · Личное сообщение · #13 |
|
Создано: 20 августа 2006 15:03 · Поправил: 452 · Личное сообщение · #14 00635748 |. E8 93F9FFFF CALL Ccalc222.006350E0 Здесь вся инфа в зборе готова для замены! Типа ета инфа 0012FAF8 01A44118 ASCII "TRIADA-3DFA8605" 0012FAFC 7C913901 ntdll.7C913901 0012FB00 00393202 0012FB04 775F3201 ole32.775F3201 0012FB08 01A4C510 ASCII "14DD1C29" 0012FB0C 00000001 0012FB10 01A440F8 ASCII "S01RJ10XA09534" 0012FB14 01A440D8 ASCII "SAMSUNG SV0411N" 0012FB18 01A4C528 ASCII "UA100-11" |
|
Создано: 20 августа 2006 15:15 · Поправил: 452 · Личное сообщение · #15 От блин я немогу с такой защити здесь все просто то как мне жаль те 4 недели што я взламывал ету смешную защиту. Здесь все по алоритму счиается ево я незнаю но могу сказать только одно если правильно 0012FB08 или 0012FAF8 ето то прога работает. Там не нужно всю инфу пихать а только одину из правильных. |
|
Создано: 20 августа 2006 15:20 · Личное сообщение · #16 |
|
Создано: 20 августа 2006 18:48 · Личное сообщение · #17 |
|
Создано: 20 августа 2006 21:26 · Личное сообщение · #18 452 Хм. Я думаю, ты еще в школе учишься? Ты б на правописание приналег. Я редко это замечаю, но уж очень много у тебя ошибок. Напиши понятно, чо подставил. Я пробовал подставлять твою инфу - не пашет. То, что ты скинул в личку - куча ненужного хлама. Нужны данные, которые видны в проге при запуске, и нужен рабочий серийник к этим данным. 14DD1C29 - это не номер винта. Я не знаю, чо эт. Надо долго трейсить, может позже. От блин я немогу с такой защити здесь все просто то как мне жаль те 4 недели што я взламывал ету смешную защиту. 00404EB6 74 09 JE SHORT Ccalc.00404EC1 ; C2_JE - измени на JNE и наслаждайся "тупой защитой". Ключ проверяется при любом клике. Круто? Если есть возможность, то забей в прогу правильные данные и ключ и сделай скрин. Скрин в личку. 2ALL Чо делают команды FISTР, FILD ? Чота раньше как-то без них обходилось. |
|
Создано: 21 августа 2006 11:23 · Личное сообщение · #19 stahh пишет: 452 Я думаю, ты еще в школе учишься? Да с Украины он и прога эта украинского разлива --------------------------------------------- А зачем обязательно курочить ntdll и kernel32 - можно внутри проги все исправить. Для гарантии поставить бряк на все информационные функции и убедится, что они нигде больше не вызываются. Это проще, хоть и дольше. |
|
Создано: 21 августа 2006 12:29 · Личное сообщение · #20 |
|
Создано: 21 августа 2006 12:45 · Личное сообщение · #21 |
|
Создано: 21 августа 2006 20:52 · Личное сообщение · #22 Та версия, что у меня - 6.98.34, другую не вытяну. Не знаю, как у вас, но у меня прога запускается с ошибками, потом показывает главное окно, а потом вылазит окно регистрации. Если убить таймер, то прога запускается полу-рабочая. Так шо - или от версии зависит, или исчо чота юзается. А зачем обязательно курочить ntdll и kernel32 - можно внутри проги все исправить. Я и имел ввиду внутри проги, но лоадер должен будет трейсить прогу в кернел до записи числа или имени. Потому что запись в стек происходит не в проге. И исчо одно, не знаю от чего это зависит, но прога иногда пишет не по тем адресам, что всегда. Вчера, например, писала на 100 байт дальше, а седня - там где и раньше. И хто-нить ответит, чо делают команды FISTР, FILD? А чтоб не было скучно отвечать, ставьте бряк по адресу 63122а и трейсите по Ф7. Или, если адреса не совпадают вот кусок кода 006311DA |. B9 7C1B6300 MOV ECX, Ccalc.00631B7C ; ASCII "Ccalc.ini" 006311DF |. E8 DC3EDDFF CALL Ccalc.004050C0 006311E4 |. 8B8D E4FEFF>MOV ECX, [LOCAL.71] 006311EA |. B2 01 MOV DL, 1 006311EC |. A1 3CBB4200 MOV EAX, DWORD PTR DS:[4> 006311F1 |. E8 FEA9DFFF CALL Ccalc.0042BBF4 006311F6 |. 8945 F8 MOV [LOCAL.2], EAX 006311F9 |. 6A 01 PUSH 1 006311FB |. B9 901B6300 MOV ECX, Ccalc.00631B90 ; ASCII "CurLanguageId" 00631200 |. BA A81B6300 MOV EDX, Ccalc.00631BA8 ; ASCII "Common" 00631205 |. 8B45 F8 MOV EAX, [LOCAL.2] ; kernel32.7C816D58 00631208 |. 8B18 MOV EBX, DWORD PTR DS:[E> 0063120A |. FF53 08 CALL NEAR DWORD PTR DS:[E>; Ccalc.00400000 0063120D |. 8BD0 MOV EDX, EAX 0063120F |. 8B45 FC MOV EAX, [LOCAL.1] 00631212 |. E8 910F0000 CALL Ccalc.006321A8 00631217 |. 6A 00 PUSH 0 00631219 |. 8D85 E0FEFF>LEA EAX, [LOCAL.72] 0063121F |. 50 PUSH EAX 00631220 |. BA A81B6300 MOV EDX, Ccalc.00631BA8 ; ASCII "Common" 00631225 |. B9 B81B6300 MOV ECX, Ccalc.00631BB8 ; ASCII "C2" 0063122A |. 8B45 F8 MOV EAX, [LOCAL.2] ; kernel32.7C816D58 0063122D |. 8B18 MOV EBX, DWORD PTR DS:[E> 0063122F |. FF13 CALL NEAR DWORD PTR DS:[E>; СЮДА БРЯК ЗЫ. Я, мiж iншiм, тоже с Украины. Это оправдывает незнание русского языка? А newborn пишет грамотно |
|
Создано: 21 августа 2006 21:51 · Личное сообщение · #23 stahh Насчёт команд FISTР, FILD я тоже хз, встретил их только в этой проге, раньше не видел. Завтра качну прогу посмотрю чё там по адресу 63122а, я это в тот раз заметил ещё. 452 За инфу срасибо, завтра качну. З.Ы. stahh пишет: ЗЫ. Я, мiж iншiм, тоже с Украины. Это оправдывает незнание русского языка? А newborn пишет грамотно Я тоже с Украины, просто перед тем как постить я читаю и иногда исправляю ошибки, в мирке и аське просто пишу не думая про ошибки. Так шо панове, не засмучуйтесь, вчить мову і все буде добре !!! ----- ~ the Power Of Reversing team ~ |
|
Создано: 21 августа 2006 22:35 · Личное сообщение · #24 stahh пишет: Чо делают команды FISTР, FILD ? Из справочника "Ассемблер" Юрова: Команда fistp позволяет выполнить преобразование значения (вещественный расширенный формат) из вершины стека сопроцессора в соответствующее округленное целое значение для того, чтобы с ним могли работать команды основного процессора. Производится выталкивание значения из вершины стека сопроцессора. Команда fild преобразует целое значение в вещественный расширенный формат для того, чтобы с ним впоследствии могли работать команды сопроцессора. |
|
Создано: 22 августа 2006 15:02 · Личное сообщение · #25 Сухой остаток. Ищем вызов GlobalMemoryStatus. Тот что в программе проверки (перед ним вызов GetComputerNameA) 006355C3 |. 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30] ; | 006355C6 |. 50 PUSH EAX ; |Buffer = NULL 006355C7 |. E8 F01FDDFF CALL <JMP.&kernel32.GetComputerNam>; \GetComputerNameA 006355CC |. 85C0 TEST EAX,EAX 006355CE |. 0F84 D7030000 JE 006359AB 006355D4 |. 8D85 84FDFFFF LEA EAX,DWORD PTR SS:[EBP-27C] 006355DA |. 50 PUSH EAX ; /pMemStat = 017CC4F8 006355DB |. E8 F420DDFF CALL <JMP.&kernel32.GlobalMemorySt>; \GlobalMemoryStatus 006355E0 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] Этих вызов в программе всего 2 - 2-й наш. Сразу после вызова можно правитьинформацию. Серийник диска С извлекается из DWORD PTR SS:[EBP-4] Достаточно регистр EAX правильно присвоить, но можно и DWORD PTR SS:[EBP-4] исправить. Легко заметить, что имя компа в буфере, адрес которого в DWORD PTR SS:[EBP-30] Кстати, и адрес [EBP-4] легко определяется. Просто стек заполняется для функции GetVolumeInformationA, а потом вызывают функцию для построения строки "С:\" и ее адрес кладется на стек. Т.е. можно сделать универсальный патч, через хук, если конечно все параметры не меняются в Виндах. Кстати, все функции из kernel32 ( ntdll - по ошибке вклинилась). Чтобы не было путаницы серийник - 14DD1C29 , а имя компа TRIADA-3DFA8605 В ini-файле надо прописать длинный номер, который здесь 2 раза уже повторяли. Проверил на версии 6.98.34 и 41 Сейчас буду патч готовить ( для 41-й). |
|
Создано: 22 августа 2006 16:00 · Личное сообщение · #26 tundra37 пишет: Проверил на версии 6.98.34 и 41 Сейчас буду патч готовить ( для 41-й). Только что скачал но ещё не смотрел, нету под рукой всякого "добра". Ты как сделаеш патч, дай мну на чистой машине потестить, и если не сложно что где патчил опесать. Если до вечера не сделаеш я попробую по твоей методике. ----- ~ the Power Of Reversing team ~ |
|
Создано: 22 августа 2006 16:30 · Личное сообщение · #27 newborn Продолжаю рассказ. 006355E0 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] В этом месте ставим JMP 6424f0 - там идут нули заполняющие второй кодовый сегмент в файле. А по адресу 6424f0 MOV EAX, dword [ebp-30] MOV dword[EAX],41495254 (TRIA - вывернутая задом наперед) MOV dword[EAX+4],........... MOV dword[EAX+8],........... MOV dword[EAX+С],........... MOV EAX,14DD1C29 XOR EDX,EDX JMP 006355E5 Записать все изменения в олли сразу не получается, т.к. правим в двух сегментах. Но с двух раз - нормально. Сейчас в личку кину ссылку на готовый патч. В версии 6.98.34 адрес такой 006332A8 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] Место в сегменте есть , адрес будет 0063F4F0 ++++++++++++++++++++++++++++++++ Только сейчас сообразил. Эта правка, просто другой вариант моей правки. Естественно более правильный, т.к. мы подставили правильные цифры. Но вот все ли подставили - это большой вопрос. Кстати с GlobalMemoryStatus тоже все понятно, вот только там наверняка динамические цифры есть, которые не стоит подставлять и есть зависимость динамических и статических величин. |
|
Создано: 22 августа 2006 20:49 · Личное сообщение · #28 tundra37 Похоже, с подставой проверки ты разобрался. Не знаю, у мну версия другая. Пусть другие проверят. Но вопрос с кряком остается. Думаю, что на других системах патч работать не будет. Стек-такая хрень... А может и будет. Что плохо, так я смотрю они новые билды клепают быстро. Если патч работает, то думаю тему можно закрывать. У меня если время будет, буду ковырять на предмет отключения проверки. Хотя вот этот кусок наводит на мысль, что это не так просто. 004030DC $ 39D0 CMP EAX, EDX ; C2???? 004030DE . 74 31 JE SHORT Ccalc.00403111 004030E0 . 83F9 20 CMP ECX, 20 ; Switch (cases 0..20) 004030E3 . 77 7C JA SHORT Ccalc.00403161 004030E5 . 83E9 08 SUB ECX, 8 004030E8 . 7F 07 JG SHORT Ccalc.004030F1 004030EA . FF248D 3431400>JMP NEAR DWORD PTR DS:[ECX*4+403134] 004030F1 > DF2C01 FILD QWORD PTR DS:[ECX+EAX] 004030F4 . DF28 FILD QWORD PTR DS:[EAX] 004030F6 . 83F9 08 CMP ECX, 8 004030F9 . 7E 11 JLE SHORT Ccalc.0040310C 004030FB . DF68 08 FILD QWORD PTR DS:[EAX+8] 004030FE . 83F9 10 CMP ECX, 10 00403101 . 7E 06 JLE SHORT Ccalc.00403109 00403103 . DF68 10 FILD QWORD PTR DS:[EAX+10] ; Cases 19,1A,1B,1C,1D,1E,1F,20 of switch 004030E0 00403106 . DF7A 10 FISTP QWORD PTR DS:[EDX+10] 00403109 > DF7A 08 FISTP QWORD PTR DS:[EDX+8] ; Cases 11,12,13,14,15,16,17,18 of switch 004030E0 0040310C > DF3A FISTP QWORD PTR DS:[EDX] ; Cases 9,A,B,C,D,E,F,10 of switch 004030E0 0040310E . DF3C11 FISTP QWORD PTR DS:[ECX+EDX] 00403111 > C3 RETN |
|
Создано: 22 августа 2006 23:25 · Личное сообщение · #29 tundra37 Хм, странно, твой патч у меня прописывает кое-какие данные, но прога не запускается, тоесть появляется то окно наговское и всё, у тебя так же ? Имхо насколько я помню я тогда патчил один байт для того что б она запустилась, в этой версии на 41 заканчивается совсем намучено что-то с этой процедурой, патчу как тогда нечё не реагирует. Вообщем хз, я как вижу эту прогу меня в дрож бросает. ----- ~ the Power Of Reversing team ~ |
|
Создано: 23 августа 2006 13:42 · Личное сообщение · #30 |
|
Создано: 23 августа 2006 14:30 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . >> |
eXeL@B —› Крэки, обсуждения —› Ccalc6.80 |
Эта тема закрыта. Ответы больше не принимаются. |