выпущен 2 августа!

Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

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

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

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

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

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

Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework.
  1. Highlight features:
  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().
Support big-endian mode.
Correct instruction size of Thumb/Thumb2 code.
Support read/write APSR register.
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 <--

  1.  MINGW64 /n
  2. $ cd msys64/unicorn
  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. Либ файлы, как динамические так и статические больше не создавались, появлялось сообщение -
  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).
  1. New-PSDrive HKU Registry HKEY_USERS
  3. reg load 'HKU\VS2017PrivateRegistry' "C:\Users\Geir\AppData\Local\Microsoft\VisualStudio\15.0_8165452c\privateregistry.bin"
  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}"
  8. Remove-Item -Path $HighConstrastTheme -Recurse
  9. Copy-Item -Path $DarkTheme -Destination $HighConstrastTheme -Recurse
  11. [gc]::collect()
  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:
  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

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

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

hors пишет:
Очевидно затем, чтобы выявлять на этом форуме психически психически неурaвновешанных людей, которые свои личные комплексы сублимируют в агрессивное навязывание своего мнения. Например в теме про Unicorn рассказывают про trace32.
Я психопат нарциссического типа, вполне себе уравновешенный. На форуме по кракингу (именно кракингу, не программированию) меня заинтересовала тема об идельном-эмуляторе-процессоров, тема мне близкая и можно сказать выстраданная. Беглый осмотр предмета вызвал легкую фрустрацию, я просто не знаю, что бы я стал с этим иструментом делать. Может кому-то, кто настолько же неуравновешен и закомплексован, как я, именно мой совет покажется полезным. А быть может кто-то, к кому этот пост был адресован, придет и объяснит мне дураку чем эта штука может быть полезна.

ЗЫ: может все дело в плагинах, интересно есть ли они там?

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

Создано: 19 июня 2018 13:58 New!
Цитата · Личное сообщение · #3

difexacaw пишет: вы не сможете на должном уровне листаль код как я

Бро, я даже не удивлюсь если у тебя самая быстрая рука в Гомеле, но тема совсем о другом.
Задающий вопрос может хоть перфокартами пользоваться и если задаёт вопрос по перфокартам, постарайся для разнообразия давать ответы в контексте вопроса, а не убеждать всех, какой ты Д'Артаньян, а вопрошающий мудак, нужно брать X и тренировать руки, когда будет вопрос в духе X или Y, тогда твой выход, а пока даже не можешь понять о чём тема.

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

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


Да ладно, это наверно не вам было адресовано, а Bronco(какую то чушь писать начал, впрочем я забыл уже), не важно впрочем, мб я под синь на солнышке нагрелся

Интересно про тормоза такие, конечно не всегда профайл важен, для целей отладки это в общем то и не важно. Но всё равно такие просадки не есть гуд, если будет отлаживаться какое то тяжёлое апп, браузер или к примеру тот же вмп с огромными циклами, то эти трассы/графы/етц будут строится сутками, что в принципе можно сделать за минуты.

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


> Ставим хук на всё адресное пространство, останавливаемся на каждой инструкции и сравниваем адреса.

Вы изобретаете велосипед с квадратными колёсами. Отследить потоки данных(cfg/dfg) можно не только эмулируя код. Эмуляция для прикладных задач не подходит - эмулятор огромного размера всегда и не без косяков, причём есчо и медленный. Оптимальный выбор это динамическая эмуляция - прямое выполнение кода в буферах и эмуляция ветвлений. При этом профайл садится примерно на 10% от реалтайма. И вероятность ошибок в таком случае весьма мала, есть есчо куча положительных моментов, как например возможность пакетной обработки, что невозможно сделать под эмулятором.

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

После сервисного вызова управление может уйти вникуда, так как для такого вызова нужно уже не эмулить(смена мода), а отпустить поток на выполнение. Как сабж это обрабатывает ?

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

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

difexacaw пишет: Да ладно, это наверно не вам было адресовано, а Bronco

Он умеет листать выхлоп дасма. Зачем ему для проверки каких то идей брать инструменты на которые нужно тратить уйму времени, софтварная реализация BP эмулятором не отличается от реализации в рекомпиляторе, поэтому при желании этот опыт можно перенести на другие инструменты из этого же класса, при этом не тратя время на написание обвязок. Сам код это не просто "какой то криптор", а вполне себе по типу llvm-based обфускатора (разрыв графа, калькуляция ссылок, защита данных), там нет декрипта, там нужен ребилд трассы, а перед этим неплохо сначала получить более-менее читабельную трассу, желательно таким способом, который совместим с остальными компонентами, иначе всё оборачивается написанием большого объема кода, когда это работа, это нормально, а когда хобби и которое не подразумевает за собой каких-то больших выгод, сомнительная трата времени, не все живут за компом, в этом дело, а вовсе не в знании или незнании альтернативных решений. Вот x64dbg реально медленный и не факт, что дождёшься трассы, а не рухнет всё в процессе работы, windbg несравнимо быстрее, но толку если у него нет сопутствующей инфраструктуры, можно конечно заворачивать трассу в сторонний движок, но это опять же, оборачивается написанием кода. Время и целесообразность траты, вся причина.

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

Создано: 19 июня 2018 15:48 New!
Цитата · Личное сообщение · #6


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

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

Добавлено спустя 17 минут

> indbg несравнимо быстрее, но толку если у него нет сопутствующей инфраструктуры

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

> вовсе не в знании или незнании альтернативных решений.

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

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

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

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

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

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

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


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

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

Создано: 19 июня 2018 17:20 New!
Цитата · Личное сообщение · #9

difexacaw пишет: Пусть напишет тот кто в теме как происходит системная обработка.

Может напишешь трейсер на базе dbi для x64, просто трейсер с доступом set\get к регистрам и доступом к памяти set\get, с возможностью завернуть буфер в движок дасма, это конструктивней тысячи слов и думаю проект будет оценен общественностью.

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

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


У меня засада уже больше года с алго по визору, тут рядом тема вы в ней отвечали. Какую то примитивную трассировку может любой собрать, оно хоть и будет работать, но невероятно медленно. Мне же хочется реализовать визор реалтаймом не отличимый от прямого исполнения. Это во первых решит кучу викс задач, апп будет взято под полный контроль, это не сможет обнаружить юзер, какой то инструмент даже на основе статистики и позволит реализовать полноценную софтверную защиту от OP, это моя задача. Я приводил пример dye, тут всё обосрали, вместо того что бы почерпнуть от туда наработанные техники.

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

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

difexacaw пишет: Какую то примитивную трассировку может любой собрать

Тем более, значит времени много не займёт и инструмент полезный для общественности. По визору приводил пример очень качественной архитектуры, которая хорошо масштабируемый, выкинуть лишнее и практические готовая архитектура для dbi, которую очень сложно убить, но изобретать GC интересней. Сначала нужно продумать архитектуру связей, реализация именно трейсера вторична, поскольку во многом зависит от архитектуры и поставленных условий, возможно проседания из за реализации окажутся незначительной мелочью по сравнению с другими компонентами через который проходит поток, голой трейсер никому не интересен если в его работу нельзя вклиниться, вот этот момент может иметь существенную зависимость от архитектуры, тем самым экономя в одном месте, делаешь проседания в другом или невозможность адекватного внедрения какого то функционала. Контейнеры в гипервизоре давно изобрели, корпоративному сегменту не интересны костыли, а обывателям класть на OP, остается узкий круг задач связанный с ИБ, одна из которых контроль исполнения, ниша пока что не сильно занята. Не обосрали, а конструктивно раскритиковали, никому не нужен конструктор из сомнительного качества исходников, которые к тому же еще нужно дописывать и ко всему прочему x86, сделай нормальные интерфейсы, lib и сишный хидер, асм мертв, сугубо нишевой язык для очень узкого круга задач, пиши на сишке и получишь больше конструктивных комментариев, асм исходники будут читать только упоротые дети, которым заняться нечем, при нормальных исходниках на хабе мог бы получить адекватный фидбэк.

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

Ранг: 44.8 (посетитель)
Статус: Участник

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

difexacaw пишет:
Мне же хочется реализовать визор реалтаймом не отличимый от прямого исполнения.

Этого нельзя сделать by design софтварно. В железе давно все эти визоры изобретены, оверхед небольшой.

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

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


Возможно. Обычное визор исполнение вы не заметите не снимая намеренно профайл, так как основное время апп уходит либо на циклы, либо ядерные синхронизации. Профайл этих механизмов не сравним с обычной трассировкой. Есть проблемные моменты, которые всё тормозят - к примеру обращение к блоку математики имеет огромный тайминг, по этой причине установлен запрет на использование данных блоков ядром.

Эта задача в разработке. Я отказался от повторного исполнения - модификация кода на лету, рядом тема. Как эффективно транслировать произвольный указатель на структуры не ясно. Но я найду решение


