Сейчас на форуме: (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Исследование проги на Делфи. Куда двигаться дальше?
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 13:06 · Поправил: byOstaff
· Личное сообщение · #1

Здравствуйте, уважаемые товарищи специалисты реверсинга! После того, как изложу вопрос, сильно не пинайте, ведь я совсем новичек в этом деле ;) Итак, оговорился я как-то раз, что типа "крэкер" (конечно, не тот, что в пачке и на полке в магазине ;))) ) ну, естественно, меня и попросили об услуге реверсинга. Я чтоб не обламываться взял и согласился, блин. Мне объяснили задачу и я наспех сделал вывод - легко! А задача состаяла в том, чтобы убрать надоедливое сообщение (MessageBoxW) о том, что используется триал-версия программы. По порядку. Программа называется Jigsaw Puzzle Creator (jpc.exe - объект исследования, написан на Делфи и ничем не упакован) от разработчика Casperlab Software. С помощью этой программы можно создавать пазлы из картинок и сохранять созданую пазл-игру в отдельный exe-шник (упаковывает его), в котором рамдомно и выскакивает этот MessageBox, если программа триальна. Сначала я думал, что игра создается из jigsaw.exe - по идеи автора будто так и должно быть, даже если запустить этот ехе-шник, то рамдомно выскакивает это самое сообщение. Поэтому я и решил, что будет легко, именно поэтому, сняв с него все то, что напялил разработчик - UPX 1.xx-2.0 - я первым сунул в Оллю его (прям эротика получается ;) ). QUnpack показал:
Opened jigsaw.exe
Quick self analyze.... UPX 1.xx-2.0
PESniffer EP Scan: UPX v0.89.6 - v1.02 / v1.05 -v1.22 (Delphi) stub
PEiD scanning... UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
Вдоволь начитавшись мануалов по крэкингу я все-таки нашел тот джамп, который вызывает процедуру генерации MessageBox по адресу 0054F0EF, вот:
Code:
  1. 0054F0EF     7E 15    JLE SHORT jigsaw.0054F106

Для отмены сообщения я изменил код на:
Code:
  1. 0054F0EF     EB 15    JMP SHORT jigsaw.0054F106

И в этот момент я подумал, что стал супер-пупер крекером и быстренько запустил jpc.exe, создал новый пазл, нажал "Build EXE" и полез искать только-что созданную игру. Какое было разочарование, когда игра снова показала это надоедливое сообщение... Выяснил, что прога просто проверяет на существование jigsaw.exe, даже если подменить файл, она достанет из ресурсов свой ехе-шник. А может я ошибаюсь. И тут начались бессонные ночи ;) Мои дальнейшие действия. В About'е программы есть label с текстом "Evaluation version", а в заголовке надпись [Shareware]. Было бы легче найти код проверки на валидность рег.кода, если б триал закончился и можно было бы отлавливать сообщение о неправильном рег.коде. Но так и непонял, куда пишет дату. Пробовал Filemon7.03 - ничего такого не заметил, а Regmon_v7.04 вообще отказывается запускаться, пишет ошибку "Отказано в доступе. Убедитесь в том, что ваша учетная запись имеет права на загрузку драйверов и не запущен ли уже RegMon [перевод]", хотя на компе (WinXP SP3) только одна админ.учетка. Не знаю, что это может быть. Потом пробовал отловить вызов формы - модального окна - (возможно ли вообще такое?), чтоб уже потом найти код, который генерит эту надпись "Evaluation version" в About'e. Искал зацепки по API-функциям типа CreateWindow, ShowWindow и т.д. Потом пытался найти код, который пишет в заголовок всякую чушь, типа "Шаровары" - бесполезно. Но оказалось не под силу - потерял много времени и сил (моя жена была от меня в шоке, она до сих пор думает, что я не спал 3 сутки подряд ;))).
Но я такой настойчивый, что просто дальше - некуда, вот и привела моя наивность на КрэкЛаб, который давно уже забит в закладках браузера. Подскажите, пожалуйста, с чего начать двигаться, где искать, толкните носом, что хотите, то и делайте со мной, но только помогите, чтоб я мог насладиться расправой над этой софтиной. Вот.
P.S. Извините, совсем забыл за программу...
Вот ссыль, надеюсь таже сборка, что и уменя (№63)
Скачать Jigsaw Puzzle Creator (6.89 Мб)
Скачать jigsawcreator.exe (~7 MB) - везде пишут, что версия 2.02




Ранг: 147.7 (ветеран), 50thx
Активность: 0.120
Статус: Участник
sv_cheats 1

Создано: 21 августа 2010 13:18
· Личное сообщение · #2

Для начала, выложите саму программу.



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 13:34
· Личное сообщение · #3

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



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 21 августа 2010 14:14
· Личное сообщение · #4

я попробовал по ссылке и вроде качает

Не качает.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 14:18
· Личное сообщение · #5

ProcessMonitor.v2.7 тоже не работает, пишет ошибку "Невозможно загрузить драйвер устройства"...
Сейчас декомпилил с помощью SourceRescuer.exe (шустрый, собака), есть адреса процедур, продолжаем исследование. Будут новости - отпишусь. А пока вопрос: можно ли вызвать вместо одной формы другую? Т.е., например, кликаешь на About, а выводится форма для регистрации вместо формы "О программе"? Пробовал через РесурсХакер подменивать - прога ругается на отсутствие формы



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 14:20 · Поправил: byOstaff
· Личное сообщение · #6

gena-m пишет:
Не качает.

Щас найду другую ссылку. В разделе "О программе" у меня пишет версию 2.02, build #63
Обновил первый пост. Вторая ссылка ведет на сайт разработчика, названия ехе-шника такое как и у меня, надеюсь таже версия




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 21 августа 2010 14:41
· Личное сообщение · #7

Стандартный борландовский Randomize генератор
/*402BB0*/ ADD ESP,-8
/*402BB3*/ PUSH ESP
/*402BB4*/ CALL 00401408
/*402BB9*/ TEST EAX,EAX
/*402BBB*/ JE SHORT 00402BC8
/*402BBD*/ MOV EAX,[ESP]
/*402BC0*/ MOV [521008],EAX========> записываем рамндомное число
/*402BC5*/ POP ECX
/*402BC6*/ POP EDX
/*402BC7*/ RETN
/*402BC8*/ CALL 00401410
/*402BCD*/ MOV [521008],EAX
/*402BD2*/ POP ECX
/*402BD3*/ POP EDX
/*402BD4*/ RETN

/*51AE8A*/ MOV EAX,0A=======>рамдомное число от 0...A
/*51AE8F*/ CALL 00402EBC====>матем. преоброзование из рандомного числа получегонного генератором
/*51AE94*/ CMP EAX,4========> если чило меньше 4 то
/*51AE97*/ JLE SHORT 0051AEAE==> сообщение о шароварне не появится
/*51AE99*/ PUSH 0============>начало кода вызывающего сообщение о регистрации
/*51AE9B*/ MOV CX,[51B074]
/*51AEA2*/ MOV DL,2
/*51AEA4*/ MOV EAX,51B080
/*51AEA9*/ CALL 00437108

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 14:41
· Личное сообщение · #8

Процедуры в форме регистрации и их адреса:

procedure TfmRegister.btnOKClick(Sender: TObject);
begin
// Address $56AF8C
end;

procedure TfmRegister.edRegistrationNameChange(Sender: TObject);
begin
// Address $56B4FC
end;



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 14:44 · Поправил: byOstaff
· Личное сообщение · #9

ClockMan, а как обнаружил само место генерации и регистрации? В каком ехе-шнике?
У меня в Олли по адресу 0051AE94 вообще не то в обоих ехе-шниках
А вот что Олли показывает по этому участку:
Code:
  1. 0051AE86   8D1CC9           LEA EBX,[DWORD DS:ECX+ECX*8]
  2. 0051AE89   8B75 08          MOV ESI,[DWORD SS:EBP+8]
  3. 0051AE8C   8B76 FC          MOV ESI,[DWORD DS:ESI-4]
  4. 0051AE8F   29549E 08        SUB [DWORD DS:ESI+EBX*4+8],EDX
  5. 0051AE93   2955 F4          SUB [DWORD SS:EBP-C],EDX
  6. 0051AE96   0155 F8          ADD [DWORD SS:EBP-8],EDX
  7. 0051AE99   837D F4 00       CMP [DWORD SS:EBP-C],0
  8. 0051AE9D   74 06            JE SHORT jigsaw_c.0051AEA5
  9. 0051AE9F   49               DEC ECX
  10. 0051AEA0   83F9 FF          CMP ECX,-1
  11. 0051AEA3  ^75 B4            JNZ SHORT jigsaw_c.0051AE59
  12. 0051AEA5   8B45 F8          MOV EAX,[DWORD SS:EBP-8]
  13. 0051AEA8   5E               POP ESI
  14. 0051AEA9   5B               POP EBX
  15. 0051AEAA   8BE5             MOV ESP,EBP

====
может у меня не правильно настроен отладчик?



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 21 августа 2010 15:17
· Личное сообщение · #10

может у меня не правильно настроен отладчик?
Скорее всего разные сборки или версии у меня тоже с вами обоими ничего не совпадает, поэтому видимо прийдется выложить программу которая у тебя установлена, либо ищи по сигнатурам эти места.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 15:25 · Поправил: byOstaff
· Личное сообщение · #11

Попробую поискать. А не могли бы вы промониторить на факт записи в реестр дату установки? Просто у меня ProcessMonitor.v2.7 отказывается мониторить вообще все процессы, т.е. просто чистое поле в окне. И как вам удалось найти эти места так быстро?



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 16:19
· Личное сообщение · #12

ClockMan, а вы навели код из какого ехе-шника?



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 16:21
· Личное сообщение · #13

Может ли кто промониторить программу на факт записи в реестр дату установки? Заранее благодарен!



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 16:35 · Поправил: byOstaff
· Личное сообщение · #14

Кажется нашел генерацию случайных чисел:
Code:
  1. 00402BD8  /$ 83C4 F8        ADD ESP,-8
  2. 00402BDB  |. 54             PUSH ESP                                 ; /pPerformanceCount
  3. 00402BDC  |. E8 17E8FFFF    CALL <JMP.&kernel32.QueryPerformanceCoun>; \QueryPerformanceCounter
  4. 00402BE1  |. 85C0           TEST EAX,EAX
  5. 00402BE3  |. 74 0B          JE SHORT jpc.00402BF0
  6. 00402BE5     8B0424         MOV EAX,[DWORD SS:ESP]
  7. 00402BE8     A3 08E05B00    MOV [DWORD DS:5BE008],EAX
  8. 00402BED  |. 59             POP ECX
  9. 00402BEE  |. 5A             POP EDX
  10. 00402BEF  |. C3             RETN
  11. 00402BF0  |> E8 0BE8FFFF    CALL <JMP.&kernel32.GetTickCount>        ; [GetTickCount
  12. 00402BF5  |. A3 08E05B00    MOV [DWORD DS:5BE008],EAX
  13. 00402BFA  |. 59             POP ECX
  14. 00402BFB  |. 5A             POP EDX
  15. 00402BFC  \. C3             RETN

===
это оно?
===
Подменил формы - теперь вместо формы About вызывается форма Регистрации. Поменял джамп и теперь после ввода любых данных пишет "Спасибо за регистрацию!", но... но программа всеравно остается триальной... Пытаюсь найти код проверки на триальность, но мало что получается. Помогите с поиском, пожалуйста!
===
Удалите последний мой пост




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 21 августа 2010 17:08
· Личное сообщение · #15

Пользуйся кнопкой Правка, не плоди ненависть, а.



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 18:52 · Поправил: byOstaff
· Личное сообщение · #16

А вот и код, который генерирует серийник:
Code:
  1. 0040474C   53                     push    ebx
  2. 0040474D   56                     push    esi
  3. 0040474E   57                     push    edi
  4. 0040474F   89C6                   mov     esi, eax
  5. 00404751   89D7                   mov     edi, edx
  6. 00404753   39D0                   cmp     eax, edx
  7. 00404755   0F848F000000           jz      004047EA
  8. 0040475B   85F6                   test    esi, esi
  9. 0040475D   7468                   jz      004047C7
  10. 0040475F   85FF                   test    edi, edi
  11. 00404761   746B                   jz      004047CE
  12. 00404763   8B46FC                 mov     eax, [esi-$04]
  13. 00404766   8B57FC                 mov     edx, [edi-$04]
  14. 00404769   29D0                   sub     eax, edx
  15. 0040476B   7702                   jnbe    0040476F
  16. 0040476D   01C2                   add     edx, eax
  17. 0040476F   52                     push    edx
  18. 00404770   C1EA02                 shr     edx, $02
  19. 00404773   7426                   jz      0040479B
  20. 00404775   8B0E                   mov     ecx, [esi]
  21. 00404777   8B1F                   mov     ebx, [edi]
  22. 00404779   39D9                   cmp     ecx, ebx
  23. 0040477B   7558                   jnz     004047D5
  24. 0040477D   4A                     dec     edx
  25. 0040477E   7415                   jz      00404795
  26. 00404780   8B4E04                 mov     ecx, [esi+$04]
  27. 00404783   8B5F04                 mov     ebx, [edi+$04]
  28. 00404786   39D9                   cmp     ecx, ebx
  29. 00404788   754B                   jnz     004047D5
  30. 0040478A   83C608                 add     esi, +$08
  31. 0040478D   83C708                 add     edi, +$08
  32. 00404790   4A                     dec     edx
  33. 00404791   75E2                   jnz     00404775
  34. 00404793   EB06                   jmp     0040479B
  35. 00404795   83C604                 add     esi, +$04
  36. 00404798   83C704                 add     edi, +$04
  37. 0040479B   5A                     pop     edx
  38. 0040479C   83E203                 and     edx, +$03
  39. 0040479F   7422                   jz      004047C3
  40. 004047A1   8B0E                   mov     ecx, [esi]
  41. 004047A3   8B1F                   mov     ebx, [edi]
  42. 004047A5   38D9                   cmp     cl, bl
  43. 004047A7   7541                   jnz     004047EA
  44. 004047A9   4A                     dec     edx
  45. 004047AA   7417                   jz      004047C3
  46. 004047AC   38FD                   cmp     ch, bh
  47. 004047AE   753A                   jnz     004047EA
  48. 004047B0   4A                     dec     edx
  49. 004047B1   7410                   jz      004047C3
  50. 004047B3   81E30000FF00           and     ebx, $00FF0000
  51. 004047B9   81E10000FF00           and     ecx, $00FF0000
  52. 004047BF   39D9                   cmp     ecx, ebx
  53. 004047C1   7527                   jnz     004047EA
  54. 004047C3   01C0                   add     eax, eax
  55. 004047C5   EB23                   jmp     004047EA
  56. 004047C7   8B57FC                 mov     edx, [edi-$04]
  57. 004047CA   29D0                   sub     eax, edx
  58. 004047CC   EB1C                   jmp     004047EA
  59. 004047CE   8B46FC                 mov     eax, [esi-$04]
  60. 004047D1   29D0                   sub     eax, edx
  61. 004047D3   EB15                   jmp     004047EA
  62. 004047D5   5A                     pop     edx
  63. 004047D6   38D9                   cmp     cl, bl
  64. 004047D8   7510                   jnz     004047EA
  65. 004047DA   38FD                   cmp     ch, bh
  66. 004047DC   750C                   jnz     004047EA
  67. 004047DE   C1E910                 shr     ecx, $10
  68. 004047E1   C1EB10                 shr     ebx, $10
  69. 004047E4   38D9                   cmp     cl, bl
  70. 004047E6   7502                   jnz     004047EA
  71. 004047E8   38FD                   cmp     ch, bh
  72. 004047EA   5F                     pop     edi
  73. 004047EB   5E                     pop     esi
  74. 004047EC   5B                     pop     ebx
  75. 004047ED   C3                     ret


====

А вот и регистрационные данные:
Code:
  1. 0012F360   00D04FC4  ASCII "ostap"
  2. 0012F364   00D6DB98  ASCII "6516-5519-2789-9379"

====
п.с. Все-таки никак НЕ получается найти код проверки на ТРИАЛ. Помогите, пожалуйста.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 21 августа 2010 18:54
· Личное сообщение · #17

byOstaff да, это функция Randomize();

-----
[nice coder and reverser]




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 21:52
· Личное сообщение · #18

Поиск по форуме не работает. Как поборать такую уловку: "fb:c++hook" вначале программы? И еще "Access violation" тоже иногда попадается. Где-то видел, но не помню где именно. В гугле не нашел. Подскажите, пожалуйста




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 21 августа 2010 22:04
· Личное сообщение · #19

byOstaff пишет:
Как поборать такую уловку: "fb:c++hook" вначале программы?

дык, так это у тя програма написана на борландовском билдере, а не на делфи

-----
Лучше быть одиноким, но свободным © $me




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 22:26
· Личное сообщение · #20

BoRoV пишет:
Как побороть такую уловку: "fb:c++hook" вначале программы? дык, так это у тя програма написана на борландовском билдере, а не на делфи

Наверное, я не знаю. Это игры из серии Хорина Максима. Думал потренироваться, вроде чистый код, но облом( а как прорваться через эти "защиты" пока не знаю.. Подскажешь?




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 21 августа 2010 22:59
· Личное сообщение · #21

бгг... какие защиты. это просто другой компилятор от той же самой конторы, код чистый, сиди и колупай

-----
Лучше быть одиноким, но свободным © $me




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 августа 2010 23:50 · Поправил: byOstaff
· Личное сообщение · #22

BoRoV пишет:
бгг... какие защиты. это просто другой компилятор от той же самой конторы, код чистый, сиди и колупай

но в том то и дело, что колупать не дает вот такое начало в ОЕР + в гугле об этом вышел только на один забугорный сайт, а поиск по форуме не работает (




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 22 августа 2010 00:45
· Личное сообщение · #23

и чем оно вам не дает, за руки держит ?
попробуй поищи что-то типо такого "reversing borland c++ builder "

-----
Лучше быть одиноким, но свободным © $me





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 22 августа 2010 09:40
· Личное сообщение · #24

byOstaff
Да это чисто триальная версия зарегать её никак неполучится код который я привадил выше принадлежит самой игре. файлы при компиляции и берутся с контейнира player.dat,там четыри ехе.
впринципе их можно пропатчить и запехнуть обратно тогда игра будет запускатся без вызова мессаги
slil.ru/29586226

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 августа 2010 11:32
· Личное сообщение · #25

ClockMan, эм... твой архив запаролен, пароль "cracklab.ru" не катит)
п.с. Объясни, чем распаковал этот DAT-файл??? Пробовал просто переименовать в *.zip, *.rar, *.7z - неа, эффекта ноль




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 22 августа 2010 11:48
· Личное сообщение · #26

byOstaffbyOstaff пишет:
м... твой архив запаролен, пароль "cracklab.ru" не катит)

У тебя в личке
byOstaff пишет:
объясни, чем распаковал этот DAT-файл???

WinHex плюс руки

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 августа 2010 12:42 · Поправил: byOstaff
· Личное сообщение · #27

WAW!!! Вот теперь прожка работает как нужно! Спасибо, ClockMan!!! Но у меня еще одна маленькая просьба - можно краткое объяснение как ты это сделал? Всего одна просьба)
п.с. кнопки "спасибо" и т.п. не нашел(




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 22 августа 2010 13:04 · Поправил: ClockMan
· Личное сообщение · #28

byOstaff пишет:
Но у меня еще одна маленькая просьба - можно краткое объяснение как ты это сделал?

Ну вытащил файлы с player.dat посмотрел какой версией UPX упаковн и с каким степенем сжатия расспаковал пропатчил где наг вылазиет и запоковал обратно с темеже атрибутами и получил файл такогоже размера запихал обратно с помощью WinHex
Как - то так

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 августа 2010 13:27
· Личное сообщение · #29

ClockMan пишет:
Ну вытащил файлы с player.dat посмотрел какой версией UPX упаковн и с каким степенем сжатия расспаковал пропатчил где наг вылазиет и запоковал обратно с темеже атрибутами и получил файл такогоже размера запихал обратно с помощью WinHex Как - то так

Это вроде бы все понятно, но я так и не могу понять, как можна распаковать этот файл с помощью НЕХ-редактора? Вот что именно не понятно. И как ты с помощью этого же редактора запихнул назад файл? Я использую или НЕХ-редактор Олли, или же HIEW, но понятия не имею, как ими можна такое делать???




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 22 августа 2010 13:40
· Личное сообщение · #30

byOstaff пишет:
ак можна распаковать этот файл с помощью НЕХ-редактора

Там файлы в открытом виде лежат скопировал WinHex,ом в новый файл сделал дело и запихал обратно чего непонятного?

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.



. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Исследование проги на Делфи. Куда двигаться дальше?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати