eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: dezmand07 (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› Unicorn - The ultimate CPU emulator
<< . 1 . 2 . 3 . 4 . >>
Посл.ответ Сообщение


Ранг: 655.1 (! !)
Статус: Участник
CyberMonk

Создано: 19 октября 2017 13:52 · Поправил: mak New!
Цитата · Личное сообщение · #1



Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework.
Code:
  1. Highlight features:
  2.  
  3. Multi-architectures: Arm, Arm64 (Armv8), M68K, Mips, Sparc, & X86 (include X86_64).
  4. Clean/simple/lightweight/intuitive architecture-neutral API.
  5. Implemented in pure C language, with bindings for Clojure, Visual Basic, Perl, Rust, Haskell, Ruby, Python, Java, Go, .NET, Delphi/Pascal & MSVC available.
  6. Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris confirmed).
  7. High performance by using Just-In-Time compiler technique.
  8. Support fine-grained instrumentation at various levels.
  9. Thread-safe by design.
  10. Distributed under free software license GPLv2.
  11. Find in this BlackHat USA 2015 slides more technical details behind Unicorn engine.
  12. Unicorn is based on QEMU, but it goes much further with a lot more to offer.


Version 1.0.1 April 20, 2017
We are excited to announce version 1.0.1 of Unicorn Engine!

The source code & precompiled binaries are available in the download section. See documentation for how to compile and install Unicorn.

A quick tutorial on how to program with Unicorn in C & Python can be found here.

Important changes since v1.0 include:

Properly handle selected-architecture build.
Fix compilation issues on PPC & S390x.
Fix a memory leak on uc_mem_protect().
ARM:
Support big-endian mode.
Correct instruction size of Thumb/Thumb2 code.
Support read/write APSR register.
ARM64:
Support read/write NEON registers.
Support read/write NZCV registers.
Mips: Support read/write Mips64 registers.
X86: Support read/write MSR.
Haskell binding: update to the latest API.
Python: allow not having PATH setup.
Community also provide independent bindings for Pascal, Rust & Perl.

Последний мастер - --> Link <--
Последний релиз - --> Link <--

Сборка - следуем указанию в --> Link <--

Code:
  1.  MINGW64 /n
  2. $ cd msys64/unicorn
  3.  
  4. @PC MINGW64 /n/msys64/unicorn
  5. $ ./make.sh cross-win64
  6. cd qemu && \
  7. ./configure --cc="x86_64-w64-mingw32-gcc" --extra-cflags="-DUNICORN_HAS_X86 -DUNICORN_HAS_ARM -DUNICORN_HAS_M68K -DUNICORN_HAS_ARM64 -DUNICORN_HAS_MIPS -DUNICORN_HAS_MIPSEL -DUNICORN_HAS_MIPS64 -DUNICORN_HAS_MIPS64EL -DUNICORN_HAS_SPARC " --target-list="x86_64-softmmu, arm-softmmu, m68k-softmmu, aarch64-softmmu, mips-softmmu, mipsel-softmmu, mips64-softmmu, mips64el-softmmu, sparc-softmmu,sparc64-softmmu," --disable-stack-protector

*Если MINGW64 Портабельный то здесь нужно указать полный путь с названием диска $ cd c:/msys64/unicorn

Или через файл проектов в Visual Studio 2015 ... в Visual Studio 2017 собрать пока не вышло.

Добавлено спустя 41 минуту
А теперь вопросы - замечания!

После полного перехода на VS2017, прошлые версии все были начисто удалены, первая трудность возникла с новым билдом Unicorn. Либ файлы, как динамические так и статические больше не создавались, появлялось сообщение -
Code:
  1. cmd /"windows_export.bat x64"
  2. Searching for installed visual studio version...
  3. ...trying registry key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualS                                                                                                                                                                                                                                                                                           tudio\12.0
  4. ...trying registry key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualS                                                                                                                                                                                                                                                                                           tudio\14.0
  5. ...trying registry key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualS                                                                                                                                                                                                                                                                                           tudio\15.0
  6. ...trying registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\12.0
  7. ...trying registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0
  8. ...trying registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\15.0
  9. Could not find an installed visual studio version. Abandoning windows static lib                                                                                                                                                                                                                                                                                            export operation.


После поиска в реестре оказалось, что записи по VisualStudio 15.0 там просто нет Погуглив немного появилась тема - Can't find registry entries for Visual Studio 2017 --> Link <-- в которой хоть и было решение, но проверка реестра показала, что этих ключей нет.