ГПВ не интегрируется в апп, это системный мод. Поэтому не применимо для данных задач. По OP решений нет, есть лишь несколько железячных костылей и пару осевых. Это никак не решение. Это всё успешно обходится, впрочем это уже совсем другая тема.

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

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

difexacaw пишет:
статус у вас - местный троль, вы ниочём в каждой теме

плюсануть стрелочнику за ржач?
но ведь, сука, не отстанет, пока игнорить не начнёшь
difexacaw пишет:
это нужно прогружать, отлаживать - куча гемора

млять, пока ты лясы точишь, ни о чём или абстракциях, вот мне на это приходиться находить время.
и естественно то же есть вопросы, но ты своей шнягой, как обычно всё засрёшь на пару страниц, и мой вопрос в воздухе останеться. поэтому, лично меня, твоя персона давно уже плющит, отсюда и отвечать тебе, нет желания. находи время,собирай, кури и ковыряй.
shellstorm, за возню с тобой надо уже ранг подымать.
вот с ним, реально, очень интересно дискутировать, он оппонирует грамотно, местами даже генерит в оппоненте позитивное, мне во многом кругозор расширил.
длины сабж пока определяет чётко, но капстон на avx512f уже попался, думается что тут те же грабли.
по рипу трассы в бинарь, кажется это предел, что можно выжать:
- Total Time: 00:00:00.062 - 1.Write instr->1069 | 2.Instr size->-0xfc6
если в текстовик как у пин, возможно будет немного быстрее.

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

Создано: 20 июня 2018 23:50 · Поправил: difexacaw New!
Цитата · Личное сообщение · #15


> вот мне на это приходиться находить время.

Это походу ваша работа, по этой причине вас и не интересуют никакие алго/абстракции, лишь тех задание, я прав ?

> Total Time: 00:00:00.062 - 1.Write instr->1069

часы-минуты-секунды-62мс на 1к итераций.. тоесть получается в секунду 17k итераций. Это куда медленее на порядки машинной трассировки. Тем более что 60мс - это планировочное время, на таких интервалах тайминг измерен быть не может, он должен статистически накапливаться. Те счётчики что вы используете - фейлят(tsc).

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

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

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

difexacaw пишет:
получается в секунду 17k итераций

тесты случайные, на самом деле ещё быстрей, где то до 30к в сек. по крайней мере 100к инстр за 4 сек в бинарь скинул. а может ещё быстрей, но тут гуй дбг начинает залипать и фризить,
приходиться гальмовать доуевентом и мультиками в статус бар. получается что рендер в кьюте медленней сишного кода.
всё бы хорошо, но есть косяк в связке логического сдвига влево и оператора флага, если первый операнд меньше. состояние рфлагс не меняется. в итоге уже в 2 случаях поведение разное. в одном случае перешли на метку, в другом перехода не было.
первый случай уменьшил для наглядности, на нём в роге попадаем в бесконечный цикл:
  1. R12 = 0000000068A4247E 
  2. RFLAGS = 204
  3. @L00000001:
  4.         mov r12d, 0x0000000068A4247E
  5.          shl r12d, 0x10
  6.          jb short @L00000001

difexacaw пишет:
я прав ?

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

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

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


> а лучше абстрагируйся от любых психоанализов.

Я просто поинтересовался, без каких то подвохов.

> тесты случайные, на самом деле ещё быстрей, где то до 30к в сек.

Странные тесты, так ведь не делается, ваша статистика плавает вместе с фазой луны, в неё столько факторов, что видимо можно лишь строить догадки про порядок значения(10-100к). Файловая система куда более непредсказуема, чем шедулер. Доступ к файлу может быть и более 4сек, аналогично и с отладчиком. 30к инструкций для декодера это очень мало. Хотя если не стоит задача профайла, то это не важно(если бы не название топика, эмуль ездящий как каток по асфальту ).

Ранг: 35.9 (посетитель)
Статус: Участник

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

difexacaw пишет:
непредсказуема, чем шедулер.

Хто??? Скежулэр или скежелер.
Что, бля, за шедулер?
По русски это называется: планировщик

ЗЫ: Это крайне распространенная ошибка почти всех. schedule говорить как шедуле. Вы school как говорите? Шул или Щул? )

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

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


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

Ранг: 482.5 (мудрец)
Статус: Участник

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

hypn0 пишет:
Что, бля, за шедулер?

hypn0 пишет:
Это крайне распространенная ошибка почти всех. schedule говорить как шедуле.

это не ошибка: так "ошибаются" все жители Британских островов.
это British вариант произношения этого слова.
Другой вариант - American English.


the modern British pronunciation ("shed-yul") is from French influence,
while the U.S. pronunciation ("sked-yul") is from the practice of Webster, and is based on the Greek original.

А вообще-то тема скатилась уже куда-то в помойную яму...

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

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

difexacaw пишет:
Странные тесты, так ведь не делается, ваша статистика плавает вместе с фазой луны

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

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

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


Обычная машинная трассировка(#DB) будет не намного медленнее, а может даже и быстрее. Это при использовании дебаг портов профайл становится никаким. Вы даже не проверяли. Ну а мультимедиа потоки - данные обрабатываются другой стороной(км), юм лишь ставит их в очередь, это не тяжёлые по времени операции, разве что из за циклов и копирований памяти.

Добавлено спустя 30 минут

Я вас туго воспринимаю, так как вы сливаете ваши мысли в кучу не разделяя их, получается трудно понимаемое месево, eg:

> на выходе рипнутая трасса в выделенную страницу и тайминг, поэтому 2 случайных теста.

Какую страницу и почему по этому тесты случайные" и как они могут быть случайными я хз

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

И что вообще у вас за трейсер" ?
Как это работает ?
Эмулятор потока инструкций ?

Добавлено спустя 51 минуту
А в общем же, для чего нужен эмуляторный цикл в юзер апп ??

Декодер возвращает всю нужную инфу для каждой инструкции. Но зачем её эмулировать ?
К примеру аверы это делают, но они это выполняют в виртуальной машине, где эмулируется не только каждая инструкция, но и окружение апп - память, функции етц.

Эмуляция в случае интеграции в апп, тоесть лишь потока инструкций имхо затея смысла не имеющая, тому есть две причины:

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

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

Добавлено спустя 55 минут
Есть есчо один момент, иногда весьма важный. Это железячные фичи, к примеру выборка данных. В многопоточном приложении атомарность реализуется железом, но в эмуляторе это приведёт к нарушению всей последовательности обращений к памяти. Это будет приводить к ошибкам, деадлокам всяким(так как эмулируется лишь юзер сторона апп, ядро в таком случае выполняет асинхронный доступ в юзер память). Не говоря уже что такое в целях отладки использоваться не может(а для чего есчо сгодится ?).

Ранг: 582.6 (!)
Статус: Модератор
Research & Development

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


Это не раздел "Оффтоп", а "Софт, инструменты". Свои личные волнения обсуждайте либо в оффтопе, либо в личке.

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

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

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

Jupiter пишет:
Это не раздел "Оффтоп", а "Софт, инструменты".

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

Ранг: 287.7 (наставник)
Статус: Модератор

Создано: 23 июня 2018 08:02 New!
Цитата · Личное сообщение · #25

difexacaw отдохни 3 дня, за постоянную провокацию.
засрал рандомом все темы, ни одного поста по существу.

| Сообщение посчитали полезным: ajax, Bronco, plutos, sefkrd, DrVB_5_6

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

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

линковал либу, почти со всех доступных сорцов.
может студия как то не так собирает, но один хер, траблы с CF имеются.
1.при CF = 0, оператор "jb" переходит на метку.
2.арифметика, "adc" и "sbb", а состояние CF =0(под дбг 1), переход по чётности("jp" ), хотя данные в регистре не чётные.
3.при лог сдвиге, ситуация та же.
есть ещё парочка, но пока с ними не разобрался.
при трассировке, обороты набирает не торопясь, но уверено.
Current Timing: 00:01:04.469
1.Write instr->1 000 000 | 2.Skip instr->1 693 152
Finish Timing: 00:29:17.407
1.Write instr->39 000 000 | 2.Skip instr->6 418 978
исузу тыкнул, но там фиксят, макси не больше 3-4 дней, после релиза.
лечить хз как, там такая матрёшка с кьюэму.

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

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

Bronco пишет:
может студия как то не так собирает

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

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

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

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

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

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

В 15-ке впилено достаточно значительных изменений, чтобы не терять время на переписывание кода (или использование костылей совместимости), проще скомпилить в 13 студии имхо (если оно хоть там точно работает).

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

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

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

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

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

VOLKOFF пишет:
проще скомпилить в 13 студии имхо

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

какое то обсуждение, можно встретить только на фиглишь ресурсах, и его то же мало. саму проблему обсуждали только на гите.
<< . 1 . 2 . 3 . >>
 eXeL@B —› Софт, инструменты —› Unicorn - The ultimate CPU emulator

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

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