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

 eXeL@B —› Протекторы —› Декомпилятор ВМ
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 23 . 24 . >>
Посл.ответ Сообщение


Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 03 марта 2010 12:33
· Личное сообщение · #1

Вашему вниманию предлагаются наработки по декомпиляции ВМ.
Проект на сегодняшний день для меня завершен, но жаль если результат "ляжет на полку", может кому-нибудь и пригодится. Предлагаю сначала ознакомиться с обзором, и если будет интерес то могу выложить и сам плагин, или здесь или в личку заинтересованным лицам, каким образом, пока ещё не решил...
Но если кто-либо ожидает увидеть "автоматическое чудо", то сразу скажу - его нет. Для того чтобы получить результат нужна ручная предварительная работа:
- с исследуемой программы должна быть снята упаковка
- точки входа в ВМ находятся вручную
- возможно неоднократное "жамкание" клавиш в OllyDbg, а возможно и модификация кода, чтобы попасть в нужное место, в зависимости от защищенной функции
- необходимо вручную прицепить к программе требуемый секцию
- запись результатов в файл это тоже ручная работа, но уже более приятная

Не всё гладко обстоит с определением реализаций ВМ, на сегодняшний день примерно каждая третья реализация автоматом не определяется, приходится под неё модернизировать плагин, т.к. не могу сразу предусмотреть все случаи "издевательств" ВМ с кодом примитивов. Лучше дела с восстановлением "исходного" кода защищенных функций - 70% нормально восстанавливается, хотя во многом это зависит от самой структуры функции. Таким образом, если будет заинтересованность и помощь в нахождении подобных ситуаций, то проект может быть доведен до релизной стадии.

ЗЫ: Речь идет об Ореановских машинах. Нигде специально не упоминал.

9c41_03.03.2010_CRACKLAB.rU.tgz - VMSweeperLst.rar

-----
Everything is relative...




Ранг: 35.4 (посетитель), 15thx
Активность: 0.020
Статус: Участник

Создано: 02 августа 2011 10:15
· Личное сообщение · #2

Vamit
вот файл

8b66_02.08.2011_EXELAB.rU.tgz - MetaLang.zip




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 03 августа 2011 11:13
· Личное сообщение · #3

Новая версия VMSweeper v1.4 beta 13

Исправлено:
1. Ошибка переполнения текстового буфера при формировании длинных выражений, что приводило к исключению на стадии анализа кода.

-----
Everything is relative...


| Сообщение посчитали полезным: Gideon Vi, Ultras, huckfuck, daFix, obfuskator, SReg, neprovad, m0bscene, _ruzmaz_, NikolayD, ClockMan, BAHEK, TrueLies, Yotun, DimitarSerg

Ранг: 35.4 (посетитель), 15thx
Активность: 0.020
Статус: Участник

Создано: 03 августа 2011 21:41 · Поправил: neprovad
· Личное сообщение · #4

Vamit
в предыдущем файле, выложенном мной, на адресе
Code:
  1. 00406251  JMP MetaLang.0048CFE3
находится переход в vm как я могу судить по своим знаниям. На этом eip плагин выдает что не может распознать вм. Можно ли бороться с такой ошибкой своими силами или нет?

Добавление:
При подпытке декомпиляции с адреса 41517E выдается ошибка "unknown identifier in mov byte ptr ds:[rvm_30], 0xFD" Как быть с такой ситуацией?
Code:
  1. ++++++++++++++++++++++++++++++++++++
  2.   Section a12 final
  3. ++++++++++++++++++++++++++++++++++++
  4. 00152B72: esp = esp + 4
  5. 00152C56: esi = [esi + 0x00000164]
  6. 00152CDB: bl = [esi + 0x00000198]
  7. 00152CE8: test bl, bl
  8. 00153110: jnz 0x00158A75
  9. 0015326E: eax = [edx + 0x0000010C]
  10. 00153277: test eax, eax
  11. 0015371F: [rvm_30] = 0xFD
  12. 00155111: call 0x00413660
  13. 00155243: [ebx + 1] = al
  14. 00155F63: call 0x00413660
  15. 00156D91: [ebx + 2] = al
  16. 00158787: call 0x00413660
  17. 001588CC: [ebx + 3] = al
  18. 00158A75: label_158A75:
  19. 00159625: jmp 0x004151C4
  20. ++++++++++++++++++++++++++++++++++++
  21.   Section asm
  22. ++++++++++++++++++++++++++++++++++++
  23.  
  24. 00152B72: lea esp, dword ptr [esp + 4]
  25. 00152C56: mov esi, dword ptr [esi + 0x00000164]
  26. 00152CDB: mov bl, byte ptr [esi + 0x00000198]
  27. 00152CE8: test bl, bl
  28. 00153110: jnz 0x004151EA
  29. 0015326E: mov eax, dword ptr [edx + 0x0000010C]
  30. 00153277: test eax, eax
  31. 0015371F: mov byte ptr ds:[rvm_30], 0xFD


215a_03.08.2011_EXELAB.rU.tgz - 406251.trc



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 04 августа 2011 05:19
· Личное сообщение · #5

Что-то не доступен rghost у кого есть VMSweeper v1.4 beta 13 залейте на multiupload пожалуйста.




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

Создано: 04 августа 2011 05:41
· Личное сообщение · #6

NikolayD
http://www.multiupload.com/OELRNSE0WX

| Сообщение посчитали полезным: NikolayD


Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 04 августа 2011 10:19 · Поправил: Vamit
· Личное сообщение · #7

neprovad
находится переход в vm как я могу судить по своим знаниям. На этом eip плагин выдает что не может распознать вм.
Не каждый переход в сегмент вм является точкой входа в вм, это могут быть:
- промежуточные возвраты, т.к. тело вм может быть частично размещено на месте съеденного кода программы (уходят в статус Cancelled)
- обработка съеденного импорта (восстанавливается в пределах реализованного)
- обработка съеденных (покриптованных) строк (Свипером не распознаются, уходят в статус Cancelled)
Можно ли бороться с такой ошибкой своими силами или нет?
Чтобы с чем-то бороться нужно сначала доказать, что в этом месте Свипер не прав, и должно быть тото и тото, проанализируйте созданные логи на этой точке и приведите достаточные аргументы своей правоты.

При подпытке декомпиляции с адреса 41517E выдается ошибка "unknown identifier in mov byte ptr ds:[rvm_30], 0xFD" Как быть с такой ситуацией?
В теме я уже ноднократно писал, что Свипер не идеален, всего лишь бета версия, если в логе декомпиляции вмпрота увидели секцию Section a12 final, то это очень хорошо - далее предстоит ручная работа по доводке кода или определелие по логам ситуации в чем Свипер ошибся. Узкие места декомпиляции кода вмпрота так же уже озвучивались, могу повторить:
- Сделана девиртуализация не всех асм инструкций, а может быть и не всех вариантов одной инструкции.
- Основная проблема - определение соответствия регистров вм и cpu. Реализованный алгоритм не совершенен, но другого так никто и не предложил. Читаем тут и тут.

-----
Everything is relative...





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 05 августа 2011 12:48 · Поправил: mak
· Личное сообщение · #8

удалено

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 23 августа 2011 10:05
· Личное сообщение · #9

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

-----
Everything is relative...




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

Создано: 31 августа 2011 19:34
· Личное сообщение · #10

Пытаюсь посмотреть AS3 Sorcerer 1.35 (--> Link <--), 4 процедуры под VM, самая интересная - 6687D0 TMainForm.OnCreate, а в логах вот такое:
Code:
  1. Parse: 0 - 0x00683EC2: fisub word ptr ds:[esi + 0Fh] (aux:0x1828 insn:0x00)
  2. #ERROR# TraceVMP: Instruction fisub has no handler!





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 01 сентября 2011 09:29
· Личное сообщение · #11

yagello
Не реализован обработчик такой инструкции... Выложи прогу (по приведенному линку без регистрации не скачать) и сообщи ОЕП, тогда в ближайшее время сделаю, тем более у меня уже почти завершена очередная версия Свипера.

-----
Everything is relative...




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

Создано: 01 сентября 2011 11:14
· Личное сообщение · #12

Vamit пишет:
Выложи прогу (по приведенному линку без регистрации не скачать) и сообщи ОЕП, тогда в ближайшее время сделаю, тем более у меня уже почти завершена очередная версия Свипера.

прога тут: --> Link <--
уже закракана практически (крак потрохов VMprot'а использован не мой, я только лишние референсы на ВМ убрал, импорт перестроил и кое-что почистил). Точка входа проги - чистая, интересующий вызов ВМ по адресу 6687D0.
Программа-то работоспособна, но таскать останки ВМпрота как-то некрасиво. Полезная программа, кстати - декомпилятор ActionScript 3 (Flash)




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 01 сентября 2011 17:37
· Личное сообщение · #13

Новая версия VMSweeper v1.4 beta 14

Добавлено:
1. CodeVirtualizer: Удаление инициализированного, но не используемого регистра RVM_TMP.
2. CodeVirtualizer: Коррекция вершины стека ВМ при его расширении.
3. CodeVirtualizer: Коррекция дна стека ВМ при входе в промежуточный сеанс ВМ.
4. CodeVirtualizer: Вывод в trc файл адреса входа в следующий сеанс ВМ.
5. Обработка операции neg в константных выражениях.
6. Обработчик исключения переполнения при эмуляции инструкций div и idiv.
7. Улучшен определитель числа аргументов вызываемых функций, т.к. OllyDbg иногда это делает неправильно.
8. Одновременная обработка константных выражений размещенных в паре регистров xL - xH.
9. Уменьшение размера восстановленного кода за счет удаления необязательного ds: префикса.
10. VmProtect: Улучшен анализатор алгоритма кодирования пикода в цикле ВМ.
11. VmProtect: Обработчик FPU инструкции fsubr.
12. В ручном режиме работы удалено окно "Stop on EntryCall".
Исправлено:
1. Условный переход из примитива ВМ на начало цикла ВМ не является завершением примитива.
2. Анализ OF флага на расширенных байтовых переменных.

-----
Everything is relative...


| Сообщение посчитали полезным: DimitarSerg, _ruzmaz_, daFix, Airenikus, Ultras, Yotun, SReg, huckfuck, ClockMan, Gideon Vi, m0bscene, YDS, yagello, obfuskator, stas_02, Maximus, BoOMBoX

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

Создано: 02 сентября 2011 19:44
· Личное сообщение · #14

Взял версию Бета 14, увеличил размер "VMS size" в 10 раз, а он ругается на неправильно декодированный условный переход
Файл жертвы все тот же, процедура всё та же.
Да, там пару ошибок в английском тексте есть, не принципиально, но глаз цепяется. (Analize, repid...)




Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 20 октября 2011 16:05
· Личное сообщение · #15

бета 14 (про предыдущие не знаю) при восстановлении импорта вместо FF 15 ... пишет FF 25 ... и довольно часто




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 20 октября 2011 17:17
· Личное сообщение · #16

r99
скинь файлик...

-----
Everything is relative...





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 26 октября 2011 17:16 · Поправил: Nightshade
· Личное сообщение · #17

Vamit можешь глянуть файлик? http://sderni.ru/90693
rfonline.bin
Не распознает вм.
Code start 02ED7000
Code end 031E9BFF
vmstart 031E9FFF
vmend 035A9000
вызов в вм 031D7520
Снял энигму.(Скорее всего криво, но дам грузится и можно потрейсить вм)
http://sderni.ru/91287




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 02 ноября 2011 16:59
· Личное сообщение · #18

r99 пишет:
при восстановлении импорта вместо FF 15 ... пишет FF 25 ... и довольно часто

Дошло время и до твоего файлика... Приведи конкретные адреса вызовов АПИ, которые ты считаешь что декомпиль восстановил неправильно (достаточно двух-трех), а то их в списке несколько тысяч... проверять все я не буду...

Nightshade
По твоему запросу всё сделал... Следующая версия будет декомпилить твой файл - но не на 100%...

-----
Everything is relative...





Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 03 ноября 2011 10:38
· Личное сообщение · #19

Vamit
005D2B72 CALL reshade.008181CE kernel32.GetCommandLineA - здесь
больше не помню - давно было




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 03 ноября 2011 18:08 · Поправил: Vamit
· Личное сообщение · #20

Новая версия VMSweeper v1.4 beta 15

Добавлено:
1. CodeVirtualizer: Улучшено распознавание примитива CMC.
2. CodeVirtualizer: Добавлена обработка инструкции setne.
3. CodeVirtualizer: Улучшено распознавание старших байтовых регистров (ah, ch, dh, bh).
4. VmProtect: Реализована обработка смещения кода ВМ (relocation VM code).
5. VmProtect: Обработчики FPU инструкций fst, fisub.
Исправлено:
1. CodeVirtualizer: Вставка прямых асм инструкций в исходный код.
2. VmProtect: Перемещение оператора изменения флагов к своим флагам.
3. VmProtect: Восстановление импорта, иногда вместо call [api] восстанавливалось jmp [api].

-----
Everything is relative...


| Сообщение посчитали полезным: obfuskator, SReg, HandMill, r_e, _ruzmaz_, Gideon Vi, Maximus, huckfuck, yagello, neprovad, BAHEK, gena-m, Ultras, kioresk, daFix, Yotun, stas_02, NikolayD, Dart Raiden, ClockMan, vnekrilov, Bronco, DimitarSerg

Ранг: 3.9 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2011 20:20 · Поправил: JeRRy/SND
· Личное сообщение · #21

Hi Vamit

Code:
  1. Syntax error in mov dword ptr [(add __$esp, 8) + 4], eax


VM VA - 01034E28

http://www.mediafire.com/?bdrosxkqz9259kh

VMProtect 2.08
Clean Olly + Latest dbghelp




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 28 ноября 2011 21:34
· Личное сообщение · #22

Не распознается примитив
Code:
  1. ++++++++++++++++++++++++++++++++++++
  2.   Section 001 cmd 2B
  3. ++++++++++++++++++++++++++++++++++++
  4.  
  5. ASSIGN : (02F15BE4) Start: 1, End: 1, Adjust: NOT_START, Type: REG
  6. ASSIGN : (02F15BE7) Start: 2, End: 4, Adjust: NOT_START, Type: REG
  7. ASSIGN : (02F15BEC) Start: 5, End: 8, Adjust: NOT_START, Type: PUSH
  8.  
  9.  
  10. ++++++++++++++++++++++++++++++++++++
  11.   Section 002
  12. ++++++++++++++++++++++++++++++++++++
  13.  
  14. ASSIGN : (02F15BE1) Start: 0, End: 1, Adjust: NOT_START, Type: REG
  15. ASSIGN : (02F15BE7) Start: 2, End: 4, Adjust: NOT_START, Type: REG
  16. ASSIGN : (02F15BEC) Start: 5, End: 8, Adjust: NOT_START, Type: PUSH
  17.  
  18.  
  19. ++++++++++++++++++++++++++++++++++++
  20.   Section a00 cmd 2B
  21. ++++++++++++++++++++++++++++++++++++
  22.  
  23. 02F15BE1: __$edx = [ebp]
  24. 02F15BE7: ebp += 4
  25. 02F15BEC: push 0x02F11008
  26.  
  27.  
  28. ++++++++++++++++++++++++++++++++++++
  29.   Section a02 cmd 2B
  30. ++++++++++++++++++++++++++++++++++++
  31.  
  32. 02F15BE1: edx = [ebp]
  33. 02F15BE7: ebp += 4
  34. 02F15BEC: push 0x02F11008
  35.  
  36.  
  37. ++++++++++++++++++++++++++++++++++++
  38.   Section a04 cmd 2B
  39. ++++++++++++++++++++++++++++++++++++
  40.  
  41. 02F15BE7: ebp += 4
  42. 02F15BEC: push 0x02F11008
  43.  
  44. *** Primitive Template ***
  45. { NN_add, dt_dword, "ebp", "4", R_NONE };
  46. { NN_push, dt_dword, "0x02F11008", "empty", R_NONE };
  47.  

Код
Code:
  1.  
  2. 02F15BE1    C0C6 03         ROL DH,3
  3. 02F15BE4    8B55 00         MOV EDX,DWORD PTR SS:[EBP]
  4. 02F15BE7    52              PUSH EDX
  5. 02F15BE8    F5              CMC
  6. 02F15BE9    83C5 04         ADD EBP,4
  7. 02F15BEC    E8 11D10000     CALL 02F22D02
  8.  
  9. 02F22D02    54              PUSH ESP
  10. 02F22D03    60              PUSHAD
  11. 02F22D04    C74424 28 0810F>MOV DWORD PTR SS:[ESP+28],02F11008
  12. 02F22D0C  ^ E9 5E4FFFFF     JMP 02F17C6F
  13.  
  14. 02F17C6F    895424 24       MOV DWORD PTR SS:[ESP+24],EDX
  15. 02F17C73    60              PUSHAD
  16. 02F17C74    FF7424 44       PUSH DWORD PTR SS:[ESP+44]
  17. 02F17C78    C2 4800         RET 48
  18.  

Можно это исправить?




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 29 ноября 2011 12:17
· Личное сообщение · #23

Nightshade Привет!
Если уж начал писать багрепорт, то довел бы его до конца...
1. Нужна конечная трасса кода примитива из trc файла (обфусцированный код примитива из Ольки не нужен)
2. Нужна полная логика работы примитива до входа в следующий цикл интерпретатора вм.
Логика приведенного куска:
push [ebp]
ebp += 4
retn
т.е. если я правильно составил логику работы этого примитива, то такого примитива я не знаю...

-----
Everything is relative...





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 29 ноября 2011 16:11
· Личное сообщение · #24

Полную логику я вряд ли напишу. Конец трц файла могу приложить.




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 29 ноября 2011 16:15
· Личное сообщение · #25

Вообще это похоже на пуш рет. С вызовом другой ветки вм. По адресу из пуша лежит прыжок на вход в вм.



Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

Создано: 29 ноября 2011 20:01
· Личное сообщение · #26

Vamit, это та же ситуация с примитивом, что я тебе отписывал в начале месяца. И сам примитив такой же.

-----
.[ rE! p0w4 ].





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 29 ноября 2011 20:40
· Личное сообщение · #27

Примитив кладет на стек адрес входа в вм. Я бы сказал, что это случай когда в виртуализированной функе есть вызов другой виртуализированной функи. Скорее всего это обычный call.




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 30 ноября 2011 10:45
· Личное сообщение · #28

Nightshade
Я бы сказал, что это случай когда в виртуализированной функе есть вызов другой виртуализированной функи.
Этого не может быть, т.к.:
1. Отсутствуют аргументы.
2. Отсутствует восстановление реального контекста проги (регистры и стек)
а вызывать из виртуализованного пространства реальную функцию, хотя и виртуализованную, да ещё и в другом сеансе вм не завершив при этом текущий сеанс - это нонсенс...

-----
Everything is relative...





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 01 декабря 2011 11:02 · Поправил: Nightshade
· Личное сообщение · #29

Файлы
http://sderni.ru/96372
Интересует вызов 02EEC9B9
Посмотри сам что это
upd1
Убрал некоторые примитивы из таблицы - получил такую трассу
Code:
  1. 02F57C5A  EA           pop    dword ptr [reg_43]        ;00000000
  2. 02F57C5B  20           pop    ax                        ;00000000
  3.                        pop    cx                        ;00000000
  4.                        push   ax
  5.                        shr    byte ptr [esp], cl        ;00000000
  6.                        pushfd                           ;00000213
  7. 02F57C5C  EF           pop    dword ptr [reg_FF]        ;00000213 ;efl
  8. 02F57C5D  F3           pop    eax                       ;00000000
  9.                        add    eax, dword ptr [esp]      ;472C0000
  10.                        jmp    eax





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 06 декабря 2011 10:39 · Поправил: Nightshade
· Личное сообщение · #30

Vamit
Потрассировал обработчик. Получилось такое

edx = [ebp]
ebp += 4
push 0x02F1B781
push edx
ret

02F1B781 9C PUSHFD
02F1B782 C70424 B9077641 MOV DWORD PTR SS:[ESP],417607B9
02F1B789 ^ E9 ACE1FFFF JMP 02F1993A

02F1993A 8D6424 04 LEA ESP,DWORD PTR SS:[ESP+4]
02F1993E E9 61AC0000 JMP 02F245A4

02F245A4 66:0FA3C3 BT BX,AX
02F245A8 8D47 50 LEA EAX,DWORD PTR DS:[EDI+50]
02F245AB 60 PUSHAD
02F245AC F9 STC
02F245AD 39C5 CMP EBP,EAX
02F245AF 68 A32CCFA7 PUSH A7CF2CA3
02F245B4 9C PUSHFD
02F245B5 ^ E9 E621FFFF JMP 02F167A0

02F167A0 9C PUSHFD
02F167A1 8D6424 2C LEA ESP,DWORD PTR SS:[ESP+2C]
02F167A5 ^ 0F87 E2B6FFFF JA 02F11E8D - прыжок идет
Как я понял код по 02F1B781 это просто обычный jmp на начало цикла. Т е другого он ничего не делает.
--------------------------------------------------------------------

02F11E8D: cmd = [picode]
02F11E92: cmd ^= hash
02F11E9B: cmd += 1
02F166B9: cmd rol= 7
02F166BE: cmd = ~cmd
02F166CE: hash ^= cmd
02F1FCA7: handle = [cmd * 4 + 0x02F10AC5]
02F1FCB7: handle ^= 0xA3B77605
02F1FCBE: handle += 0xF2EEA000
Upd
Сравнил логи и то что в отладчике. Второй опкод ленты расшифровывает неверно. Скорее всего кривой хеш.



Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 января 2012 17:02
· Личное сообщение · #31

Vamit, у меня подобная ситуация и сам примитив такой же, есть подвижки в решении?


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 23 . 24 . >>
 eXeL@B —› Протекторы —› Декомпилятор ВМ
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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