Ответ на вопрос был найден здесь Where does Visual Studio 2017 store its config? --> Link <--

See how empty is the regular HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0 key on my machine and notice that there is no 15.0_Config key:



Fortunately, you can use regedit.exe to load a private hive. You need to select the HKEY_USERS node, and click the File > Load Hive… menu. You select the privateregistry.bin file, give a name to the hive (I entered “VS2017PrivateRegistry”) and now you can see the 15.0_Config key populated as usual (note: use File > Unload Hive when done):



Далее цитирую ..

Using this guide, I was able to load the private registry, do the changes from the SO answer mentioned earlier, unload the hive and start VS 2017 with the Dark Theme!
EDIT: I had to slightly modify the PowerShell script I used to edit the registry, here is the updated version if anyone is interested:
EDIT2: Now modified to include the loading of the private registry automatically as well, including a garbace collection to allow unloading the hive:
NOTE: You have to find your own correct path for the user name (C:\Users\Geir) and VS version (15.0_8165452c).
Code:
  1. New-PSDrive HKU Registry HKEY_USERS
  2.  
  3. reg load 'HKU\VS2017PrivateRegistry' "C:\Users\Geir\AppData\Local\Microsoft\VisualStudio\15.0_8165452c\privateregistry.bin"
  4.  
  5. $HighConstrastTheme = "HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_8165452c_Config\Themes\{a5c004b4-2d4b-494e-bf01-45fc492522c7}"
  6. $DarkTheme = "HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_8165452c_Config\Themes\{1ded0138-47ce-435e-84ef-9ec1f439b749}"
  7.  
  8. Remove-Item -Path $HighConstrastTheme -Recurse
  9. Copy-Item -Path $DarkTheme -Destination $HighConstrastTheme -Recurse
  10.  
  11. [gc]::collect()
  12.  
  13. reg unload 'HKU\VS2017PrivateRegistry'

The following --> VS2017PrivateRegistry.cmd <-- batch file loads registry keys for all Visual Studio 2017 instances as HKLM_TMPVS_[id], starts Registry Editor for you to make changes in Visual Studio settings and unloads keys when you close Registry Editor:
Code:
  1. for /%%in (%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_*) do reg load HKLM\_TMPVS_%%~nxf "%%f\privateregistry.bin"
  2. regedit
  3. for /%%in (%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_*) do reg unload HKLM\_TMPVS_%%~nxf

Note: first close running Visual Studio 2017 instances with background processes and then run this file with administrator rights

Можно загрузить конечно эту ветку, но наверное я поищу другой способ модификации скрипта, чтобы собирать либ файлы. Даже если собрать как релиз, так и последний мастер архив, мои длл к сожалению не компатибельны со старыми инклуд файлами, в чём конкретно проблема ещё не известно. Проблема ли это хидер файлов или проблема сборки, это стоит ещё выяснить. Интересно то, что даже если собрать билд последнего релиза, то он вновь не работает, если же взять уже готовые бинарники, то они отлично работают со старыми инклуд файлами, т.е. никаких ошибок нет, это наводит на мысли. В итоге нормально собрать как раньше Уникорн у меня не вышло, после успешной сборки файлы отсутствуют (lib) или нерабочие (dll)

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



Ранг: 219.8 (наставник)
Статус: Участник

Создано: 26 июля 2018 15:20 New!
Цитата · Личное сообщение · #2

Bronco пишет:
что может поломать VS2015 или VS2017?

И с /Od то же самое?


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 26 июля 2018 21:37 New!
Цитата · Личное сообщение · #3

f13nd пишет:
И с /Od то же самое?

как то с ходу, не вкуриваю, что такое "/Od"


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 26 июля 2018 21:54 · Поправил: f13nd New!
Цитата · Личное сообщение · #4

Bronco
С/C++ - Optimization - Disabled. Если вдруг в флагах путаться начинает, наверное оно. Что-то было такое, от чего я окончательно на студию забил использую только 2005ю теперь, только с этой опцией и то, чтоб потом в другой компилер перенести, а там только отлаживать.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 26 июля 2018 22:50 New!
Цитата · Личное сообщение · #5

f13nd пишет:
С/C++ - Optimization - Disabled

ок...в настройках отключена. включаем?


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 26 июля 2018 22:56 New!
Цитата · Личное сообщение · #6

Bronco пишет:
в настройках отключена. включаем?

Если она уже отключена, то лучше точно не станет Бери 2013ю, меньше времени потеряешь тогда.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 27 июля 2018 06:15 · Поправил: Bronco New!
Цитата · Личное сообщение · #7

f13nd пишет:
Если она уже отключена

сорян, это в дебаг режиме было отключено.
с релиз режимом фаберже те же..
после 15й у меня 2013 не станет, только на варю, а это уже большая возня.
и по сборке в 2013 у меня нет уверенности, что там таких качелей не будет.
=======
/ADD
собирал в mingw( с этими путями к питону, мозг сука высушил), ебала с флагами та же самая.
с мастер-сорцов ничего толкового не соберёшь, наглухо убитые апдейтами. и по ходу дело не в студии.
в mingw с релизных сорцов 1.01, всё как и надо, где яшечка? давай споём..
как бы намутить солюшен для релиз_сорца?


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 27 июля 2018 14:55 New!
Цитата · Личное сообщение · #8

Bronco пишет:
наглухо убитые апдейтами. и по ходу дело не в студии

Если апдейты никуда не впились, рипнул бы... что-нибудь, что еще работало, да напилингом-паялингом довел до ума.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 27 июля 2018 16:50 New!
Цитата · Личное сообщение · #9

f13nd пишет:
Если апдейты никуда не впились

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

Ранг: 0.0 (гость)
Статус: Участник

Создано: 27 июля 2018 18:10 New!
Цитата · Личное сообщение · #10

f13nd пишет: да напилингом-паялингом довел до ума.

там не напильник нужен, а огромного размера рашпиль. в qemu активно используются расширения компилятора и специфические макросы, это всё добро нужно экранировать дефайнами, и проделывать это нужно практически во всех файлах, возможно автор как раз сломал код делая порт.


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 27 июля 2018 18:12 New!
Цитата · Личное сообщение · #11

shellstorm пишет:
в qemu активно используются расширения компилятора и специфические макросы

А я и говорю, содрать рабочий выхлоп, а не исходник со всеми этими специфичными макросами (какие в си могут быть сложные макросы? Оо). Бегло посмотрел эту длл, очень даже рипабельная.

Ранг: 0.0 (гость)
Статус: Участник

Создано: 27 июля 2018 18:27 New!
Цитата · Личное сообщение · #12

f13nd пишет: какие в си могут быть сложные макросы?

которые относятся к compiler extension, в частности нужно фиксить case ranges, aling, в GCC очень много специфических макросов, которые не затачиваются на стандарте.


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 27 июля 2018 18:49 New!
Цитата · Личное сообщение · #13

shellstorm пишет
Опенсурс. Бессмысленный и беспощадный.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 28 июля 2018 08:51 New!
Цитата · Личное сообщение · #14

f13nd пишет:
Опенсурс. Бессмысленный и беспощадный.

ага...инклудов всего ничего, экспорта то же, и как бы под студией такую матрёшку не по дебажишь с наскоку.
выше уже писал, что код делится на базовые блоки. это стандарт. посмотрел на доступную инфо, при хуке на блок. дают начало блока и размер блока. вершины блока определяют правильно.
но после брэнч логика кода такова.
Code:
  1. if (HOOK_EXISTS_BOUNDED(env->uc, UC_HOOK_CODE, pc_start)) 
  2.          {
  3.         if (s->last_cc_op != s->cc_op) 
  4.                  {
  5.             sync_eflags(s, tcg_ctx);
  6.             s->last_cc_op = s->cc_op;
  7.             changed_cc_op = true;
  8.         }
  9.         gen_uc_tracecode(tcg_ctx, 0xf1f1f1f1, UC_HOOK_CODE_IDX, env->uc, pc_start);
  10.         // the callback might want to stop emulation immediately
  11.         check_exit_request(tcg_ctx);
  12.     }

хз если ласт это вершина, то почему то должна быть не равна.


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 28 июля 2018 14:41 · Поправил: f13nd New!
Цитата · Личное сообщение · #15

Bronco
sync_eflags() если я правильно понял это только рассчет значения ефлагс через helper_compute_all (видимо чтоб считать их только для инструкций, влияющих на бранч), если тебе не нравится частый синхрон, хз куда уж реже. Там нету ни одного вызова с импорта, просто сама по себе функция широка и обильна и наряду в ней нет. gen_uc_tracecode() уже с импортом, с критическими секциями и Sleep'ами. Наверное главные затупы там.

ЗЫ: отлаживать можно и не в студии, легко и непринужденно ставить бряки куда надо помогает MessageBeep. И if () MessageBeep(0);
ЗЗЫ: и если я вообще правильно все понял (такое бывает нечасто), то эту штуку нельзя к эмуляторам отнести. Ее вообще стоило бы отнести кое-куда и там оставить

Добавлено спустя 2 часа 31 минуту
Code:
  1. .text:6B949ABA                 mov     ebx, ds:__imp__Sleep@4
  2. .text:6B949AC0 loc_6B949AC0:
  3. .text:6B949AC0                 mov     dword ptr [esp], 1 ; dwMilliseconds
  4. .text:6B949AC7                 call    ebx ; __imp__Sleep@4
  5. .text:6B949AC9                 mov     eax, dword ptr ds:unk_6BAE1E68
  6. .text:6B949ACE                 sub     esp, 4
  7. .text:6B949AD1                 cmp     eax, 1
  8. .text:6B949AD4                 jz      short loc_6B949AC0
Это какое-то новое слово в синхронизации потоков? Может я идиот и не знаю просто.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 29 июля 2018 00:06 New!
Цитата · Личное сообщение · #16

f13nd пишет:
если тебе не нравится частый синхрон, хз куда уж реже

упс...всё не так...))
получается , что для пользователя, при "UC_HOOK_CODE", его ваще нет. даже на бранчах.
в контексте рога состояние рфлагс , какое то остаточное, и не совпадает с текущим. хотя код исполняется правильно. я добавил покрытие для коротких прыгов, но получается шляпа.


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 29 июля 2018 00:17 · Поправил: f13nd New!
Цитата · Личное сообщение · #17

Bronco
Ну значит и нечего там ушивать. Если разработчик сам уже запутался в своей писанине, остается либо ждать когда разберется либо взять релиз и не выёживаться. либо индейца с визором ждать


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 29 июля 2018 00:25 New!
Цитата · Личное сообщение · #18

f13nd пишет:
либо взять релиз и не выёживаться

так это с релизом
с мастера другие качели..

Ранг: 0.0 (гость)
Статус: Участник

Создано: 29 июля 2018 00:34 · Поправил: shellstorm New!
Цитата · Личное сообщение · #19

Bronco пишет: так это с релизом

самому лень смотреть, глянь в релизе, translate.c поиск:
закомментирована эта строка или нет
if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO))

Bronco пишет: но это же для одного флага

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


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 29 июля 2018 00:38 New!
Цитата · Личное сообщение · #20

shellstorm пишет:
закомментирована эта строка или нет

угу..под коментами. но это же для одного флага - CF_LAST_IO


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 29 июля 2018 06:12 New!
Цитата · Личное сообщение · #21

Погорячился с выводами про ефлагс, считает он их в обработчике каждой инструкции. Линканутая выше конструкция просто вызывает зарегистрированные UC_HOOK_CODE, хз зачем она такая умная. Без нагрузки в хуках рса1024 (около 4млн чтоли инструкций, экспонента публичная) считает мгновенно и даже каким-то чудом правильно.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 29 июля 2018 06:59 · Поправил: Bronco New!
Цитата · Личное сообщение · #22

f13nd пишет:
хз зачем она такая умная

угу..ну так метод НС никто не отменял.
бранч это завершение блока, на вершинах синхронизация рфлагс, и в конструкторе функции всё в порядке.
только это синхрон для "внутреннего потребления", надо лезть в экспорт, там где рег_реад. почему там нет синхронизации.
//ADD 1
млять..любопытно же, что на самом деле.
дбг в дбг, и давай ловить мошеника.
нифуя не по вершинам блока, синхрон с рфлагс на всех инстр где REG WRITE: X86_REG_RFLAGS
что очень даже правильно.
//ADD 2
рег_рид читает весь банч, для ефлагс свой кейс:
Code:
  1. case UC_X86_REG_EFLAGS:
  2. *(int32_t *)value = cpu_compute_eflags(&X86_CPU(uc, mycpu)->env);
  3. break;

это толпой патчили на гите, автор учёл, но оно нифуя не работает:
Code:
  1. static inline uint32_t cpu_compute_eflags(CPUX86State *env)
  2. {
  3.     return (env->eflags0 & ~(CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C | DF_MASK)) | cpu_cc_compute_all(env, CC_OP) | (env->df & DF_MASK);
  4. }

в итоге тупо возвращают с чем пришли:
Code:
  1. target_ulong helper_cc_compute_all(target_ulong dst, target_ulong src1,  target_ulong src2, int op)
  2. {
  3.     switch (op) 
  4. {
  5.     default: /* should never happen */
  6.         return 0;
  7.  
  8.     case CC_OP_EFLAGS:
  9.         return src1;

что то тут синхронизации не видно..
//ADD 3
да ну нах такие качели, так и моск высохнет,
код рог правильно исполняет, но ипись с этим синхроном, покрытие можно по другому сделать.
как бы баян этот для себя прикрыл, но кто чего нароет_починит, велком.

Ранг: 0.0 (гость)
Статус: Участник

Создано: 29 июля 2018 17:28 New!
Цитата · Личное сообщение · #23

хэлперы дифал, там нет ничего интересного, что в старой, что в новой версии, разница '\n' - '\n\r'.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 29 июля 2018 19:17 · Поправил: Bronco New!
Цитата · Личное сообщение · #24

shellstorm пишет:
там нет ничего интересного

не прав, сам поток как раз там синхронизирут.
рассчет значения ефлагс через helper_compute_all (видимо чтоб считать их только для инструкций, влияющих на бранч)
--> Link <--
а вот фейсы лагают, ибо у них свой метод из хелпера. из - за этого же качели по операторам флага.

Ранг: 0.0 (гость)
Статус: Участник

Создано: 29 июля 2018 19:34 New!
Цитата · Личное сообщение · #25

Bronco пишет: не прав, сам поток как раз там синхронизирут.

я не о синхронизации, а о разнице в работе между старой и новой версией.


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 29 июля 2018 19:44 · Поправил: f13nd New!
Цитата · Личное сообщение · #26

Bronco пишет:
надо лезть в экспорт, там где рег_реад

Так если эта синхронизация только для того, чтоб апи из хука могли что надо выводить, может апи нафиг, а все что надо доставать из UC контекста? А сам этот синхрон под нож ноп. (или я совсем чего-то не понимаю в этой жизни)


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 29 июля 2018 20:10 · Поправил: Bronco New!
Цитата · Личное сообщение · #27

f13nd, синхрон для эмуляции потока, нах его под нопы?
либо улетим в ебеня, либо полонез агинского..
чтобы оттуда доставать, надо в структуры вникать, и не под отладчиком дебажить.
а к студии подключать_настраивать целое дело.
по регистрам, через фейсы, вывод инфо нормальный, они то же нужны.
в апи без синхрона только ефлагс.


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 29 июля 2018 20:40 · Поправил: f13nd New!
Цитата · Личное сообщение · #28

Bronco пишет:
синхрон для эмуляции потока, нах его под нопы?

То есть без хуков UC_HOOK_CODE происходит не эмуляция, а полонез агинского? Если это такой костыль на куему, который улетает куда попало, зачем этот костыль именно под обработчик хука просовывать?


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 29 июля 2018 21:16 New!
Цитата · Личное сообщение · #29

f13nd, с хуками полный порядок, их ваще дофига разных, можно комби. есть и для сервисов.
и с ними покруче чем юзать стелс бряки.
UC_HOOK_CODE это мне приспичило. ибо дбг_диа, хоть и в контексте процесса, но чтение и запись, через всю ось таскает, и для трейсера это нехилые тормоза. а рогу чего надо? контекст_старт_финиш. с буфером он работает.


Ранг: 219.8 (наставник)
Статус: Участник

Создано: 29 июля 2018 21:24 · Поправил: f13nd New!
Цитата · Личное сообщение · #30

Bronco пишет:
с хуками полный порядок, их ваще дофига разных

Я не о том, что их дофига разных. Раз под хуком, значит утилитарная хрень для хука, куему дружить с лошадиным контекстом. Ну хрен с ним, с лошадём вобщем.


Ранг: 266.6 (наставник)
Статус: Участник
Advisor

Создано: 28 августа 2019 05:37 New!
Цитата · Личное сообщение · #31

вот млять, в сабже нет регистра XCR0 (extended control register & XFEATURE_ENABLED_MASK), в итоге заегорился на исполнении инструкции "XGETBV". и хз как это эмулить, получать то не от куда. засада.
<< . 1 . 2 . 3 . 4 . >>
 eXeL@B —› Софт, инструменты —› Unicorn - The ultimate CPU emulator

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS